//
        // Registers a Dynamically Generated GUID automatically with an inbuilt callback
        //
        private unsafe uint Register(Guid controlGuid)
        {
            uint status;
            TraceGuidRegistration guidReg = new TraceGuidRegistration();
            Guid dummyGuid = new Guid("{b4955bf0-3af1-4740-b475-99055d3fe9aa}");

            etwProc = new EtwTrace.EtwProc(MyCallback);


            guidReg.Guid      = &dummyGuid;
            guidReg.RegHandle = null;

            status = EtwTrace.RegisterTraceGuids(etwProc, null, ref controlGuid, 1, ref guidReg, null, null, out registrationHandle);

            if (status != 0)
            {
                Console.WriteLine("Register() call Failed with Status {0}", status);
            }
            return(status);
        }
 internal static extern unsafe uint RegisterTraceGuids([In] EtwProc cbFunc, [In] void *context, [In] ref System.Guid controlGuid, [In] uint guidCount, ref TraceGuidRegistration guidReg, [In] string mofImagePath, [In] string mofResourceName, [Out] out ulong regHandle);