typedef struct _WMI_LOGGER_CONTEXT                                              // 142 / 139 elements; 0x0310 / 0x0468 Bytes
{
    ULONG32                     LoggerId;                                       // 0x0000 / 0x0000; 0x0004 / 0x0004 Bytes
    ULONG32                     BufferSize;                                     // 0x0004 / 0x0004; 0x0004 / 0x0004 Bytes
    ULONG32                     MaximumEventSize;                               // 0x0008 / 0x0008; 0x0004 / 0x0004 Bytes
    ULONG32                     LoggerMode;                                     // 0x000C / 0x000C; 0x0004 / 0x0004 Bytes
    LONG32                      AcceptNewEvents;                                // 0x0010 / 0x0010; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    ULONG32                     EventMarker[2];                                 // ------ / 0x0014; ------ / 0x0008 Bytes
#else                                                                           // #if defined(_M_X64)
    ULONG32                     EventMarker[1];                                 // 0x0014 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
    ULONG32                     ErrorMarker;                                    // 0x0018 / 0x001C; 0x0004 / 0x0004 Bytes
    ULONG32                     SizeMask;                                       // 0x001C / 0x0020; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING0_[4];                                  // ------ / 0x0024; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    INT64                       (WINAPI * GetCpuClock)          (void);         // 0x0020 / 0x0028; 0x0004 / 0x0008 Bytes
    PETHREAD                    LoggerThread;                                   // 0x0024 / 0x0030; 0x0004 / 0x0008 Bytes
    LONG32                      LoggerStatus;                                   // 0x0028 / 0x0038; 0x0004 / 0x0004 Bytes
    ULONG32                     FailureReason;                                  // 0x002C / 0x003C; 0x0004 / 0x0004 Bytes
    ETW_BUFFER_QUEUE            BufferQueue;                                    // 0x0030 / 0x0040; 0x0008 / 0x0010 Bytes
    ETW_BUFFER_QUEUE            OverflowQueue;                                  // 0x0038 / 0x0050; 0x0008 / 0x0010 Bytes
    LIST_ENTRY                  GlobalList;                                     // 0x0040 / 0x0060; 0x0008 / 0x0010 Bytes
    LIST_ENTRY                  ProviderBinaryList;                             // 0x0048 / 0x0070; 0x0008 / 0x0010 Bytes
    union                                                                       // 2 / 2 elements; 0x0004 / 0x0008 Bytes
    {
        PWMI_BUFFER_HEADER      BatchedBufferList;                              // 0x0050 / 0x0080; 0x0004 / 0x0008 Bytes
        EX_FAST_REF             CurrentBuffer;                                  // 0x0050 / 0x0080; 0x0004 / 0x0008 Bytes
    };
    UNICODE_STRING              LoggerName;                                     // 0x0054 / 0x0088; 0x0008 / 0x0010 Bytes
    UNICODE_STRING              LogFileName;                                    // 0x005C / 0x0098; 0x0008 / 0x0010 Bytes
    UNICODE_STRING              LogFilePattern;                                 // 0x0064 / 0x00A8; 0x0008 / 0x0010 Bytes
    UNICODE_STRING              NewLogFileName;                                 // 0x006C / 0x00B8; 0x0008 / 0x0010 Bytes
    ULONG32                     ClockType;                                      // 0x0074 / 0x00C8; 0x0004 / 0x0004 Bytes
    ULONG32                     LastFlushedBuffer;                              // 0x0078 / 0x00CC; 0x0004 / 0x0004 Bytes
    ULONG32                     FlushTimer;                                     // 0x007C / 0x00D0; 0x0004 / 0x0004 Bytes
    ULONG32                     FlushThreshold;                                 // 0x0080 / 0x00D4; 0x0004 / 0x0004 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING0_[4];                                  // 0x0084 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    LARGE_INTEGER               ByteOffset;                                     // 0x0088 / 0x00D8; 0x0008 / 0x0008 Bytes
    ULONG32                     MinimumBuffers;                                 // 0x0090 / 0x00E0; 0x0004 / 0x0004 Bytes
    LONG32                      BuffersAvailable;                               // 0x0094 / 0x00E4; 0x0004 / 0x0004 Bytes
    LONG32                      NumberOfBuffers;                                // 0x0098 / 0x00E8; 0x0004 / 0x0004 Bytes
    ULONG32                     MaximumBuffers;                                 // 0x009C / 0x00EC; 0x0004 / 0x0004 Bytes
    ULONG32                     EventsLost;                                     // 0x00A0 / 0x00F0; 0x0004 / 0x0004 Bytes
    LONG32                      PeakBuffersCount;                               // 0x00A4 / 0x00F4; 0x0004 / 0x0004 Bytes
    ULONG32                     BuffersWritten;                                 // 0x00A8 / 0x00F8; 0x0004 / 0x0004 Bytes
    ULONG32                     LogBuffersLost;                                 // 0x00AC / 0x00FC; 0x0004 / 0x0004 Bytes
    ULONG32                     RealTimeBuffersDelivered;                       // 0x00B0 / 0x0100; 0x0004 / 0x0004 Bytes
    ULONG32                     RealTimeBuffersLost;                            // 0x00B4 / 0x0104; 0x0004 / 0x0004 Bytes
    PLONG32                     SequencePtr;                                    // 0x00B8 / 0x0108; 0x0004 / 0x0008 Bytes
    ULONG32                     LocalSequence;                                  // 0x00BC / 0x0110; 0x0004 / 0x0004 Bytes
    GUID                        InstanceGuid;                                   // 0x00C0 / 0x0114; 0x0010 / 0x0010 Bytes
    ULONG32                     MaximumFileSize;                                // 0x00D0 / 0x0124; 0x0004 / 0x0004 Bytes
    LONG32                      FileCounter;                                    // 0x00D4 / 0x0128; 0x0004 / 0x0004 Bytes
    POOL_TYPE                   PoolType;                                       // 0x00D8 / 0x012C; 0x0004 / 0x0004 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING1_[4];                                  // 0x00DC / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    ETW_REF_CLOCK               ReferenceTime;                                  // 0x00E0 / 0x0130; 0x0010 / 0x0010 Bytes
    LONG32                      CollectionOn;                                   // 0x00F0 / 0x0140; 0x0004 / 0x0004 Bytes
    ULONG32                     ProviderInfoSize;                               // 0x00F4 / 0x0144; 0x0004 / 0x0004 Bytes
    LIST_ENTRY                  Consumers;                                      // 0x00F8 / 0x0148; 0x0008 / 0x0010 Bytes
    ULONG32                     NumConsumers;                                   // 0x0100 / 0x0158; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING1_[4];                                  // ------ / 0x015C; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    PETW_REALTIME_CONSUMER      TransitionConsumer;                             // 0x0104 / 0x0160; 0x0004 / 0x0008 Bytes
    PVOID                       RealtimeLogfileHandle;                          // 0x0108 / 0x0168; 0x0004 / 0x0008 Bytes
    UNICODE_STRING              RealtimeLogfileName;                            // 0x010C / 0x0170; 0x0008 / 0x0010 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING2_[4];                                  // 0x0114 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    LARGE_INTEGER               RealtimeWriteOffset;                            // 0x0118 / 0x0180; 0x0008 / 0x0008 Bytes
    LARGE_INTEGER               RealtimeReadOffset;                             // 0x0120 / 0x0188; 0x0008 / 0x0008 Bytes
    LARGE_INTEGER               RealtimeLogfileSize;                            // 0x0128 / 0x0190; 0x0008 / 0x0008 Bytes
    UINT64                      RealtimeLogfileUsage;                           // 0x0130 / 0x0198; 0x0008 / 0x0008 Bytes
    UINT64                      RealtimeMaximumFileSize;                        // 0x0138 / 0x01A0; 0x0008 / 0x0008 Bytes
    ULONG32                     RealtimeBuffersSaved;                           // 0x0140 / 0x01A8; 0x0004 / 0x0004 Bytes
    UINT8                       _PADDING32_[4];                                 // 0x0144 / 0x01AC; 0x0004 / 0x0004 Bytes
    ETW_REF_CLOCK               RealtimeReferenceTime;                          // 0x0148 / 0x01B0; 0x0010 / 0x0010 Bytes
    ETW_RT_EVENT_LOSS           NewRTEventsLost;                                // 0x0158 / 0x01C0; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING3_[4];                                  // ------ / 0x01C4; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    KEVENT                      LoggerEvent;                                    // 0x015C / 0x01C8; 0x0010 / 0x0018 Bytes
    KEVENT                      FlushEvent;                                     // 0x016C / 0x01E0; 0x0010 / 0x0018 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING4_[4];                                  // 0x017C / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    KTIMER                      FlushTimeOutTimer;                              // 0x0180 / 0x01F8; 0x0028 / 0x0040 Bytes
    KDPC                        LoggerDpc;                                      // 0x01A8 / 0x0238; 0x0020 / 0x0040 Bytes
    KMUTANT                     LoggerMutex;                                    // 0x01C8 / 0x0278; 0x0020 / 0x0038 Bytes
    EX_PUSH_LOCK                LoggerLock;                                     // 0x01E8 / 0x02B0; 0x0004 / 0x0008 Bytes
    union                                                                       // 2 / 2 elements; 0x0004 / 0x0008 Bytes
    {
        UINT_PTR                BufferListSpinLock;                             // 0x01EC / 0x02B8; 0x0004 / 0x0008 Bytes
        EX_PUSH_LOCK            BufferListPushLock;                             // 0x01EC / 0x02B8; 0x0004 / 0x0008 Bytes
    };
    SECURITY_CLIENT_CONTEXT     ClientSecurityContext;                          // 0x01F0 / 0x02C0; 0x003C / 0x0048 Bytes
    PTOKEN_ACCESS_INFORMATION   TokenAccessInformation;                         // 0x022C / 0x0308; 0x0004 / 0x0008 Bytes
    EX_FAST_REF                 SecurityDescriptor;                             // 0x0230 / 0x0310; 0x0004 / 0x0008 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING5_[4];                                  // 0x0234 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    LARGE_INTEGER               StartTime;                                      // 0x0238 / 0x0318; 0x0008 / 0x0008 Bytes
    PVOID                       LogFileHandle;                                  // 0x0240 / 0x0320; 0x0004 / 0x0008 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING6_[4];                                  // 0x0244 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    INT64                       BufferSequenceNumber;                           // 0x0248 / 0x0328; 0x0008 / 0x0008 Bytes
    union                                                                       // 2 / 2 elements; 0x0004 / 0x0004 Bytes
    {
        ULONG32                 Flags;                                          // 0x0250 / 0x0330; 0x0004 / 0x0004 Bytes
        struct                                                                  // 19 / 19 elements; 0x0004 / 0x0004 Bytes
        {
            ULONG32             Persistent                                 : 1; // 0x0250 / 0x0330; Bit:   0
            ULONG32             AutoLogger                                 : 1; // 0x0250 / 0x0330; Bit:   1
            ULONG32             FsReady                                    : 1; // 0x0250 / 0x0330; Bit:   2
            ULONG32             RealTime                                   : 1; // 0x0250 / 0x0330; Bit:   3
            ULONG32             Wow                                        : 1; // 0x0250 / 0x0330; Bit:   4
            ULONG32             KernelTrace                                : 1; // 0x0250 / 0x0330; Bit:   5
            ULONG32             NoMoreEnable                               : 1; // 0x0250 / 0x0330; Bit:   6
            ULONG32             StackTracing                               : 1; // 0x0250 / 0x0330; Bit:   7
            ULONG32             ErrorLogged                                : 1; // 0x0250 / 0x0330; Bit:   8
            ULONG32             RealtimeLoggerContextFreed                 : 1; // 0x0250 / 0x0330; Bit:   9
            ULONG32             PebsTracing                                : 1; // 0x0250 / 0x0330; Bit:  10
            ULONG32             PmcCounters                                : 1; // 0x0250 / 0x0330; Bit:  11
            ULONG32             PageAlignBuffers                           : 1; // 0x0250 / 0x0330; Bit:  12
            ULONG32             StackLookasideListAllocated                : 1; // 0x0250 / 0x0330; Bit:  13
            ULONG32             SecurityTrace                              : 1; // 0x0250 / 0x0330; Bit:  14
            ULONG32             SpareFlags1                                : 1; // 0x0250 / 0x0330; Bit:  15
            ULONG32             SystemLoggerIndex                          : 8; // 0x0250 / 0x0330; Bits: 16 - 23
            ULONG32             StackCaching                               : 1; // 0x0250 / 0x0330; Bit:  24
            ULONG32             SpareFlags2                                : 7; // 0x0250 / 0x0330; Bits: 25 - 31
        };
    };
    union                                                                       // 2 / 2 elements; 0x0004 / 0x0004 Bytes
    {
        ULONG32                 RequestFlag;                                    // 0x0254 / 0x0334; 0x0004 / 0x0004 Bytes
        struct                                                                  // 13 / 13 elements; 0x0004 / 0x0004 Bytes
        {
            ULONG32             DbgRequestNewFile                          : 1; // 0x0254 / 0x0334; Bit:   0
            ULONG32             DbgRequestUpdateFile                       : 1; // 0x0254 / 0x0334; Bit:   1
            ULONG32             DbgRequestFlush                            : 1; // 0x0254 / 0x0334; Bit:   2
            ULONG32             DbgRequestDisableRealtime                  : 1; // 0x0254 / 0x0334; Bit:   3
            ULONG32             DbgRequestDisconnectConsumer               : 1; // 0x0254 / 0x0334; Bit:   4
            ULONG32             DbgRequestConnectConsumer                  : 1; // 0x0254 / 0x0334; Bit:   5
            ULONG32             DbgRequestNotifyConsumer                   : 1; // 0x0254 / 0x0334; Bit:   6
            ULONG32             DbgRequestUpdateHeader                     : 1; // 0x0254 / 0x0334; Bit:   7
            ULONG32             DbgRequestDeferredFlush                    : 1; // 0x0254 / 0x0334; Bit:   8
            ULONG32             DbgRequestDeferredFlushTimer               : 1; // 0x0254 / 0x0334; Bit:   9
            ULONG32             DbgRequestFlushTimer                       : 1; // 0x0254 / 0x0334; Bit:  10
            ULONG32             DbgRequestUpdateDebugger                   : 1; // 0x0254 / 0x0334; Bit:  11
            ULONG32             DbgSpareRequestFlags                       :20; // 0x0254 / 0x0334; Bits: 12 - 31
        };
    };
    RTL_BITMAP                  HookIdMap;                                      // 0x0258 / 0x0338; 0x0008 / 0x0010 Bytes
    PETW_STACK_CACHE            StackCache;                                     // 0x0260 / 0x0348; 0x0004 / 0x0008 Bytes
    PETW_PMC_SUPPORT            PmcData;                                        // 0x0264 / 0x0350; 0x0004 / 0x0008 Bytes
    LIST_ENTRY                  WinRtProviderBinaryList;                        // 0x0268 / 0x0358; 0x0008 / 0x0010 Bytes
    PWMI_BUFFER_HEADER *        ScratchArray;                                   // 0x0270 / 0x0368; 0x0004 / 0x0008 Bytes
    DISALLOWED_GUIDS            DisallowedGuids;                                // 0x0274 / 0x0370; 0x0008 / 0x0010 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING7_[4];                                  // 0x027C / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    INT64                       RelativeTimerDueTime;                           // 0x0280 / 0x0380; 0x0008 / 0x0008 Bytes
    PERIODIC_CAPTURE_STATE_GUIDS 
                                PeriodicCaptureStateGuids;                      // 0x0288 / 0x0388; 0x0008 / 0x0010 Bytes
    PEX_TIMER                   PeriodicCaptureStateTimer;                      // 0x0290 / 0x0398; 0x0004 / 0x0008 Bytes
    ETW_PERIODIC_TIMER_STATE    PeriodicCaptureStateTimerState;                 // 0x0294 / 0x03A0; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING4_[4];                                  // ------ / 0x03A4; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    PETW_SOFT_RESTART_CONTEXT   SoftRestartContext;                             // 0x0298 / 0x03A8; 0x0004 / 0x0008 Bytes
    PETW_SILODRIVERSTATE        SiloState;                                      // 0x029C / 0x03B0; 0x0004 / 0x0008 Bytes
    WORK_QUEUE_ITEM             CompressionWorkItem;                            // 0x02A0 / 0x03B8; 0x0010 / 0x0020 Bytes
    LONG32                      CompressionWorkItemState;                       // 0x02B0 / 0x03D8; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING5_[4];                                  // ------ / 0x03DC; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    EX_PUSH_LOCK                CompressionLock;                                // 0x02B4 / 0x03E0; 0x0004 / 0x0008 Bytes
    PWMI_BUFFER_HEADER          CompressionTarget;                              // 0x02B8 / 0x03E8; 0x0004 / 0x0008 Bytes
    PVOID                       CompressionWorkspace;                           // 0x02BC / 0x03F0; 0x0004 / 0x0008 Bytes
    LONG32                      CompressionOn;                                  // 0x02C0 / 0x03F8; 0x0004 / 0x0004 Bytes
    ULONG32                     CompressionRatioGuess;                          // 0x02C4 / 0x03FC; 0x0004 / 0x0004 Bytes
    ULONG32                     PartialBufferCompressionLevel;                  // 0x02C8 / 0x0400; 0x0004 / 0x0004 Bytes
    enum ETW_COMPRESSION_RESUMPTION_MODE 
                                CompressionResumptionMode;                      // 0x02CC / 0x0404; 0x0004 / 0x0004 Bytes
    SINGLE_LIST_ENTRY           PlaceholderList;                                // 0x02D0 / 0x0408; 0x0004 / 0x0008 Bytes
    KDPC                        CompressionDpc;                                 // 0x02D4 / 0x0410; 0x0020 / 0x0040 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING8_[4];                                  // 0x02F4 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    LARGE_INTEGER               LastBufferSwitchTime;                           // 0x02F8 / 0x0450; 0x0008 / 0x0008 Bytes
    LARGE_INTEGER               BufferWriteDuration;                            // 0x0300 / 0x0458; 0x0008 / 0x0008 Bytes
    LARGE_INTEGER               BufferCompressDuration;                         // 0x0308 / 0x0460; 0x0008 / 0x0008 Bytes
} WMI_LOGGER_CONTEXT, * PWMI_LOGGER_CONTEXT;

Return to OS-specific structures/unions/enums list.
Return to OS version list.