typedef struct _KTHREAD                                                         // 174 / 188 elements; 0x0350 / 0x05F0 Bytes
{
    DISPATCHER_HEADER           Header;                                         // 0x0000 / 0x0000; 0x0010 / 0x0018 Bytes
    PVOID                       SListFaultAddress;                              // 0x0010 / 0x0018; 0x0004 / 0x0008 Bytes
#if !defined(_M_X64)
    UINT8                       _PADDING0_[4];                                  // 0x0014 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    UINT64                      QuantumTarget;                                  // 0x0018 / 0x0020; 0x0008 / 0x0008 Bytes
    PVOID                       InitialStack;                                   // 0x0020 / 0x0028; 0x0004 / 0x0008 Bytes
    PVOID                       StackLimit;                                     // 0x0024 / 0x0030; 0x0004 / 0x0008 Bytes
    PVOID                       StackBase;                                      // 0x0028 / 0x0038; 0x0004 / 0x0008 Bytes
    UINT_PTR                    ThreadLock;                                     // 0x002C / 0x0040; 0x0004 / 0x0008 Bytes
    UINT64                      CycleTime;                                      // 0x0030 / 0x0048; 0x0008 / 0x0008 Bytes
#if !defined(_M_X64)
    ULONG32                     HighCycleTime;                                  // 0x0038 / ------; 0x0004 / ------ Bytes
    PVOID                       ServiceTable;                                   // 0x003C / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    ULONG32                     CurrentRunTime;                                 // 0x0040 / 0x0050; 0x0004 / 0x0004 Bytes
    ULONG32                     ExpectedRunTime;                                // 0x0044 / 0x0054; 0x0004 / 0x0004 Bytes
    PVOID                       KernelStack;                                    // 0x0048 / 0x0058; 0x0004 / 0x0008 Bytes
    PXSAVE_FORMAT               StateSaveArea;                                  // 0x004C / 0x0060; 0x0004 / 0x0008 Bytes
    PKSCHEDULING_GROUP          SchedulingGroup;                                // 0x0050 / 0x0068; 0x0004 / 0x0008 Bytes
    KWAIT_STATUS_REGISTER       WaitRegister;                                   // 0x0054 / 0x0070; 0x0001 / 0x0001 Bytes
    UINT8                       Running;                                        // 0x0055 / 0x0071; 0x0001 / 0x0001 Bytes
    UINT8                       Alerted[2];                                     // 0x0056 / 0x0072; 0x0002 / 0x0002 Bytes
    union                                                                       // 2 / 2 elements; 0x0004 / 0x0004 Bytes
    {
        struct                                                                  // 22 / 22 elements; 0x0004 / 0x0004 Bytes
        {
            ULONG32             AutoBoostActive                            : 1; // 0x0058 / 0x0074; Bit:   0
            ULONG32             ReadyTransition                            : 1; // 0x0058 / 0x0074; Bit:   1
            ULONG32             WaitNext                                   : 1; // 0x0058 / 0x0074; Bit:   2
            ULONG32             SystemAffinityActive                       : 1; // 0x0058 / 0x0074; Bit:   3
            ULONG32             Alertable                                  : 1; // 0x0058 / 0x0074; Bit:   4
            ULONG32             UserStackWalkActive                        : 1; // 0x0058 / 0x0074; Bit:   5
            ULONG32             ApcInterruptRequest                        : 1; // 0x0058 / 0x0074; Bit:   6
            ULONG32             QuantumEndMigrate                          : 1; // 0x0058 / 0x0074; Bit:   7
            ULONG32             UmsDirectedSwitchEnable                    : 1; // 0x0058 / 0x0074; Bit:   8
            ULONG32             TimerActive                                : 1; // 0x0058 / 0x0074; Bit:   9
            ULONG32             SystemThread                               : 1; // 0x0058 / 0x0074; Bit:  10
            ULONG32             ProcessDetachActive                        : 1; // 0x0058 / 0x0074; Bit:  11
            ULONG32             CalloutActive                              : 1; // 0x0058 / 0x0074; Bit:  12
            ULONG32             ScbReadyQueue                              : 1; // 0x0058 / 0x0074; Bit:  13
            ULONG32             ApcQueueable                               : 1; // 0x0058 / 0x0074; Bit:  14
            ULONG32             ReservedStackInUse                         : 1; // 0x0058 / 0x0074; Bit:  15
            ULONG32             UmsPerformingSyscall                       : 1; // 0x0058 / 0x0074; Bit:  16
            ULONG32             TimerSuspended                             : 1; // 0x0058 / 0x0074; Bit:  17
            ULONG32             SuspendedWaitMode                          : 1; // 0x0058 / 0x0074; Bit:  18
            ULONG32             SuspendSchedulerApcWait                    : 1; // 0x0058 / 0x0074; Bit:  19
            ULONG32             CetShadowStack                             : 1; // 0x0058 / 0x0074; Bit:  20
            ULONG32             Reserved                                   :11; // 0x0058 / 0x0074; Bits: 21 - 31
        };
        LONG32                  MiscFlags;                                      // 0x0058 / 0x0074; 0x0004 / 0x0004 Bytes
    };
    union                                                                       // 2 / 2 elements; 0x0004 / 0x0004 Bytes
    {
        struct                                                                  // 23 / 23 elements; 0x0004 / 0x0004 Bytes
        {
            ULONG32             BamQosLevel                                : 2; // 0x005C / 0x0078; Bits:  0 -  1
            ULONG32             AutoAlignment                              : 1; // 0x005C / 0x0078; Bit:   2
            ULONG32             DisableBoost                               : 1; // 0x005C / 0x0078; Bit:   3
            ULONG32             AlertedByThreadId                          : 1; // 0x005C / 0x0078; Bit:   4
            ULONG32             QuantumDonation                            : 1; // 0x005C / 0x0078; Bit:   5
            ULONG32             EnableStackSwap                            : 1; // 0x005C / 0x0078; Bit:   6
            ULONG32             GuiThread                                  : 1; // 0x005C / 0x0078; Bit:   7
            ULONG32             DisableQuantum                             : 1; // 0x005C / 0x0078; Bit:   8
            ULONG32             ChargeOnlySchedulingGroup                  : 1; // 0x005C / 0x0078; Bit:   9
            ULONG32             DeferPreemption                            : 1; // 0x005C / 0x0078; Bit:  10
            ULONG32             QueueDeferPreemption                       : 1; // 0x005C / 0x0078; Bit:  11
            ULONG32             ForceDeferSchedule                         : 1; // 0x005C / 0x0078; Bit:  12
            ULONG32             SharedReadyQueueAffinity                   : 1; // 0x005C / 0x0078; Bit:  13
            ULONG32             FreezeCount                                : 1; // 0x005C / 0x0078; Bit:  14
            ULONG32             TerminationApcRequest                      : 1; // 0x005C / 0x0078; Bit:  15
            ULONG32             AutoBoostEntriesExhausted                  : 1; // 0x005C / 0x0078; Bit:  16
            ULONG32             KernelStackResident                        : 1; // 0x005C / 0x0078; Bit:  17
            ULONG32             TerminateRequestReason                     : 2; // 0x005C / 0x0078; Bits: 18 - 19
            ULONG32             ProcessStackCountDecremented               : 1; // 0x005C / 0x0078; Bit:  20
            ULONG32             RestrictedGuiThread                        : 1; // 0x005C / 0x0078; Bit:  21
            ULONG32             VpBackingThread                            : 1; // 0x005C / 0x0078; Bit:  22
            ULONG32             ThreadFlagsSpare                           : 1; // 0x005C / 0x0078; Bit:  23
            ULONG32             EtwStackTraceApcInserted                   : 8; // 0x005C / 0x0078; Bits: 24 - 31
        };
        LONG32                  ThreadFlags;                                    // 0x005C / 0x0078; 0x0004 / 0x0004 Bytes
    };
    UINT8                       Tag;                                            // 0x0060 / 0x007C; 0x0001 / 0x0001 Bytes
    UINT8                       SystemHeteroCpuPolicy;                          // 0x0061 / 0x007D; 0x0001 / 0x0001 Bytes
    struct                                                                      // 2 / 2 elements; 0x0001 / 0x0001 Bytes
    {
        UINT8                   UserHeteroCpuPolicy                        : 7; // 0x0062 / 0x007E; Bits:  0 -  6
        UINT8                   ExplicitSystemHeteroCpuPolicy              : 1; // 0x0062 / 0x007E; Bit:   7
    };
#if !defined(_M_X64)
    UINT8                       Spare0;                                         // 0x0063 / ------; 0x0001 / ------ Bytes
    ULONG32                     SystemCallNumber;                               // 0x0064 / ------; 0x0004 / ------ Bytes
    PVOID                       FirstArgument;                                  // 0x0068 / ------; 0x0004 / ------ Bytes
    PKTRAP_FRAME                TrapFrame;                                      // 0x006C / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
    union                                                                       // 2 / 2 elements; 0x0018 / 0x0001 Bytes
    {
#if !defined(_M_X64)
        KAPC_STATE ApcState;                                                    // 0x0070 / ------; 0x0018 / ------ Bytes
#endif                                                                          // #if !defined(_M_X64)
        struct                                                                  // 2 / 2 elements; 0x0018 / 0x0001 Bytes
        {
#if defined(_M_X64)
            UINT8               RunningNonRetpolineCode                    : 1; // ------ / 0x007F; Bit:   0
            UINT8               SpecCtrlSpare                              : 7; // ------ / 0x007F; Bits:  1 -  7
#else                                                                           // #if defined(_M_X64)
            UINT8               ApcStateFill[23];                               // 0x0070 / ------; 0x0017 / ------ Bytes
            CHAR                Priority;                                       // 0x0087 / ------; 0x0001 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
        };
#if defined(_M_X64)
        UINT8                   SpecCtrl;                                       // ------ / 0x007F; ------ / 0x0001 Bytes
#endif                                                                          // #if defined(_M_X64)
    };
#if defined(_M_X64)
    ULONG32                     SystemCallNumber;                               // ------ / 0x0080; ------ / 0x0004 Bytes
#else                                                                           // #if defined(_M_X64)
    ULONG32                     UserIdealProcessor;                             // 0x0088 / ------; 0x0004 / ------ Bytes
    ULONG32                     ContextSwitches;                                // 0x008C / ------; 0x0004 / ------ Bytes
    UINT8                       State;                                          // 0x0090 / ------; 0x0001 / ------ Bytes
    CHAR                        Spare12;                                        // 0x0091 / ------; 0x0001 / ------ Bytes
    UINT8                       WaitIrql;                                       // 0x0092 / ------; 0x0001 / ------ Bytes
    CHAR                        WaitMode;                                       // 0x0093 / ------; 0x0001 / ------ Bytes
    LONG32                      WaitStatus;                                     // 0x0094 / ------; 0x0004 / ------ Bytes
    PKWAIT_BLOCK                WaitBlockList;                                  // 0x0098 / ------; 0x0004 / ------ Bytes
    union                                                                       // 0x009C / ------; 2 / - elements; 0x0008 / ------ Bytes
    {
        LIST_ENTRY WaitListEntry;                                               // 0x009C / ------; 0x0008 / ------ Bytes
        SINGLE_LIST_ENTRY SwapListEntry;                                        // 0x009C / ------; 0x0004 / ------ Bytes
    };
    PDISPATCHER_HEADER          Queue;                                          // 0x00A4 / ------; 0x0004 / ------ Bytes
    PVOID                       Teb;                                            // 0x00A8 / ------; 0x0004 / ------ Bytes
    UINT8                       _PADDING1_[4];                                  // 0x00AC / ------; 0x0004 / ------ Bytes
    UINT64                      RelativeTimerBias;                              // 0x00B0 / ------; 0x0008 / ------ Bytes
    KTIMER Timer;                                                               // 0x00B8 / ------; 0x0028 / ------ Bytes
    union                                                                       // 0x00E0 / ------; 5 / - elements; 0x0060 / ------ Bytes
    {
        KWAIT_BLOCK             WaitBlock[4];                                   // 0x00E0 / ------; 0x0060 / ------ Bytes
        struct                                                                  // 0x00E0 / ------; 2 / - elements; 0x0018 / ------ Bytes
        {
            UINT8               WaitBlockFill8[20];                             // 0x00E0 / ------; 0x0014 / ------ Bytes
            PKTHREAD_COUNTERS   ThreadCounters;                                 // 0x00F4 / ------; 0x0004 / ------ Bytes
        };
        struct                                                                  // 0x00E0 / ------; 2 / - elements; 0x0030 / ------ Bytes
        {
            UINT8               WaitBlockFill9[44];                             // 0x00E0 / ------; 0x002C / ------ Bytes
            PXSTATE_SAVE        XStateSave;                                     // 0x010C / ------; 0x0004 / ------ Bytes
        };
        struct                                                                  // 0x00E0 / ------; 2 / - elements; 0x0048 / ------ Bytes
        {
            UINT8               WaitBlockFill10[68];                            // 0x00E0 / ------; 0x0044 / ------ Bytes
            PVOID               Win32Thread;                                    // 0x0124 / ------; 0x0004 / ------ Bytes
        };
        struct                                                                  // 0x00E0 / ------; 3 / - elements; 0x0060 / ------ Bytes
        {
            UINT8               WaitBlockFill11[88];                            // 0x00E0 / ------; 0x0058 / ------ Bytes
            ULONG32             WaitTime;                                       // 0x0138 / ------; 0x0004 / ------ Bytes
            union                                                               // 0x013C / ------; 2 / - elements; 0x0004 / ------ Bytes
            {
                struct                                                          // 0x013C / ------; 2 / - elements; 0x0004 / ------ Bytes
                {
                    INT16       KernelApcDisable;                               // 0x013C / ------; 0x0002 / ------ Bytes
                    INT16       SpecialApcDisable;                              // 0x013E / ------; 0x0002 / ------ Bytes
                };
                ULONG32         CombinedApcDisable;                             // 0x013C / ------; 0x0004 / ------ Bytes
            };
        };
    };
    LIST_ENTRY QueueListEntry;                                                  // 0x0140 / ------; 0x0008 / ------ Bytes
    union                                                                       // 0x0148 / ------; 2 / - elements; 0x0004 / ------ Bytes
    {
        ULONG32                 NextProcessor;                                  // 0x0148 / ------; 0x0004 / ------ Bytes
        struct                                                                  // 0x0148 / ------; 2 / - elements; 0x0004 / ------ Bytes
        {
            ULONG32             NextProcessorNumber                        :31; // 0x0148 / ------; Bits:  0 - 30
            ULONG32             SharedReadyQueue                           : 1; // 0x0148 / ------; Bit:  31
        };
    };
    LONG32                      QueuePriority;                                  // 0x014C / ------; 0x0004 / ------ Bytes
    PKPROCESS                   Process;                                        // 0x0150 / ------; 0x0004 / ------ Bytes
    union                                                                       // 0x0154 / ------; 2 / - elements; 0x000C / ------ Bytes
    {
        GROUP_AFFINITY UserAffinity;                                            // 0x0154 / ------; 0x000C / ------ Bytes
        struct                                                                  // 0x0154 / ------; 7 / - elements; 0x000C / ------ Bytes
        {
            UINT8               UserAffinityFill[6];                            // 0x0154 / ------; 0x0006 / ------ Bytes
            CHAR                PreviousMode;                                   // 0x015A / ------; 0x0001 / ------ Bytes
            CHAR                BasePriority;                                   // 0x015B / ------; 0x0001 / ------ Bytes
            union                                                               // 0x015C / ------; 2 / - elements; 0x0001 / ------ Bytes
            {
                CHAR            PriorityDecrement;                              // 0x015C / ------; 0x0001 / ------ Bytes
                struct                                                          // 0x015C / ------; 2 / - elements; 0x0001 / ------ Bytes
                {
                    UINT8       ForegroundBoost                            : 4; // 0x015C / ------; Bits:  0 -  3
                    UINT8       UnusualBoost                               : 4; // 0x015C / ------; Bits:  4 -  7
                };
            };
            UINT8               Preempted;                                      // 0x015D / ------; 0x0001 / ------ Bytes
            UINT8               AdjustReason;                                   // 0x015E / ------; 0x0001 / ------ Bytes
            CHAR                AdjustIncrement;                                // 0x015F / ------; 0x0001 / ------ Bytes
        };
    };
    ULONG32                     AffinityVersion;                                // 0x0160 / ------; 0x0004 / ------ Bytes
    union                                                                       // 0x0164 / ------; 2 / - elements; 0x000C / ------ Bytes
    {
        GROUP_AFFINITY Affinity;                                                // 0x0164 / ------; 0x000C / ------ Bytes
        struct                                                                  // 0x0164 / ------; 4 / - elements; 0x000C / ------ Bytes
        {
            UINT8               AffinityFill[6];                                // 0x0164 / ------; 0x0006 / ------ Bytes
            UINT8               ApcStateIndex;                                  // 0x016A / ------; 0x0001 / ------ Bytes
            UINT8               WaitBlockCount;                                 // 0x016B / ------; 0x0001 / ------ Bytes
            ULONG32             IdealProcessor;                                 // 0x016C / ------; 0x0004 / ------ Bytes
        };
    };
#endif                                                                          // #if defined(_M_X64)
    ULONG32                     ReadyTime;                                      // 0x0170 / 0x0084; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    PVOID                       FirstArgument;                                  // ------ / 0x0088; ------ / 0x0008 Bytes
    PKTRAP_FRAME                TrapFrame;                                      // ------ / 0x0090; ------ / 0x0008 Bytes
#endif                                                                          // #if defined(_M_X64)
    union                                                                       // 2 / 2 elements; 0x0018 / 0x0030 Bytes
    {
#if defined(_M_X64)
        KAPC_STATE ApcState;                                                    // ------ / 0x0098; ------ / 0x0030 Bytes
#else                                                                           // #if defined(_M_X64)
        KAPC_STATE SavedApcState;                                               // 0x0174 / ------; 0x0018 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
        struct                                                                  // 2 / 3 elements; 0x0018 / 0x0030 Bytes
        {
#if defined(_M_X64)
            UINT8               ApcStateFill[43];                               // ------ / 0x0098; ------ / 0x002B Bytes
            CHAR                Priority;                                       // ------ / 0x00C3; ------ / 0x0001 Bytes
            ULONG32             UserIdealProcessor;                             // ------ / 0x00C4; ------ / 0x0004 Bytes
#else                                                                           // #if defined(_M_X64)
            UINT8               SavedApcStateFill[23];                          // 0x0174 / ------; 0x0017 / ------ Bytes
            UINT8               WaitReason;                                     // 0x018B / ------; 0x0001 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
        };
    };
#if defined(_M_X64)
    INT64                       WaitStatus;                                     // ------ / 0x00C8; ------ / 0x0008 Bytes
    PKWAIT_BLOCK                WaitBlockList;                                  // ------ / 0x00D0; ------ / 0x0008 Bytes
#else                                                                           // #if defined(_M_X64)
    CHAR                        SuspendCount;                                   // 0x018C / ------; 0x0001 / ------ Bytes
    CHAR                        Saturation;                                     // 0x018D / ------; 0x0001 / ------ Bytes
    UINT16                      SListFaultCount;                                // 0x018E / ------; 0x0002 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
    union                                                                       // 7 / 2 elements; 0x0030 / 0x0010 Bytes
    {
#if defined(_M_X64)
        LIST_ENTRY WaitListEntry;                                               // ------ / 0x00D8; ------ / 0x0010 Bytes
        SINGLE_LIST_ENTRY SwapListEntry;                                        // ------ / 0x00D8; ------ / 0x0008 Bytes
#else                                                                           // #if defined(_M_X64)
        KAPC SchedulerApc;                                                      // 0x0190 / ------; 0x0030 / ------ Bytes
        struct                                                                  // 0x0190 / ------; 2 / - elements; 0x0002 / ------ Bytes
        {
            UINT8               SchedulerApcFill0[1];                           // 0x0190 / ------; 0x0001 / ------ Bytes
            UINT8               ResourceIndex;                                  // 0x0191 / ------; 0x0001 / ------ Bytes
        };
        struct                                                                  // 0x0190 / ------; 2 / - elements; 0x0004 / ------ Bytes
        {
            UINT8               SchedulerApcFill1[3];                           // 0x0190 / ------; 0x0003 / ------ Bytes
            UINT8               QuantumReset;                                   // 0x0193 / ------; 0x0001 / ------ Bytes
        };
        struct                                                                  // 0x0190 / ------; 2 / - elements; 0x0008 / ------ Bytes
        {
            UINT8               SchedulerApcFill2[4];                           // 0x0190 / ------; 0x0004 / ------ Bytes
            ULONG32             KernelTime;                                     // 0x0194 / ------; 0x0004 / ------ Bytes
        };
        struct                                                                  // 0x0190 / ------; 2 / - elements; 0x0028 / ------ Bytes
        {
            UINT8               SchedulerApcFill3[36];                          // 0x0190 / ------; 0x0024 / ------ Bytes
            PKPRCB              WaitPrcb;                                       // 0x01B4 / ------; 0x0004 / ------ Bytes
        };
        struct                                                                  // 0x0190 / ------; 2 / - elements; 0x002C / ------ Bytes
        {
            UINT8               SchedulerApcFill4[40];                          // 0x0190 / ------; 0x0028 / ------ Bytes
            PVOID               LegoData;                                       // 0x01B8 / ------; 0x0004 / ------ Bytes
        };
        struct                                                                  // 0x0190 / ------; 2 / - elements; 0x0030 / ------ Bytes
        {
            UINT8               SchedulerApcFill5[47];                          // 0x0190 / ------; 0x002F / ------ Bytes
            UINT8               CallbackNestingLevel;                           // 0x01BF / ------; 0x0001 / ------ Bytes
        };
#endif                                                                          // #if defined(_M_X64)
    };
#if defined(_M_X64)
    PDISPATCHER_HEADER          Queue;                                          // ------ / 0x00E8; ------ / 0x0008 Bytes
    PVOID                       Teb;                                            // ------ / 0x00F0; ------ / 0x0008 Bytes
    UINT64                      RelativeTimerBias;                              // ------ / 0x00F8; ------ / 0x0008 Bytes
    KTIMER Timer;                                                               // ------ / 0x0100; ------ / 0x0040 Bytes
#else                                                                           // #if defined(_M_X64)
    ULONG32                     UserTime;                                       // 0x01C0 / ------; 0x0004 / ------ Bytes
    KEVENT SuspendEvent;                                                        // 0x01C4 / ------; 0x0010 / ------ Bytes
    LIST_ENTRY ThreadListEntry;                                                 // 0x01D4 / ------; 0x0008 / ------ Bytes
    LIST_ENTRY MutantListHead;                                                  // 0x01DC / ------; 0x0008 / ------ Bytes
    UINT8                       AbEntrySummary;                                 // 0x01E4 / ------; 0x0001 / ------ Bytes
    UINT8                       AbWaitEntryCount;                               // 0x01E5 / ------; 0x0001 / ------ Bytes
    UINT8                       AbAllocationRegionCount;                        // 0x01E6 / ------; 0x0001 / ------ Bytes
    CHAR                        SystemPriority;                                 // 0x01E7 / ------; 0x0001 / ------ Bytes
    KLOCK_ENTRY                 LockEntries[6];                                 // 0x01E8 / ------; 0x0120 / ------ Bytes
    SINGLE_LIST_ENTRY PropagateBoostsEntry;                                     // 0x0308 / ------; 0x0004 / ------ Bytes
    SINGLE_LIST_ENTRY IoSelfBoostsEntry;                                        // 0x030C / ------; 0x0004 / ------ Bytes
    UINT8                       PriorityFloorCounts[16];                        // 0x0310 / ------; 0x0010 / ------ Bytes
    ULONG32                     PriorityFloorSummary;                           // 0x0320 / ------; 0x0004 / ------ Bytes
    LONG32                      AbCompletedIoBoostCount;                        // 0x0324 / ------; 0x0004 / ------ Bytes
    LONG32                      AbCompletedIoQoSBoostCount;                     // 0x0328 / ------; 0x0004 / ------ Bytes
    INT16                       KeReferenceCount;                               // 0x032C / ------; 0x0002 / ------ Bytes
    UINT8                       AbOrphanedEntrySummary;                         // 0x032E / ------; 0x0001 / ------ Bytes
    UINT8                       AbOwnedEntryCount;                              // 0x032F / ------; 0x0001 / ------ Bytes
    ULONG32                     ForegroundLossTime;                             // 0x0330 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
    union                                                                       // 2 / 9 elements; 0x0008 / 0x00C0 Bytes
    {
#if defined(_M_X64)
        KWAIT_BLOCK             WaitBlock[4];                                   // ------ / 0x0140; ------ / 0x00C0 Bytes
#else                                                                           // #if defined(_M_X64)
        LIST_ENTRY GlobalForegroundListEntry;                                   // 0x0334 / ------; 0x0008 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
        struct                                                                  // 2 / 2 elements; 0x0008 / 0x0018 Bytes
        {
#if defined(_M_X64)
            UINT8               WaitBlockFill4[20];                             // ------ / 0x0140; ------ / 0x0014 Bytes
            ULONG32             ContextSwitches;                                // ------ / 0x0154; ------ / 0x0004 Bytes
#else                                                                           // #if defined(_M_X64)
            SINGLE_LIST_ENTRY ForegroundDpcStackListEntry;                      // 0x0334 / ------; 0x0004 / ------ Bytes
            ULONG32             InGlobalForegroundList;                         // 0x0338 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
        };
#if defined(_M_X64)
        struct                                                                  // ------ / 0x0140; - / 5 elements; ------ / 0x0048 Bytes
        {
            UINT8               WaitBlockFill5[68];                             // ------ / 0x0140; ------ / 0x0044 Bytes
            UINT8               State;                                          // ------ / 0x0184; ------ / 0x0001 Bytes
            CHAR                Spare13;                                        // ------ / 0x0185; ------ / 0x0001 Bytes
            UINT8               WaitIrql;                                       // ------ / 0x0186; ------ / 0x0001 Bytes
            CHAR                WaitMode;                                       // ------ / 0x0187; ------ / 0x0001 Bytes
        };
        struct                                                                  // ------ / 0x0140; - / 2 elements; ------ / 0x0078 Bytes
        {
            UINT8               WaitBlockFill6[116];                            // ------ / 0x0140; ------ / 0x0074 Bytes
            ULONG32             WaitTime;                                       // ------ / 0x01B4; ------ / 0x0004 Bytes
        };
        struct                                                                  // ------ / 0x0140; - / 2 elements; ------ / 0x00A8 Bytes
        {
            UINT8               WaitBlockFill7[164];                            // ------ / 0x0140; ------ / 0x00A4 Bytes
            union                                                               // ------ / 0x01E4; - / 2 elements; ------ / 0x0004 Bytes
            {
                struct                                                          // ------ / 0x01E4; - / 2 elements; ------ / 0x0004 Bytes
                {
                    INT16       KernelApcDisable;                               // ------ / 0x01E4; ------ / 0x0002 Bytes
                    INT16       SpecialApcDisable;                              // ------ / 0x01E6; ------ / 0x0002 Bytes
                };
                ULONG32         CombinedApcDisable;                             // ------ / 0x01E4; ------ / 0x0004 Bytes
            };
        };
        struct                                                                  // ------ / 0x0140; - / 2 elements; ------ / 0x0030 Bytes
        {
            UINT8               WaitBlockFill8[40];                             // ------ / 0x0140; ------ / 0x0028 Bytes
            PKTHREAD_COUNTERS   ThreadCounters;                                 // ------ / 0x0168; ------ / 0x0008 Bytes
        };
        struct                                                                  // ------ / 0x0140; - / 2 elements; ------ / 0x0060 Bytes
        {
            UINT8               WaitBlockFill9[88];                             // ------ / 0x0140; ------ / 0x0058 Bytes
            PXSTATE_SAVE        XStateSave;                                     // ------ / 0x0198; ------ / 0x0008 Bytes
        };
        struct                                                                  // ------ / 0x0140; - / 2 elements; ------ / 0x0090 Bytes
        {
            UINT8               WaitBlockFill10[136];                           // ------ / 0x0140; ------ / 0x0088 Bytes
            PVOID               Win32Thread;                                    // ------ / 0x01C8; ------ / 0x0008 Bytes
        };
        struct                                                                  // ------ / 0x0140; - / 3 elements; ------ / 0x00C0 Bytes
        {
            UINT8               WaitBlockFill11[176];                           // ------ / 0x0140; ------ / 0x00B0 Bytes
            PUMS_CONTROL_BLOCK  Ucb;                                            // ------ / 0x01F0; ------ / 0x0008 Bytes
            PKUMS_CONTEXT_HEADER 
                                Uch;                                            // ------ / 0x01F8; ------ / 0x0008 Bytes
        };
#endif                                                                          // #if defined(_M_X64)
    };
#if defined(_M_X64)
    PVOID                       Spare21;                                        // ------ / 0x0200; ------ / 0x0008 Bytes
    LIST_ENTRY QueueListEntry;                                                  // ------ / 0x0208; ------ / 0x0010 Bytes
#else                                                                           // #if defined(_M_X64)
    PKSCB                       QueuedScb;                                      // 0x033C / ------; 0x0004 / ------ Bytes
    UINT64                      NpxState;                                       // 0x0340 / ------; 0x0008 / ------ Bytes
    ULONG32                     ThreadTimerDelay;                               // 0x0348 / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
    union                                                                       // 2 / 2 elements; 0x0004 / 0x0004 Bytes
    {
#if defined(_M_X64)
        ULONG32                 NextProcessor;                                  // ------ / 0x0218; ------ / 0x0004 Bytes
#else                                                                           // #if defined(_M_X64)
        LONG32                  ThreadFlags2;                                   // 0x034C / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
        struct                                                                  // 2 / 2 elements; 0x0004 / 0x0004 Bytes
        {
#if defined(_M_X64)
            ULONG32             NextProcessorNumber                        :31; // ------ / 0x0218; Bits:  0 - 30
            ULONG32             SharedReadyQueue                           : 1; // ------ / 0x0218; Bit:  31
#else                                                                           // #if defined(_M_X64)
            ULONG32             PpmPolicy                                  : 2; // 0x034C / ------; Bits:  0 -  1
            ULONG32             ThreadFlags2Reserved                       :30; // 0x034C / ------; Bits:  2 - 31
#endif                                                                          // #if defined(_M_X64)
        };
    };
#if defined(_M_X64)
    LONG32                      QueuePriority;                                  // ------ / 0x021C; ------ / 0x0004 Bytes
    PKPROCESS                   Process;                                        // ------ / 0x0220; ------ / 0x0008 Bytes
    union                                                                       // ------ / 0x0228; - / 2 elements; ------ / 0x0010 Bytes
    {
        GROUP_AFFINITY UserAffinity;                                            // ------ / 0x0228; ------ / 0x0010 Bytes
        struct                                                                  // ------ / 0x0228; - / 7 elements; ------ / 0x0010 Bytes
        {
            UINT8               UserAffinityFill[10];                           // ------ / 0x0228; ------ / 0x000A Bytes
            CHAR                PreviousMode;                                   // ------ / 0x0232; ------ / 0x0001 Bytes
            CHAR                BasePriority;                                   // ------ / 0x0233; ------ / 0x0001 Bytes
            union                                                               // ------ / 0x0234; - / 2 elements; ------ / 0x0001 Bytes
            {
                CHAR            PriorityDecrement;                              // ------ / 0x0234; ------ / 0x0001 Bytes
                struct                                                          // ------ / 0x0234; - / 2 elements; ------ / 0x0001 Bytes
                {
                    UINT8       ForegroundBoost                            : 4; // ------ / 0x0234; Bits:  0 -  3
                    UINT8       UnusualBoost                               : 4; // ------ / 0x0234; Bits:  4 -  7
                };
            };
            UINT8               Preempted;                                      // ------ / 0x0235; ------ / 0x0001 Bytes
            UINT8               AdjustReason;                                   // ------ / 0x0236; ------ / 0x0001 Bytes
            CHAR                AdjustIncrement;                                // ------ / 0x0237; ------ / 0x0001 Bytes
        };
    };
    UINT64                      AffinityVersion;                                // ------ / 0x0238; ------ / 0x0008 Bytes
    union                                                                       // ------ / 0x0240; - / 2 elements; ------ / 0x0010 Bytes
    {
        GROUP_AFFINITY Affinity;                                                // ------ / 0x0240; ------ / 0x0010 Bytes
        struct                                                                  // ------ / 0x0240; - / 4 elements; ------ / 0x0010 Bytes
        {
            UINT8               AffinityFill[10];                               // ------ / 0x0240; ------ / 0x000A Bytes
            UINT8               ApcStateIndex;                                  // ------ / 0x024A; ------ / 0x0001 Bytes
            UINT8               WaitBlockCount;                                 // ------ / 0x024B; ------ / 0x0001 Bytes
            ULONG32             IdealProcessor;                                 // ------ / 0x024C; ------ / 0x0004 Bytes
        };
    };
    UINT64                      NpxState;                                       // ------ / 0x0250; ------ / 0x0008 Bytes
    union                                                                       // ------ / 0x0258; - / 2 elements; ------ / 0x0030 Bytes
    {
        KAPC_STATE SavedApcState;                                               // ------ / 0x0258; ------ / 0x0030 Bytes
        struct                                                                  // ------ / 0x0258; - / 5 elements; ------ / 0x0030 Bytes
        {
            UINT8               SavedApcStateFill[43];                          // ------ / 0x0258; ------ / 0x002B Bytes
            UINT8               WaitReason;                                     // ------ / 0x0283; ------ / 0x0001 Bytes
            CHAR                SuspendCount;                                   // ------ / 0x0284; ------ / 0x0001 Bytes
            CHAR                Saturation;                                     // ------ / 0x0285; ------ / 0x0001 Bytes
            UINT16              SListFaultCount;                                // ------ / 0x0286; ------ / 0x0002 Bytes
        };
    };
    union                                                                       // ------ / 0x0288; - / 7 elements; ------ / 0x0058 Bytes
    {
        KAPC SchedulerApc;                                                      // ------ / 0x0288; ------ / 0x0058 Bytes
        struct                                                                  // ------ / 0x0288; - / 2 elements; ------ / 0x0002 Bytes
        {
            UINT8               SchedulerApcFill0[1];                           // ------ / 0x0288; ------ / 0x0001 Bytes
            UINT8               ResourceIndex;                                  // ------ / 0x0289; ------ / 0x0001 Bytes
        };
        struct                                                                  // ------ / 0x0288; - / 2 elements; ------ / 0x0004 Bytes
        {
            UINT8               SchedulerApcFill1[3];                           // ------ / 0x0288; ------ / 0x0003 Bytes
            UINT8               QuantumReset;                                   // ------ / 0x028B; ------ / 0x0001 Bytes
        };
        struct                                                                  // ------ / 0x0288; - / 2 elements; ------ / 0x0008 Bytes
        {
            UINT8               SchedulerApcFill2[4];                           // ------ / 0x0288; ------ / 0x0004 Bytes
            ULONG32             KernelTime;                                     // ------ / 0x028C; ------ / 0x0004 Bytes
        };
        struct                                                                  // ------ / 0x0288; - / 2 elements; ------ / 0x0048 Bytes
        {
            UINT8               SchedulerApcFill3[64];                          // ------ / 0x0288; ------ / 0x0040 Bytes
            PKPRCB              WaitPrcb;                                       // ------ / 0x02C8; ------ / 0x0008 Bytes
        };
        struct                                                                  // ------ / 0x0288; - / 2 elements; ------ / 0x0050 Bytes
        {
            UINT8               SchedulerApcFill4[72];                          // ------ / 0x0288; ------ / 0x0048 Bytes
            PVOID               LegoData;                                       // ------ / 0x02D0; ------ / 0x0008 Bytes
        };
        struct                                                                  // ------ / 0x0288; - / 3 elements; ------ / 0x0058 Bytes
        {
            UINT8               SchedulerApcFill5[83];                          // ------ / 0x0288; ------ / 0x0053 Bytes
            UINT8               CallbackNestingLevel;                           // ------ / 0x02DB; ------ / 0x0001 Bytes
            ULONG32             UserTime;                                       // ------ / 0x02DC; ------ / 0x0004 Bytes
        };
    };
    KEVENT SuspendEvent;                                                        // ------ / 0x02E0; ------ / 0x0018 Bytes
    LIST_ENTRY ThreadListEntry;                                                 // ------ / 0x02F8; ------ / 0x0010 Bytes
    LIST_ENTRY MutantListHead;                                                  // ------ / 0x0308; ------ / 0x0010 Bytes
    UINT8                       AbEntrySummary;                                 // ------ / 0x0318; ------ / 0x0001 Bytes
    UINT8                       AbWaitEntryCount;                               // ------ / 0x0319; ------ / 0x0001 Bytes
    UINT8                       AbAllocationRegionCount;                        // ------ / 0x031A; ------ / 0x0001 Bytes
    CHAR                        SystemPriority;                                 // ------ / 0x031B; ------ / 0x0001 Bytes
    ULONG32                     SecureThreadCookie;                             // ------ / 0x031C; ------ / 0x0004 Bytes
    KLOCK_ENTRY                 LockEntries[6];                                 // ------ / 0x0320; ------ / 0x0240 Bytes
    SINGLE_LIST_ENTRY PropagateBoostsEntry;                                     // ------ / 0x0560; ------ / 0x0008 Bytes
    SINGLE_LIST_ENTRY IoSelfBoostsEntry;                                        // ------ / 0x0568; ------ / 0x0008 Bytes
    UINT8                       PriorityFloorCounts[16];                        // ------ / 0x0570; ------ / 0x0010 Bytes
    ULONG32                     PriorityFloorSummary;                           // ------ / 0x0580; ------ / 0x0004 Bytes
    LONG32                      AbCompletedIoBoostCount;                        // ------ / 0x0584; ------ / 0x0004 Bytes
    LONG32                      AbCompletedIoQoSBoostCount;                     // ------ / 0x0588; ------ / 0x0004 Bytes
    INT16                       KeReferenceCount;                               // ------ / 0x058C; ------ / 0x0002 Bytes
    UINT8                       AbOrphanedEntrySummary;                         // ------ / 0x058E; ------ / 0x0001 Bytes
    UINT8                       AbOwnedEntryCount;                              // ------ / 0x058F; ------ / 0x0001 Bytes
    ULONG32                     ForegroundLossTime;                             // ------ / 0x0590; ------ / 0x0004 Bytes
    UINT8                       _PADDING0_[4];                                  // ------ / 0x0594; ------ / 0x0004 Bytes
    union                                                                       // ------ / 0x0598; - / 2 elements; ------ / 0x0010 Bytes
    {
        LIST_ENTRY GlobalForegroundListEntry;                                   // ------ / 0x0598; ------ / 0x0010 Bytes
        struct                                                                  // ------ / 0x0598; - / 2 elements; ------ / 0x0010 Bytes
        {
            SINGLE_LIST_ENTRY ForegroundDpcStackListEntry;                      // ------ / 0x0598; ------ / 0x0008 Bytes
            UINT64              InGlobalForegroundList;                         // ------ / 0x05A0; ------ / 0x0008 Bytes
        };
    };
    INT64                       ReadOperationCount;                             // ------ / 0x05A8; ------ / 0x0008 Bytes
    INT64                       WriteOperationCount;                            // ------ / 0x05B0; ------ / 0x0008 Bytes
    INT64                       OtherOperationCount;                            // ------ / 0x05B8; ------ / 0x0008 Bytes
    INT64                       ReadTransferCount;                              // ------ / 0x05C0; ------ / 0x0008 Bytes
    INT64                       WriteTransferCount;                             // ------ / 0x05C8; ------ / 0x0008 Bytes
    INT64                       OtherTransferCount;                             // ------ / 0x05D0; ------ / 0x0008 Bytes
    PKSCB                       QueuedScb;                                      // ------ / 0x05D8; ------ / 0x0008 Bytes
    ULONG32                     ThreadTimerDelay;                               // ------ / 0x05E0; ------ / 0x0004 Bytes
    union                                                                       // ------ / 0x05E4; - / 2 elements; ------ / 0x0004 Bytes
    {
        LONG32                  ThreadFlags2;                                   // ------ / 0x05E4; ------ / 0x0004 Bytes
        struct                                                                  // ------ / 0x05E4; - / 2 elements; ------ / 0x0004 Bytes
        {
            ULONG32             PpmPolicy                                  : 2; // ------ / 0x05E4; Bits:  0 -  1
            ULONG32             ThreadFlags2Reserved                       :30; // ------ / 0x05E4; Bits:  2 - 31
        };
    };
    PVOID                       SchedulerAssist;                                // ------ / 0x05E8; ------ / 0x0008 Bytes
#endif                                                                          // #if defined(_M_X64)
} KTHREAD, * PKTHREAD;

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