(winnt.h) SYSTEM_CPU_SET_INFORMATION 结构

此结构由 GetSystemCpuSetInformation 返回。 它用于枚举系统上的 CPU 集并确定其当前状态。

这是一个大小可变的结构,专为将来的扩展而设计。 循环访问此结构时,请使用 size 字段来确定到下一个结构的偏移量。

语法

typedef struct _SYSTEM_CPU_SET_INFORMATION {
  DWORD                    Size;
  CPU_SET_INFORMATION_TYPE Type;
  union {
    struct {
      DWORD   Id;
      WORD    Group;
      BYTE    LogicalProcessorIndex;
      BYTE    CoreIndex;
      BYTE    LastLevelCacheIndex;
      BYTE    NumaNodeIndex;
      BYTE    EfficiencyClass;
      union {
        BYTE AllFlags;
        struct {
          BYTE Parked : 1;
          BYTE Allocated : 1;
          BYTE AllocatedToTargetProcess : 1;
          BYTE RealTime : 1;
          BYTE ReservedFlags : 4;
        } DUMMYSTRUCTNAME;
      } DUMMYUNIONNAME2;
      union {
        DWORD Reserved;
        BYTE  SchedulingClass;
      };
      DWORD64 AllocationTag;
    } CpuSet;
  } DUMMYUNIONNAME;
} SYSTEM_CPU_SET_INFORMATION, *PSYSTEM_CPU_SET_INFORMATION;

成员

Size

这是此信息结构的大小(以字节为单位)。

Type

这是结构中的信息类型。 应用程序应跳过具有无法识别类型的任何结构。

DUMMYUNIONNAME

DUMMYUNIONNAME.CpuSet

DUMMYUNIONNAME.CpuSet.Id

指定 CPU 集的 ID。 在指定要关联到的 CPU 集列表时,此标识符可与 SetProcessDefaultCpuSetsSetThreadSelectedCpuSet 一 起使用。

DUMMYUNIONNAME.CpuSet.Group

指定 CPU 集的处理器组。 CpuSet 结构中的所有其他值都相对于处理器组。

DUMMYUNIONNAME.CpuSet.LogicalProcessorIndex

指定 CPU 集的主处理器的组相对索引。 除非 CPU 集出于热或电源管理原因而寄存,或者分配给另一个应用程序专用,否则线程将在其中一个 CPU 集的主处理器上运行。 GroupLogicalProcessorIndex 字段与在 PROCESSOR_NUMBER 结构中找到的字段相同,它们对应于 GROUP_AFFINITY 结构的 Group 字段和 Mask 字段。

DUMMYUNIONNAME.CpuSet.CoreIndex

一个组相对值,指示哪个“核心”具有 CPU 集的主处理器。 对于同一组中彼此共享大量执行资源的所有 CPU 集,例如支持同时多线程处理的单个内核上的不同硬件线程,此数字相同。

DUMMYUNIONNAME.CpuSet.LastLevelCacheIndex

一个组相对值,指示哪个 CPU 集至少彼此共享一个级别的缓存。 对于位于彼此共享缓存的处理器上的组中的所有 CPU 集,此值相同。

DUMMYUNIONNAME.CpuSet.NumaNodeIndex

一个组相对值,指示 CPU 集位于哪个 NUMA 节点上。 位于同一 NUMA 节点上的给定组中的所有 CPU 集都将对此字段具有相同的值。

DUMMYUNIONNAME.CpuSet.EfficiencyClass

一个 值,指示支持异类处理器(如 ARM big)的系统的处理器固有能效 (。LITTLE systems) 。 此字段数值较高的 CPU 集具有比值较低的主处理器更快,但更省电。

DUMMYUNIONNAME.CpuSet.DUMMYUNIONNAME2

DUMMYUNIONNAME.CpuSet.DUMMYUNIONNAME2.AllFlags

DUMMYUNIONNAME.CpuSet.DUMMYUNIONNAME2.DUMMYSTRUCTNAME

DUMMYUNIONNAME.CpuSet.DUMMYUNIONNAME2.DUMMYSTRUCTNAME.Parked

DUMMYUNIONNAME.CpuSet.DUMMYUNIONNAME2.DUMMYSTRUCTNAME.Allocated

DUMMYUNIONNAME.CpuSet.DUMMYUNIONNAME2.DUMMYSTRUCTNAME.AllocatedToTargetProcess

DUMMYUNIONNAME.CpuSet.DUMMYUNIONNAME2.DUMMYSTRUCTNAME.RealTime

DUMMYUNIONNAME.CpuSet.DUMMYUNIONNAME2.DUMMYSTRUCTNAME.ReservedFlags

DUMMYUNIONNAME.CpuSet.Reserved

保留。

DUMMYUNIONNAME.CpuSet.SchedulingClass

DUMMYUNIONNAME.CpuSet.AllocationTag

指定核心分配用于在不同组件中的线程之间传达给定分配的 CPU 集的标记。

要求

要求
最低受支持的客户端 Windows 10 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2016 [桌面应用 |UWP 应用]
标头 winnt.h (包括 Windows.h)