x64x86arm64ia64 / ntdllntoskrnl

_KTHREAD

← first 1 build latest →
struct _KTHREAD {
void* SListFaultAddress;/* 0x18 8 */
unsigned __int64 QuantumTarget;/* 0x20 8 */
void* InitialStack;/* 0x28 8 */
void* StackLimit;/* 0x30 8 */
void* StackBase;/* 0x38 8 */
/* ── cacheline 1 boundary (64 bytes) ── */
unsigned __int64 ThreadLock;/* 0x40 8 */
volatile unsigned __int64 CycleTime;/* 0x48 8 */
unsigned long CurrentRunTime;/* 0x50 4 */
unsigned long ExpectedRunTime;/* 0x54 4 */
void* KernelStack;/* 0x58 8 */
volatile unsigned char Running;/* 0x69 1 */
unsigned char Alerted[2];/* 0x6a 2 */
union {
struct {
unsigned long AutoBoostActive : 1;/* 0x6c:0 4 */
unsigned long ReadyTransition : 1;/* 0x6c:1 4 */
unsigned long WaitNext : 1;/* 0x6c:2 4 */
unsigned long SystemAffinityActive : 1;/* 0x6c:3 4 */
unsigned long Alertable : 1;/* 0x6c:4 4 */
unsigned long Reserved1 : 1;/* 0x6c:5 4 */
unsigned long ApcInterruptRequest : 1;/* 0x6c:6 4 */
unsigned long QuantumEndMigrate : 1;/* 0x6c:7 4 */
unsigned long SecureThread : 1;/* 0x6c:8 4 */
unsigned long TimerActive : 1;/* 0x6c:9 4 */
unsigned long SystemThread : 1;/* 0x6c:10 4 */
unsigned long ProcessDetachActive : 1;/* 0x6c:11 4 */
unsigned long Reserved2 : 1;/* 0x6c:12 4 */
unsigned long ScbReadyQueue : 1;/* 0x6c:13 4 */
unsigned long ApcQueueable : 1;/* 0x6c:14 4 */
unsigned long Reserved3 : 1;/* 0x6c:15 4 */
unsigned long WaitNextClearWobPriorityFloor : 1;/* 0x6c:16 4 */
unsigned long TimerSuspended : 1;/* 0x6c:17 4 */
unsigned long SuspendedWaitMode : 1;/* 0x6c:18 4 */
unsigned long SuspendSchedulerApcWait : 1;/* 0x6c:19 4 */
unsigned long CetUserShadowStack : 1;/* 0x6c:20 4 */
unsigned long BypassProcessFreeze : 1;/* 0x6c:21 4 */
unsigned long CetKernelShadowStack : 1;/* 0x6c:22 4 */
unsigned long StateSaveAreaDecoupled : 1;/* 0x6c:23 4 */
unsigned long Reserved : 8;/* 0x6c:24 4 */
};/* 0x6c 4 */
long MiscFlags;/* 0x6c 4 */
};/* 0x6c 4 */
union {
struct {
unsigned long UserIdealProcessorFixed : 1;/* 0x70:0 4 */
unsigned long IsolationWidth : 1;/* 0x70:1 4 */
unsigned long AutoAlignment : 1;/* 0x70:2 4 */
unsigned long DisableBoost : 1;/* 0x70:3 4 */
unsigned long AlertedByThreadId : 1;/* 0x70:4 4 */
unsigned long QuantumDonation : 1;/* 0x70:5 4 */
unsigned long EnableStackSwap : 1;/* 0x70:6 4 */
unsigned long GuiThread : 1;/* 0x70:7 4 */
unsigned long DisableQuantum : 1;/* 0x70:8 4 */
unsigned long ChargeOnlySchedulingGroup : 1;/* 0x70:9 4 */
unsigned long DeferPreemption : 1;/* 0x70:10 4 */
unsigned long QueueDeferPreemption : 1;/* 0x70:11 4 */
unsigned long ForceDeferSchedule : 1;/* 0x70:12 4 */
unsigned long SharedReadyQueueAffinity : 1;/* 0x70:13 4 */
unsigned long FreezeCount : 1;/* 0x70:14 4 */
unsigned long TerminationApcRequest : 1;/* 0x70:15 4 */
unsigned long AutoBoostEntriesExhausted : 1;/* 0x70:16 4 */
unsigned long KernelStackResident : 1;/* 0x70:17 4 */
unsigned long TerminateRequestReason : 2;/* 0x70:18 4 */
unsigned long ProcessStackCountDecremented : 1;/* 0x70:20 4 */
unsigned long RestrictedGuiThread : 1;/* 0x70:21 4 */
unsigned long VpBackingThread : 1;/* 0x70:22 4 */
unsigned long EtwStackTraceCrimsonApcDisabled : 1;/* 0x70:23 4 */
unsigned long EtwStackTraceApcInserted : 8;/* 0x70:24 4 */
};/* 0x70 4 */
volatile long ThreadFlags;/* 0x70 4 */
};/* 0x70 4 */
volatile unsigned char Tag;/* 0x74 1 */
union {
struct {
unsigned char CalloutActive : 1;/* 0x75:0 1 */
unsigned char ReservedStackInUse : 1;/* 0x75:1 1 */
unsigned char UserStackWalkActive : 1;/* 0x75:2 1 */
unsigned char SameThreadTransientFlagsReserved : 5;/* 0x75:3 1 */
};/* 0x75 1 */
char SameThreadTransientFlags;/* 0x75 1 */
};/* 0x75 1 */
unsigned char Spare0;/* 0x76 1 */
/* 1 byte padding */
unsigned long SystemCallNumber;/* 0x78 4 */
unsigned long ReadyTime;/* 0x7c 4 */
/* ── cacheline 2 boundary (128 bytes) ── */
void* FirstArgument;/* 0x80 8 */
union {
struct {
unsigned char ApcStateFill[43];/* 0x90 43 */
char Priority;/* 0xbb 1 */
unsigned long UserIdealProcessor;/* 0xbc 4 */
};/* 0x90 48 */
};/* 0x90 48 */
/* ── cacheline 3 boundary (192 bytes) ── */
volatile __int64 WaitStatus;/* 0xc0 8 */
union {
};/* 0xd0 16 */
void* Teb;/* 0xe8 8 */
unsigned __int64 RelativeTimerBias;/* 0xf0 8 */
/* ── cacheline 4 boundary (256 bytes) ── */
union {
struct {
unsigned char WaitBlockFill4[20];/* 0x138 20 */
unsigned long ContextSwitches;/* 0x14c 4 */
};/* 0x138 24 */
struct {
unsigned char WaitBlockFill5[68];/* 0x138 68 */
volatile unsigned char State;/* 0x17c 1 */
char Spare13;/* 0x17d 1 */
unsigned char WaitIrql;/* 0x17e 1 */
char WaitMode;/* 0x17f 1 */
};/* 0x138 72 */
struct {
unsigned char WaitBlockFill6[116];/* 0x138 116 */
unsigned long WaitTime;/* 0x1ac 4 */
};/* 0x138 120 */
struct {
unsigned char WaitBlockFill7[164];/* 0x138 164 */
union {
struct {
short KernelApcDisable;/* 0x1dc 2 */
short SpecialApcDisable;/* 0x1de 2 */
};/* 0x1dc 4 */
unsigned long CombinedApcDisable;/* 0x1dc 4 */
};/* 0x1dc 4 */
};/* 0x138 168 */
struct {
unsigned char WaitBlockFill8[40];/* 0x138 40 */
};/* 0x138 48 */
struct {
unsigned char WaitBlockFill9[88];/* 0x138 88 */
};/* 0x138 96 */
struct {
unsigned char WaitBlockFill10[136];/* 0x138 136 */
void* Win32Thread;/* 0x1c0 8 */
};/* 0x138 144 */
struct {
unsigned char WaitBlockFill11[176];/* 0x138 176 */
unsigned __int64 Spare19;/* 0x1f0 8 */
};/* 0x138 192 */
};/* 0x138 192 */
/* ── cacheline 7 boundary (448 bytes) ── */
union {
volatile long ThreadFlags2;/* 0x1f8 4 */
struct {
unsigned long DisableKasan : 1;/* 0x1f8:0 4 */
unsigned long AbContextSwitchState : 1;/* 0x1f8:1 4 */
unsigned long ThreadFlags2Reserved : 30;/* 0x1f8:2 4 */
};/* 0x1f8 4 */
};/* 0x1f8 4 */
volatile unsigned char BamQosLevel;/* 0x1fc 1 */
unsigned char HardwareFeedbackClass;/* 0x1fd 1 */
unsigned char Spare23[2];/* 0x1fe 2 */
/* ── cacheline 8 boundary (512 bytes) ── */
union {
volatile unsigned long NextProcessor;/* 0x238 4 */
struct {
unsigned long NextProcessorNumber : 31;/* 0x238:0 4 */
unsigned long SharedReadyQueue : 1;/* 0x238:31 4 */
};/* 0x238 4 */
};/* 0x238 4 */
long QueuePriority;/* 0x23c 4 */
/* ── cacheline 9 boundary (576 bytes) ── */
unsigned short UserAffinityPrimaryGroup;/* 0x250 2 */
char PreviousMode;/* 0x252 1 */
char BasePriority;/* 0x253 1 */
union {
char PriorityDecrement;/* 0x254 1 */
struct {
unsigned char ForegroundBoost : 4;/* 0x254:0 1 */
unsigned char UnusualBoost : 4;/* 0x254:4 1 */
};/* 0x254 1 */
};/* 0x254 1 */
unsigned char Preempted;/* 0x255 1 */
unsigned char AdjustReason;/* 0x256 1 */
char AdjustIncrement;/* 0x257 1 */
unsigned __int64 AffinityVersion;/* 0x258 8 */
unsigned short AffinityPrimaryGroup;/* 0x268 2 */
unsigned char ApcStateIndex;/* 0x26a 1 */
unsigned char WaitBlockCount;/* 0x26b 1 */
unsigned long IdealProcessor;/* 0x26c 4 */
unsigned __int64 NpxState;/* 0x270 8 */
union {
struct {
unsigned char SavedApcStateFill[43];/* 0x278 43 */
unsigned char WaitReason;/* 0x2a3 1 */
char SuspendCount;/* 0x2a4 1 */
char Saturation;/* 0x2a5 1 */
unsigned short SListFaultCount;/* 0x2a6 2 */
};/* 0x278 48 */
};/* 0x278 48 */
/* ── cacheline 10 boundary (640 bytes) ── */
union {
struct {
unsigned char SchedulerApcFill1[3];/* 0x2a8 3 */
unsigned char QuantumReset;/* 0x2ab 1 */
};/* 0x2a8 4 */
struct {
unsigned char SchedulerApcFill2[4];/* 0x2a8 4 */
unsigned long KernelTime;/* 0x2ac 4 */
};/* 0x2a8 8 */
struct {
unsigned char SchedulerApcFill3[64];/* 0x2a8 64 */
};/* 0x2a8 72 */
struct {
unsigned char SchedulerApcFill4[72];/* 0x2a8 72 */
void* LegoData;/* 0x2f0 8 */
};/* 0x2a8 80 */
struct {
unsigned char SchedulerApcFill5[83];/* 0x2a8 83 */
unsigned char CallbackNestingLevel;/* 0x2fb 1 */
unsigned long UserTime;/* 0x2fc 4 */
};/* 0x2a8 88 */
};/* 0x2a8 88 */
/* ── cacheline 12 boundary (768 bytes) ── */
union {
struct {
volatile unsigned char AbWaitEntryCount;/* 0x338 1 */
volatile unsigned char AbOwnedEntryCount;/* 0x339 1 */
};/* 0x338 2 */
volatile unsigned short AbEntryCountValue;/* 0x338 2 */
};/* 0x338 2 */
union {
unsigned char FreezeFlags;/* 0x33a 1 */
struct {
unsigned char FreezeCount2 : 1;/* 0x33a:0 1 */
unsigned char FreezeNormal : 1;/* 0x33a:1 1 */
unsigned char FreezeDeep : 1;/* 0x33a:2 1 */
};/* 0x33a 1 */
};/* 0x33a 1 */
char WobPriority;/* 0x33b 1 */
unsigned long SecureThreadCookie;/* 0x33c 4 */
/* ── cacheline 13 boundary (832 bytes) ── */
void* SchedulerSharedSystemSlot;/* 0x340 8 */
unsigned char PriorityFloorCounts[32];/* 0x358 32 */
unsigned long PriorityFloorSummary;/* 0x378 4 */
volatile long AbCompletedIoBoostCount;/* 0x37c 4 */
/* ── cacheline 14 boundary (896 bytes) ── */
volatile long AbCompletedIoQoSBoostCount;/* 0x380 4 */
volatile short KeReferenceCount;/* 0x384 2 */
char DecayBoost;/* 0x386 1 */
unsigned char Spare6;/* 0x387 1 */
unsigned long ForegroundLossTime;/* 0x388 4 */
/* 4 bytes padding */
union {
struct {
unsigned __int64 InGlobalForegroundList;/* 0x398 8 */
};/* 0x390 16 */
};/* 0x390 16 */
__int64 ReadOperationCount;/* 0x3a0 8 */
__int64 WriteOperationCount;/* 0x3a8 8 */
__int64 OtherOperationCount;/* 0x3b0 8 */
__int64 ReadTransferCount;/* 0x3b8 8 */
/* ── cacheline 15 boundary (960 bytes) ── */
__int64 WriteTransferCount;/* 0x3c0 8 */
__int64 OtherTransferCount;/* 0x3c8 8 */
volatile unsigned long ThreadTimerDelay;/* 0x3d8 4 */
unsigned short Spare26;/* 0x3dc 2 */
volatile unsigned char PpmPolicy;/* 0x3de 1 */
unsigned char Spare27;/* 0x3df 1 */
unsigned __int64 TracingPrivate[1];/* 0x3e0 8 */
void* SchedulerAssist;/* 0x3e8 8 */
void* AbWaitObject;/* 0x3f0 8 */
unsigned long ReservedPreviousReadyTimeValue;/* 0x3f8 4 */
/* 4 bytes padding */
/* ── cacheline 16 boundary (1024 bytes) ── */
unsigned __int64 KernelWaitTime;/* 0x400 8 */
unsigned __int64 UserWaitTime;/* 0x408 8 */
union {
struct {
unsigned __int64 InGlobalUpdateVpThreadPriorityList;/* 0x418 8 */
};/* 0x410 16 */
};/* 0x410 16 */
long SchedulerAssistPriorityFloor;/* 0x420 4 */
long RealtimePriorityFloor;/* 0x424 4 */
unsigned long StateSaveAreaSveVectorOffset;/* 0x428 4 */
unsigned long StateSaveAreaSvePredicateOffset;/* 0x42c 4 */
unsigned __int64 Spare28[7];/* 0x430 56 */
/* ── cacheline 17 boundary (1088 bytes) ── */
unsigned long Spare29;/* 0x468 4 */
volatile unsigned long ModeHistory;/* 0x46c 4 */
/* ── cacheline 18 boundary (1152 bytes) ── */
unsigned char ResourceIndex;/* 0x480 1 */
volatile unsigned char CoreIsolationReasons;/* 0x481 1 */
unsigned char BamQosLevelFromAssistPage;/* 0x482 1 */
unsigned char SecureCallCoreIsolationCount;/* 0x483 1 */
unsigned long SchedulerSharedOffset;/* 0x484 4 */
};
size 1184 (0x4a0)225 members3 holes (9 bytes)padding 019 cachelines
Used in (5)