PROCESSOR_NUMBER structure (miniport.h)
The PROCESSOR_NUMBER structure identifies a processor by its group number and group-relative processor number.
Syntax
typedef struct _PROCESSOR_NUMBER {
USHORT Group;
UCHAR Number;
UCHAR Reserved;
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
Members
Group
The group number. If multiprocessor system contains n groups, the groups are numbered from 0 to n-1.
Number
The group-relative processor number. If a group contains m logical processors, the processors are numbered from 0 to m-1.
Reserved
Reserved for future use. Initialize to zero.
Remarks
Windows 7 is the first version of Windows to support processor groups. In Windows 7, only 64-bit versions of Windows support multiple groups; 32-bit versions of Windows support only one group. If a multiprocessor system is running a 64-bit version of Windows and contains no more than 64 logical processors, Windows assigns all processors to group 0. A multiprocessor system that is running a 32-bit version of Windows can contain no more than 32 processors.
In Windows 7, the maximum number of groups in a multiprocessor system is four, but this value might change in future versions of Windows. The safest way to determine the maximum number of groups in Windows 7 or a later version of Windows is to call the KeQueryMaximumGroupCount routine. Kernel-mode drivers that call KeQueryMaximumGroupCount will not require code changes if the formula that is used to calculate the maximum number of groups changes in a future version of Windows.
Kernel-mode routines that use the PROCESSOR_NUMBER structure include KeGetCurrentProcessorNumberEx, KeGetProcessorIndexFromNumber, KeGetProcessorNumberFromIndex, and KeQueryLogicalProcessorRelationship.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in Windows 7 and later versions of the Windows operating system. |
Header | miniport.h (include Windows.h, Ntdef.h, Wdm.h, Ntddk.h, Winnt.h, Minitape.h) |