SYSTEM_LOGICAL_PROCESSOR_INFORMATION structure (winnt.h)

Describes the relationship between the specified processor set. This structure is used with the GetLogicalProcessorInformation function.

Syntax

typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
  ULONG_PTR                      ProcessorMask;
  LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
  union {
    struct {
      BYTE Flags;
    } ProcessorCore;
    struct {
      DWORD NodeNumber;
    } NumaNode;
    CACHE_DESCRIPTOR Cache;
    ULONGLONG        Reserved[2];
  } DUMMYUNIONNAME;
} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;

Members

ProcessorMask

The processor mask identifying the processors described by this structure. A processor mask is a bit vector in which each set bit represents an active processor in the relationship. At least one bit will be set.

On a system with more than 64 processors, the processor mask identifies processors in a single processor group.

Relationship

The relationship between the processors identified by the value of the ProcessorMask member. This member can be one of the following LOGICAL_PROCESSOR_RELATIONSHIP values.

Value Meaning
RelationCache
2
The specified logical processors share a cache. The Cache member contains additional information.

Windows Server 2003:  This value is not supported until Windows Server 2003 with SP1 and Windows XP Professional x64 Edition.

RelationNumaNode
1
The specified logical processors are part of the same NUMA node. The NumaNode member contains additional information.
RelationProcessorCore
0
The specified logical processors share a single processor core. The ProcessorCore member contains additional information.
RelationProcessorPackage
3
The specified logical processors share a physical package. There is no additional information available.

Windows Server 2003 and Windows XP Professional x64 Edition:  This value is not supported until Windows Server 2003 with SP1 and Windows XP with SP3.

 

Future versions of Windows may support additional values for the Relationship member.

DUMMYUNIONNAME

DUMMYUNIONNAME.ProcessorCore

This structure contains valid data only if the Relationship member is RelationProcessorCore.

DUMMYUNIONNAME.ProcessorCore.Flags

If the value of this member is 1, the logical processors identified by the value of the ProcessorMask member share functional units, as in Hyperthreading or SMT. Otherwise, the identified logical processors do not share functional units.

Windows Server 2003 and Windows XP Professional x64 Edition:  This member is also 1 for cores that share a physical package. Therefore, to determine whether the processor supports multiple cores or hyperthreading on systems prior to Windows Vista, use the CPUID instruction.

DUMMYUNIONNAME.NumaNode

This structure contains valid data only if the Relationship member is RelationNumaNode.

DUMMYUNIONNAME.NumaNode.NodeNumber

Identifies the NUMA node. The valid values of this parameter are 0 to the highest NUMA node number inclusive. A non-NUMA multiprocessor system will report that all processors belong to one NUMA node.

DUMMYUNIONNAME.Cache

A CACHE_DESCRIPTOR structure that identifies the characteristics of a particular cache. There is one record returned for each cache reported. Some or all caches may not be reported, depending on the mechanism used by the processor to identify its caches. Therefore, do not assume the absence of any particular caches. Caches are not necessarily shared among logical processors.

This structure contains valid data only if the Relationship member is RelationCache.

Windows Server 2003:  This member is not supported until Windows Server 2003 with SP1 and Windows XP Professional x64 Edition.

DUMMYUNIONNAME.Reserved[2]

Reserved. Do not use.

Requirements

Requirement Value
Minimum supported client Windows Vista, Windows XP Professional x64 Edition [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Header winnt.h (include Windows.h)

See also

CACHE_DESCRIPTOR

GetLogicalProcessorInformation

GetLogicalProcessorInformationEx

LOGICAL_PROCESSOR_RELATIONSHIP

SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX