CONSTANT(CONTEXT_FULL),
CONSTANT(CONTEXT_CONTROL),
CONSTANT(CONTEXT_INTEGER),
+#ifndef _M_ARM
CONSTANT(CONTEXT_SEGMENTS),
CONSTANT(CONTEXT_FLOATING_POINT),
CONSTANT(CONTEXT_DEBUG_REGISTERS),
+#endif
HEADER("Exception flags"),
CONSTANT(EXCEPTION_NONCONTINUABLE),
CONSTANT(FALSE),
CONSTANT(TRUE),
CONSTANT(DBG_STATUS_CONTROL_C),
-CONSTANTPTR(USER_SHARED_DATA),
+//CONSTANTPTR(USER_SHARED_DATA), // FIXME: we need the kernel mode address here!
//CONSTANT(MM_SHARED_USER_DATA_VA),
CONSTANT(PAGE_SIZE),
//CONSTANT(KERNEL_STACK_CONTROL_LARGE_STACK),
//CONSTANT(KI_DPC_ALL_FLAGS),
//CONSTANT(DISPATCH_LENGTH),
-CONSTANT(MAXIMUM_IDTVECTOR),
//CONSTANT(MAXIMUM_PRIMARY_VECTOR),
-CONSTANT(PRIMARY_VECTOR_BASE),
-CONSTANT(RPL_MASK),
-CONSTANT(MODE_MASK),
//CONSTANT(KTHREAD_AUTO_ALIGNMENT_BIT),
//CONSTANT(KTHREAD_GUI_THREAD_MASK),
//CONSTANT(KI_SLIST_FAULT_COUNT_MAXIMUM),
+#ifndef _M_ARM
+CONSTANT(MAXIMUM_IDTVECTOR),
+CONSTANT(PRIMARY_VECTOR_BASE),
+CONSTANT(RPL_MASK),
+CONSTANT(MODE_MASK),
CONSTANT(NUMBER_SERVICE_TABLES),
CONSTANT(SERVICE_NUMBER_MASK),
CONSTANT(SERVICE_TABLE_SHIFT),
CONSTANT(SERVICE_TABLE_MASK),
CONSTANT(SERVICE_TABLE_TEST),
+#endif
OFFSET(TfMilliseconds, TIME_FIELDS, Milliseconds),
HEADER("KTHREAD"),
-OFFSET(ThType, KTHREAD, DispatcherHeader.Type),
+OFFSET(ThType, KTHREAD, Header.Type),
//OFFSET(ThNpxIrql, KTHREAD, NpxIrql),
-OFFSET(ThSize, KTHREAD, DispatcherHeader.Size),
-OFFSET(ThLock, KTHREAD, DispatcherHeader.Lock),
-OFFSET(ThDebugActive, KTHREAD, DispatcherHeader.DebugActive),
+OFFSET(ThSize, KTHREAD, Header.Size),
+OFFSET(ThLock, KTHREAD, Header.Lock),
+OFFSET(ThDebugActive, KTHREAD, Header.DebugActive),
//OFFSET(ThThreadControlFlags, KTHREAD, DispatcherHeader.ThreadControlFlags),
-OFFSET(ThSignalState, KTHREAD, DispatcherHeader.SignalState),
+OFFSET(ThSignalState, KTHREAD, Header.SignalState),
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
OFFSET(ThCycleTime, KTHREAD, CycleTime),
OFFSET(ThHighCycleTime, KTHREAD, HighCycleTime),