mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 10:01:43 +00:00
[NDK]
A number of fixes for Vista/Win7, now all C_ASSERTs pass svn path=/trunk/; revision=56314
This commit is contained in:
parent
dc1ac7bfa3
commit
372271d5bf
1 changed files with 85 additions and 17 deletions
|
@ -682,6 +682,42 @@ typedef struct _KEXECUTE_OPTIONS
|
|||
UCHAR Spare:2;
|
||||
} KEXECUTE_OPTIONS, *PKEXECUTE_OPTIONS;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
typedef union _KWAIT_STATUS_REGISTER
|
||||
{
|
||||
UCHAR Flags;
|
||||
struct
|
||||
{
|
||||
UCHAR State:2;
|
||||
UCHAR Affinity:1;
|
||||
UCHAR Priority:1;
|
||||
UCHAR Apc:1;
|
||||
UCHAR UserApc:1;
|
||||
UCHAR Alert:1;
|
||||
UCHAR Unused:1;
|
||||
};
|
||||
} KWAIT_STATUS_REGISTER, *PKWAIT_STATUS_REGISTER;
|
||||
|
||||
typedef struct _COUNTER_READING
|
||||
{
|
||||
enum _HARDWARE_COUNTER_TYPE Type;
|
||||
ULONG Index;
|
||||
ULONG64 Start;
|
||||
ULONG64 Total;
|
||||
}COUNTER_READING, *PCOUNTER_READING;
|
||||
|
||||
typedef struct _KTHREAD_COUNTERS
|
||||
{
|
||||
ULONG64 WaitReasonBitMap;
|
||||
struct _THREAD_PERFORMANCE_DATA* UserData;
|
||||
ULONG Flags;
|
||||
ULONG ContextSwitches;
|
||||
ULONG64 CycleTimeBias;
|
||||
ULONG64 HardwareCounters;
|
||||
COUNTER_READING HwCounter[16];
|
||||
}KTHREAD_COUNTERS, *PKTHREAD_COUNTERS;
|
||||
#endif
|
||||
|
||||
//
|
||||
// Kernel Thread (KTHREAD)
|
||||
//
|
||||
|
@ -735,15 +771,20 @@ typedef struct _KTHREAD
|
|||
UCHAR ApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1];
|
||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
|
||||
SCHAR Priority;
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7) // [
|
||||
/* On x86, the following members "fall out" of the union */
|
||||
volatile ULONG NextProcessor;
|
||||
volatile ULONG DeferredProcessor;
|
||||
#else // ][
|
||||
/* On x86, the following members "fall out" of the union */
|
||||
volatile USHORT NextProcessor;
|
||||
volatile USHORT DeferredProcessor;
|
||||
#endif // ]
|
||||
#else // ][
|
||||
UCHAR ApcQueueable;
|
||||
#endif // ]
|
||||
/* On x86, the following members "fall out" of the union */
|
||||
volatile UCHAR NextProcessor;
|
||||
#if (NTDDI_VERSION < NTDDI_WIN7) // [
|
||||
volatile UCHAR DeferredProcessor;
|
||||
#endif // ]
|
||||
#if (NTDDI_VERSION < NTDDI_LONGHORN) // [
|
||||
UCHAR AdjustReason;
|
||||
SCHAR AdjustIncrement;
|
||||
#endif // ]
|
||||
|
@ -787,8 +828,10 @@ typedef struct _KTHREAD
|
|||
BOOLEAN WaitNext;
|
||||
#endif // ]
|
||||
UCHAR WaitReason;
|
||||
#if (NTDDI_VERSION < NTDDI_LONGHORN)
|
||||
SCHAR Priority;
|
||||
BOOLEAN EnableStackSwap;
|
||||
#endif // ]
|
||||
volatile UCHAR SwapBusy;
|
||||
BOOLEAN Alerted[MaximumMode];
|
||||
#endif // ]
|
||||
|
@ -824,13 +867,14 @@ typedef struct _KTHREAD
|
|||
#if !defined(_WIN64) // [
|
||||
};
|
||||
};
|
||||
#endif // ]
|
||||
#endif // ]
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
LONG AutoAlignment:1;
|
||||
LONG DisableBoost:1;
|
||||
ULONG AutoAlignment:1;
|
||||
ULONG DisableBoost:1;
|
||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
|
||||
ULONG EtwStackTraceApc1Inserted:1;
|
||||
ULONG EtwStackTraceApc2Inserted:1;
|
||||
|
@ -846,10 +890,16 @@ typedef struct _KTHREAD
|
|||
};
|
||||
LONG ThreadFlags;
|
||||
};
|
||||
#if defined(_WIN64) // [
|
||||
#if defined(_WIN64) && (NTDDI_VERSION < NTDDI_WIN7) // [
|
||||
};
|
||||
};
|
||||
#endif // ]
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7) // [
|
||||
#if defined(_WIN64) // [
|
||||
ULONG Spare0;
|
||||
#else // ][
|
||||
PVOID ServiceTable;
|
||||
#endif // ]
|
||||
#endif // ]
|
||||
union
|
||||
{
|
||||
|
@ -899,9 +949,21 @@ typedef struct _KTHREAD
|
|||
UCHAR WaitBlockFill6[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
|
||||
ULONG WaitTime;
|
||||
};
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7) // [
|
||||
struct
|
||||
{
|
||||
UCHAR WaitBlockFill7[168];
|
||||
PVOID TebMappedLowVa;
|
||||
struct _UMS_CONTROL_BLOCK* Ucb;
|
||||
};
|
||||
#endif // ]
|
||||
struct
|
||||
{
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7) // [
|
||||
UCHAR WaitBlockFill8[188];
|
||||
#else // ][
|
||||
UCHAR WaitBlockFill7[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
|
||||
#endif // ]
|
||||
union
|
||||
{
|
||||
struct
|
||||
|
@ -921,7 +983,7 @@ typedef struct _KTHREAD
|
|||
union // 2 elements, 0x8 bytes (sizeof)
|
||||
{
|
||||
PVOID CallbackStack;
|
||||
ULONG64 CallbackDepth;
|
||||
ULONG_PTR CallbackDepth;
|
||||
};
|
||||
#else // ][
|
||||
PVOID CallbackStack;
|
||||
|
@ -949,24 +1011,30 @@ typedef struct _KTHREAD
|
|||
BOOLEAN Preempted;
|
||||
UCHAR AdjustReason;
|
||||
CHAR AdjustIncrement;
|
||||
UINT8 Spare01;
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
UCHAR PreviousMode;
|
||||
#else
|
||||
UCHAR Spare01;
|
||||
#endif
|
||||
#endif // ]
|
||||
CHAR Saturation;
|
||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
|
||||
ULONG SystemCallNumber;
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7) // [
|
||||
ULONG2 FreezeCount;
|
||||
ULONG FreezeCount;
|
||||
#else // ][
|
||||
ULONG Spare2;
|
||||
ULONG Spare02;
|
||||
#endif // ]
|
||||
#endif // ]
|
||||
KAFFINITY UserAffinity;
|
||||
struct _KPROCESS *Process;
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7) // [
|
||||
GROUP_AFFINITY UserAffinity;
|
||||
struct _KPROCESS *Process;
|
||||
GROUP_AFFINITY Affinity;
|
||||
ULONG IdealProcessor;
|
||||
ULONG UserIdealProcessor;
|
||||
#else // ][
|
||||
KAFFINITY UserAffinity;
|
||||
struct _KPROCESS *Process;
|
||||
KAFFINITY Affinity;
|
||||
#endif // ]
|
||||
PKAPC_STATE ApcStatePointer[2];
|
||||
|
@ -993,7 +1061,7 @@ typedef struct _KTHREAD
|
|||
#endif // ]
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7) // [
|
||||
#elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
|
||||
UCHAR Spare3;
|
||||
UCHAR Spare03;
|
||||
#else // ][
|
||||
UCHAR CalloutActive;
|
||||
#endif // ]
|
||||
|
@ -1096,7 +1164,7 @@ typedef struct _KTHREAD
|
|||
PKTHREAD_COUNTERS ThreadCounters;
|
||||
PXSTATE_SAVE XStateSave;
|
||||
#elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
|
||||
PVOID MdlForLockedteb;
|
||||
PVOID MdlForLockedTeb;
|
||||
#endif // ]
|
||||
} KTHREAD;
|
||||
|
||||
|
@ -1159,9 +1227,9 @@ typedef struct _KPROCESS
|
|||
};
|
||||
ULONG StackCount;
|
||||
LIST_ENTRY ProcessListEntry;
|
||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
|
||||
ULONGLONG CycleTime;
|
||||
#endif
|
||||
#endif // ]
|
||||
} KPROCESS;
|
||||
|
||||
#define ASSERT_PROCESS(object) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue