private void RawDispatch(TraceEventNativeMethods.EVENT_RECORD *rawData) { Debug.Assert(rawData->EventHeader.HeaderType == 0); // if non-zero probably old-style ETW header TraceEvent anEvent = Lookup(rawData); // Keep in mind that for UnhandledTraceEvent 'PrepForCallback' has NOT been called, which means the // opcode, guid and eventIds are not correct at this point. The ToString() routine WILL call // this so if that is in your debug window, it will have this side effect (which is good and bad) // Looking at rawData will give you the truth however. anEvent.DebugValidate(); if (anEvent.FixupETLData != null) { anEvent.FixupETLData(); } Dispatch(anEvent); }