To accomplish want you want use the TraceEvent library from Vance Morrison's blog. I have tested the sample on my Windows 8 running as administrator and it works perfectly.
To list each payload property name and value you need to exchange the sample delegate to the below sample.
Action<TraceEvent> action = delegate(TraceEvent data)
{
foreach (var name in data.PayloadNames)
{
Console.WriteLine("\t" + name + " -- " + data.PayloadByName(name));
}
};
Simply run the sample then start a new process and you should start seeing some trace info.
-- Lars