1 /* Version definitions */
3 #define NTDDI_VERSION NTDDI_WIN7
5 #define _WIN32_WINNT _WIN32_WINNT_WIN7
10 #define C_ASSERT_FIELD(Type, Offset, MemberType, MemberName) C_ASSERT(FIELD_OFFSET(Type, MemberName) == Offset);
13 C_ASSERT_FIELD(KTHREAD
, 0x000, DISPATCHER_HEADER
, Header
)
14 C_ASSERT_FIELD(KTHREAD
, 0x010, ULONG64
, CycleTime
)
15 C_ASSERT_FIELD(KTHREAD
, 0x018, ULONG
, HighCycleTime
)
16 C_ASSERT_FIELD(KTHREAD
, 0x020, ULONG64
, QuantumTarget
)
17 C_ASSERT_FIELD(KTHREAD
, 0x028, PVOID
, InitialStack
)
18 C_ASSERT_FIELD(KTHREAD
, 0x02C, PVOID
, StackLimit
)
19 C_ASSERT_FIELD(KTHREAD
, 0x030, PVOID
, KernelStack
)
20 C_ASSERT_FIELD(KTHREAD
, 0x034, ULONG
, ThreadLock
)
21 C_ASSERT_FIELD(KTHREAD
, 0x038, KWAIT_STATUS_REGISTER
, WaitRegister
)
22 C_ASSERT_FIELD(KTHREAD
, 0x039, UCHAR
, Running
)
23 C_ASSERT_FIELD(KTHREAD
, 0x03A, UCHAR
, Alerted
)
24 C_ASSERT_FIELD(KTHREAD
, 0x03C, LONG
, MiscFlags
)
25 C_ASSERT_FIELD(KTHREAD
, 0x040, KAPC_STATE
, ApcState
)
26 C_ASSERT_FIELD(KTHREAD
, 0x040, UCHAR
, ApcStateFill
)
27 C_ASSERT_FIELD(KTHREAD
, 0x057, CHAR
, Priority
)
28 C_ASSERT_FIELD(KTHREAD
, 0x058, ULONG
, NextProcessor
)
29 C_ASSERT_FIELD(KTHREAD
, 0x05C, ULONG
, DeferredProcessor
)
30 C_ASSERT_FIELD(KTHREAD
, 0x060, ULONG
, ApcQueueLock
)
31 C_ASSERT_FIELD(KTHREAD
, 0x064, ULONG
, ContextSwitches
)
32 C_ASSERT_FIELD(KTHREAD
, 0x068, UCHAR
, State
)
33 C_ASSERT_FIELD(KTHREAD
, 0x069, CHAR
, NpxState
)
34 C_ASSERT_FIELD(KTHREAD
, 0x06A, UCHAR
, WaitIrql
)
35 C_ASSERT_FIELD(KTHREAD
, 0x06B, CHAR
, WaitMode
)
36 C_ASSERT_FIELD(KTHREAD
, 0x06C, LONG
, WaitStatus
)
37 C_ASSERT_FIELD(KTHREAD
, 0x070, KWAIT_BLOCK
*, WaitBlockList
)
38 C_ASSERT_FIELD(KTHREAD
, 0x074, LIST_ENTRY
, WaitListEntry
)
39 C_ASSERT_FIELD(KTHREAD
, 0x074, SINGLE_LIST_ENTRY
, SwapListEntry
)
40 C_ASSERT_FIELD(KTHREAD
, 0x07C, KQUEUE
*, Queue
)
41 C_ASSERT_FIELD(KTHREAD
, 0x080, ULONG
, WaitTime
)
42 C_ASSERT_FIELD(KTHREAD
, 0x084, SHORT
, KernelApcDisable
)
43 C_ASSERT_FIELD(KTHREAD
, 0x086, SHORT
, SpecialApcDisable
)
44 C_ASSERT_FIELD(KTHREAD
, 0x084, ULONG
, CombinedApcDisable
)
45 C_ASSERT_FIELD(KTHREAD
, 0x088, PVOID
, Teb
)
46 C_ASSERT_FIELD(KTHREAD
, 0x090, KTIMER
, Timer
)
47 C_ASSERT_FIELD(KTHREAD
, 0x0B8, LONG
, ThreadFlags
)
48 C_ASSERT_FIELD(KTHREAD
, 0x0BC, PVOID
, ServiceTable
)
49 C_ASSERT_FIELD(KTHREAD
, 0x0C0, KWAIT_BLOCK
, WaitBlock
)
50 C_ASSERT_FIELD(KTHREAD
, 0x120, LIST_ENTRY
, QueueListEntry
)
51 C_ASSERT_FIELD(KTHREAD
, 0x128, KTRAP_FRAME
*, TrapFrame
)
52 C_ASSERT_FIELD(KTHREAD
, 0x12C, PVOID
, FirstArgument
)
53 C_ASSERT_FIELD(KTHREAD
, 0x130, PVOID
, CallbackStack
)
54 C_ASSERT_FIELD(KTHREAD
, 0x130, ULONG
, CallbackDepth
)
55 C_ASSERT_FIELD(KTHREAD
, 0x134, UCHAR
, ApcStateIndex
)
56 C_ASSERT_FIELD(KTHREAD
, 0x135, CHAR
, BasePriority
)
57 C_ASSERT_FIELD(KTHREAD
, 0x136, CHAR
, PriorityDecrement
)
58 C_ASSERT_FIELD(KTHREAD
, 0x137, UCHAR
, Preempted
)
59 C_ASSERT_FIELD(KTHREAD
, 0x138, UCHAR
, AdjustReason
)
60 C_ASSERT_FIELD(KTHREAD
, 0x139, CHAR
, AdjustIncrement
)
61 C_ASSERT_FIELD(KTHREAD
, 0x13A, CHAR
, PreviousMode
)
62 C_ASSERT_FIELD(KTHREAD
, 0x13B, CHAR
, Saturation
)
63 C_ASSERT_FIELD(KTHREAD
, 0x13C, ULONG
, SystemCallNumber
)
64 C_ASSERT_FIELD(KTHREAD
, 0x140, ULONG
, FreezeCount
)
65 C_ASSERT_FIELD(KTHREAD
, 0x144, GROUP_AFFINITY
, UserAffinity
)
66 C_ASSERT_FIELD(KTHREAD
, 0x150, KPROCESS
*, Process
)
67 C_ASSERT_FIELD(KTHREAD
, 0x154, GROUP_AFFINITY
, Affinity
)
68 C_ASSERT_FIELD(KTHREAD
, 0x160, ULONG
, IdealProcessor
)
69 C_ASSERT_FIELD(KTHREAD
, 0x164, ULONG
, UserIdealProcessor
)
70 C_ASSERT_FIELD(KTHREAD
, 0x168, KAPC_STATE
*, ApcStatePointer
)
71 C_ASSERT_FIELD(KTHREAD
, 0x170, KAPC_STATE
, SavedApcState
)
72 C_ASSERT_FIELD(KTHREAD
, 0x170, UCHAR
, SavedApcStateFill
)
73 C_ASSERT_FIELD(KTHREAD
, 0x187, UCHAR
, WaitReason
)
74 C_ASSERT_FIELD(KTHREAD
, 0x188, CHAR
, SuspendCount
)
75 C_ASSERT_FIELD(KTHREAD
, 0x189, CHAR
, Spare1
)
76 C_ASSERT_FIELD(KTHREAD
, 0x18A, UCHAR
, OtherPlatformFill
)
77 C_ASSERT_FIELD(KTHREAD
, 0x18C, PVOID
, Win32Thread
)
78 C_ASSERT_FIELD(KTHREAD
, 0x190, PVOID
, StackBase
)
79 C_ASSERT_FIELD(KTHREAD
, 0x194, KAPC
, SuspendApc
)
80 C_ASSERT_FIELD(KTHREAD
, 0x194, UCHAR
, SuspendApcFill0
)
81 C_ASSERT_FIELD(KTHREAD
, 0x195, UCHAR
, ResourceIndex
)
82 C_ASSERT_FIELD(KTHREAD
, 0x194, UCHAR
, SuspendApcFill1
)
83 C_ASSERT_FIELD(KTHREAD
, 0x197, UCHAR
, QuantumReset
)
84 C_ASSERT_FIELD(KTHREAD
, 0x194, UCHAR
, SuspendApcFill2
)
85 C_ASSERT_FIELD(KTHREAD
, 0x198, ULONG
, KernelTime
)
86 C_ASSERT_FIELD(KTHREAD
, 0x194, UCHAR
, SuspendApcFill3
)
87 C_ASSERT_FIELD(KTHREAD
, 0x1B8, KPRCB
*, WaitPrcb
)
88 C_ASSERT_FIELD(KTHREAD
, 0x194, UCHAR
, SuspendApcFill4
)
89 C_ASSERT_FIELD(KTHREAD
, 0x1BC, PVOID
, LegoData
)
90 C_ASSERT_FIELD(KTHREAD
, 0x194, UCHAR
, SuspendApcFill5
)
91 C_ASSERT_FIELD(KTHREAD
, 0x1C3, UCHAR
, LargeStack
)
92 C_ASSERT_FIELD(KTHREAD
, 0x1C4, ULONG
, UserTime
)
93 C_ASSERT_FIELD(KTHREAD
, 0x1C8, KSEMAPHORE
, SuspendSemaphore
)
94 C_ASSERT_FIELD(KTHREAD
, 0x1C8, UCHAR
, SuspendSemaphorefill
)
95 C_ASSERT_FIELD(KTHREAD
, 0x1DC, ULONG
, SListFaultCount
)
96 C_ASSERT_FIELD(KTHREAD
, 0x1E0, LIST_ENTRY
, ThreadListEntry
)
97 C_ASSERT_FIELD(KTHREAD
, 0x1E8, LIST_ENTRY
, MutantListHead
)
98 C_ASSERT_FIELD(KTHREAD
, 0x1F0, PVOID
, SListFaultAddress
)
99 C_ASSERT_FIELD(KTHREAD
, 0x1F4, KTHREAD_COUNTERS
*, ThreadCounters
)
100 C_ASSERT_FIELD(KTHREAD
, 0x1F8, XSTATE_SAVE
*, XStateSave
)