Extend processor affinity structures to support group affinity
This commit is contained in:
@@ -313,6 +313,23 @@ typedef struct _EXCEPTION_RECORD
|
|||||||
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
|
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
|
||||||
} EXCEPTION_RECORD, *PEXCEPTION_RECORD;
|
} EXCEPTION_RECORD, *PEXCEPTION_RECORD;
|
||||||
|
|
||||||
|
/* Group affinity structure definition */
|
||||||
|
typedef struct _GROUP_AFFINITY
|
||||||
|
{
|
||||||
|
KAFFINITY Mask;
|
||||||
|
USHORT Group;
|
||||||
|
USHORT Reserved[3];
|
||||||
|
} GROUP_AFFINITY, *PGROUP_AFFINITY;
|
||||||
|
|
||||||
|
/* Extended affinity structure definition */
|
||||||
|
typedef struct _KAFFINITY_MAP
|
||||||
|
{
|
||||||
|
USHORT Count;
|
||||||
|
USHORT Size;
|
||||||
|
ULONG Reserved;
|
||||||
|
KAFFINITY Bitmap[1];
|
||||||
|
} KAFFINITY_MAP, *PKAFFINITY_MAP;
|
||||||
|
|
||||||
/* Asynchronous Procedure Call (APC) object structure definition */
|
/* Asynchronous Procedure Call (APC) object structure definition */
|
||||||
typedef struct _KAPC
|
typedef struct _KAPC
|
||||||
{
|
{
|
||||||
@@ -469,7 +486,8 @@ typedef struct _KPROCESS
|
|||||||
ULONG_PTR DirectoryTable[2];
|
ULONG_PTR DirectoryTable[2];
|
||||||
USHORT IopmOffset;
|
USHORT IopmOffset;
|
||||||
UCHAR Iopl;
|
UCHAR Iopl;
|
||||||
VOLATILE KAFFINITY ActiveProcessors;
|
KAFFINITY_MAP Affinity;
|
||||||
|
VOLATILE KAFFINITY_MAP ActiveProcessors;
|
||||||
ULONG KernelTime;
|
ULONG KernelTime;
|
||||||
ULONG UserTime;
|
ULONG UserTime;
|
||||||
LIST_ENTRY ReadyListHead;
|
LIST_ENTRY ReadyListHead;
|
||||||
@@ -477,7 +495,6 @@ typedef struct _KPROCESS
|
|||||||
PVOID VdmTrapHandler;
|
PVOID VdmTrapHandler;
|
||||||
LIST_ENTRY ThreadListHead;
|
LIST_ENTRY ThreadListHead;
|
||||||
KSPIN_LOCK ProcessLock;
|
KSPIN_LOCK ProcessLock;
|
||||||
KAFFINITY Affinity;
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
struct
|
struct
|
||||||
@@ -532,7 +549,6 @@ typedef struct _KTHREAD
|
|||||||
PVOID StackBase;
|
PVOID StackBase;
|
||||||
PVOID StackLimit;
|
PVOID StackLimit;
|
||||||
KSPIN_LOCK ThreadLock;
|
KSPIN_LOCK ThreadLock;
|
||||||
|
|
||||||
ULONG ContextSwitches;
|
ULONG ContextSwitches;
|
||||||
VOLATILE UCHAR State;
|
VOLATILE UCHAR State;
|
||||||
UCHAR NpxState;
|
UCHAR NpxState;
|
||||||
@@ -595,9 +611,9 @@ typedef struct _KTHREAD
|
|||||||
CHAR PreviousMode;
|
CHAR PreviousMode;
|
||||||
UCHAR ResourceIndex;
|
UCHAR ResourceIndex;
|
||||||
UCHAR DisableBoost;
|
UCHAR DisableBoost;
|
||||||
KAFFINITY UserAffinity;
|
GROUP_AFFINITY UserAffinity;
|
||||||
PKPROCESS Process;
|
PKPROCESS Process;
|
||||||
KAFFINITY Affinity;
|
GROUP_AFFINITY Affinity;
|
||||||
PVOID ServiceTable;
|
PVOID ServiceTable;
|
||||||
PKAPC_STATE ApcStatePointer[2];
|
PKAPC_STATE ApcStatePointer[2];
|
||||||
KAPC_STATE SavedApcState;
|
KAPC_STATE SavedApcState;
|
||||||
|
|||||||
@@ -248,9 +248,11 @@ typedef struct _EXCEPTION_REGISTRATION_RECORD EXCEPTION_REGISTRATION_RECORD, *PE
|
|||||||
typedef struct _FIRMWARE_INFORMATION_BLOCK FIRMWARE_INFORMATION_BLOCK, *PFIRMWARE_INFORMATION_BLOCK;
|
typedef struct _FIRMWARE_INFORMATION_BLOCK FIRMWARE_INFORMATION_BLOCK, *PFIRMWARE_INFORMATION_BLOCK;
|
||||||
typedef struct _FLOAT128 FLOAT128, *PFLOAT128;
|
typedef struct _FLOAT128 FLOAT128, *PFLOAT128;
|
||||||
typedef struct _GENERIC_ADDRESS GENERIC_ADDRESS, *PGENERIC_ADDRESS;
|
typedef struct _GENERIC_ADDRESS GENERIC_ADDRESS, *PGENERIC_ADDRESS;
|
||||||
|
typedef struct _GROUP_AFFINITY GROUP_AFFINITY, *PGROUP_AFFINITY;
|
||||||
typedef struct _GUID GUID, *PGUID;
|
typedef struct _GUID GUID, *PGUID;
|
||||||
typedef struct _HL_FRAMEBUFFER_DATA HL_FRAMEBUFFER_DATA, *PHL_FRAMEBUFFER_DATA;
|
typedef struct _HL_FRAMEBUFFER_DATA HL_FRAMEBUFFER_DATA, *PHL_FRAMEBUFFER_DATA;
|
||||||
typedef struct _HL_SCROLL_REGION_DATA HL_SCROLL_REGION_DATA, *PHL_SCROLL_REGION_DATA;
|
typedef struct _HL_SCROLL_REGION_DATA HL_SCROLL_REGION_DATA, *PHL_SCROLL_REGION_DATA;
|
||||||
|
typedef struct _KAFFINITY_MAP KAFFINITY_MAP, *PKAFFINITY_MAP;
|
||||||
typedef struct _KAPC KAPC, *PKAPC;
|
typedef struct _KAPC KAPC, *PKAPC;
|
||||||
typedef struct _KAPC_STATE KAPC_STATE, *PKAPC_STATE;
|
typedef struct _KAPC_STATE KAPC_STATE, *PKAPC_STATE;
|
||||||
typedef struct _KD_DEBUG_MODE KD_DEBUG_MODE, *PKD_DEBUG_MODE;
|
typedef struct _KD_DEBUG_MODE KD_DEBUG_MODE, *PKD_DEBUG_MODE;
|
||||||
|
|||||||
Reference in New Issue
Block a user