NDIS_SYSTEM_PROCESSOR_INFO structure (ndis.h)

The NDIS_SYSTEM_PROCESSOR_INFO structure specifies information about the CPU topology of the local computer and the receive side scaling (RSS) processor set.

Syntax

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;

Members

Header

The 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.

Flags

Reserved. Set this member to zero.

ProcessorVendor

The processor vendor specified as one of the values from the NDIS_PROCESSOR_VENDOR enumeration.

NumPhysicalPackages

The total number of processor physical packages that are in the local computer.

NumCores

The 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.

NumCoresPerPhysicalPackage

The number of core processors that are in each physical package. For example, set this member to two for a dual core physical package.

MaxHyperThreadingCpusPerCore

The 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.

RssBaseCpu

The starting CPU number that is used for RSS.

RssCpuCount

The number of processors that are used for RSS.

RssProcessors

A 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.

CpuInfo[MAXIMUM_PROC_PER_GROUP]

An 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.

Remarks

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).

Requirements

Requirement Value
Minimum supported client Supported in NDIS 6.0 and 6.1. For NDIS 6.20 and later, use NDIS_SYSTEM_PROCESSOR_INFO_EX.
Header ndis.h (include Ndis.h)

See also

NDIS_OBJECT_HEADER

NDIS_PROCESSOR_INFO

NDIS_PROCESSOR_VENDOR

NDIS_SYSTEM_PROCESSOR_INFO_EX

NdisGetProcessorInformation

NdisSystemActiveProcessorCount