Ejemplo n.º 1
0
        internal unsafe override uint EventWrite(EventTrace.Event eventID, EventTrace.Keyword keywords, EventTrace.Level level, int argc, EventData *argv)
        {
            ManifestEtw.EventDescriptor eventDescriptor;
            eventDescriptor.Id       = (ushort)eventID;
            eventDescriptor.Version  = EventTrace.GetVersionForEvent(eventID);
            eventDescriptor.Channel  = 0x10; // Since Channel isn't supported on XP we only use a single default channel.
            eventDescriptor.Level    = (byte)level;
            eventDescriptor.Opcode   = EventTrace.GetOpcodeForEvent(eventID);
            eventDescriptor.Task     = EventTrace.GetTaskForEvent(eventID);
            eventDescriptor.Keywords = (long)keywords;
            if (argc == 0)
            {
                argv = null;
            }

            return(ManifestEtw.EventWrite(_registrationHandle.Value, ref eventDescriptor, (uint)argc, argv));
        }