// ndis.h
typedef struct _NDIS_SYSTEM_PROCESSOR_INFO {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_PROCESSOR_VENDOR ProcessorVendor;
ULONG NumPhysicalPackages;
ULONG NumCores;
ULONG NumCoresPerPhysicalPackage;
ULONG MaxHyperThreadingCpusPerCore;
ULONG RssBaseCpu;
ULONG RssCpuCount;
PUCHAR RssProcessors;
NDIS_PROCESSOR_INFO CpuInfo[MAXIMUM_PROC_PER_GROUP];
} NDIS_SYSTEM_PROCESSOR_INFO, *PNDIS_SYSTEM_PROCESSOR_INFO;
View the official Windows Driver Kit DDI referenceNo description available.
The NDIS_SYSTEM_PROCESSOR_INFO structure specifies information about the CPU topology of the local computer and the receive side scaling (RSS) processor set.
HeaderThe NDIS_OBJECT_HEADER structure for the NDIS_SYSTEM_PROCESSOR_INFO structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_DEFAULT, the Revision member to NDIS_SYSTEM_PROCESSOR_INFO_REVISION_1, and the Size member to NDIS_SIZEOF_SYSTEM_PROCESSOR_INFO_REVISION_1.
FlagsReserved. Set this member to zero.
ProcessorVendorThe processor vendor specified as one of the values from the NDIS_PROCESSOR_VENDOR enumeration.
NumPhysicalPackagesThe total number of processor physical packages that are in the local computer.
NumCoresThe total number of core processors that are in the local computer. For example, set this member to four if there are two dual core physical packages.
NumCoresPerPhysicalPackageThe number of core processors that are in each physical package. For example, set this member to two for a dual core physical package.
MaxHyperThreadingCpusPerCoreThe maximum number of logical processors that are in each hyper-threaded core processor. For example, set this member to two if each hyper-threaded core processor supports two logical processors.
RssBaseCpuThe starting CPU number that is used for RSS.
RssCpuCountThe number of processors that are used for RSS.
RssProcessorsA pointer to an optional caller-provided buffer that will contain the CPU numbers of the processors that can be used for RSS. Set this member to NULL if the CPU numbers are not required. To obtain CPU numbers, this member must contain a valid pointer and the size of this buffer must be at least MAXIMUM_PROCESSORS * sizeof (UCHAR). After the NdisGetProcessorInformation function returns successfully, the buffer contains CPU numbers followed by undefined data.
CpuInfoAn array of NDIS_PROCESSOR_INFO structures. After the NdisGetProcessorInformation function returns successfully, this array provides information for each processor in the local computer. The number of values in the array is equal to the number of processors in the local computer, as the NdisSystemActiveProcessorCount function reports.
NDIS network drivers use the NDIS_SYSTEM_PROCESSOR_INFO structure in calls to the NdisGetProcessorInformation function. After NdisGetProcessorInformation returns, this structure contains information about the CPU topology of the system and the set of processors that will be used for receive side scaling (RSS).
NdisSystemActiveProcessorCount