структура SYSTEM_CPU_SET_INFORMATION (winnt.h)
Эта структура возвращается getSystemCpuSetInformation. Он используется для перечисления наборов ЦП в системе и определения их текущего состояния.
Это структура переменной величины, предназначенная для будущего расширения. При переборе этой структуры используйте поле размера, чтобы определить смещение следующей структуры.
Синтаксис
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
Идентификатор указанного набора ЦП. Этот идентификатор можно использовать с SetProcessDefaultCpuSets или SetThreadSelectedCpuSets при указании списка наборов ЦП для сопоставления.
DUMMYUNIONNAME.CpuSet.Group
Указывает группу процессоров набора ЦП. Все остальные значения в структуре CpuSet относятся к группе процессоров.
DUMMYUNIONNAME.CpuSet.LogicalProcessorIndex
Указывает относительный к группе индекс домашнего процессора набора ЦП. Если набор ЦП не припаркован по соображениям управления температурой или питанием или не назначен для монопольного использования другому приложению, потоки будут выполняться на домашнем процессоре одного из своих наборов ЦП. Поля Group и LogicalProcessorIndex совпадают с полями в структуре PROCESSOR_NUMBER и соответствуют полям Group и Mask структуры GROUP_AFFINITY.
DUMMYUNIONNAME.CpuSet.CoreIndex
Относительное значение группы, указывающее, какой "Core" имеет домашний процессор набора ЦП. Это число одинаково для всех наборов ЦП в одной группе, которые совместно используют значительные ресурсы выполнения, например разные аппаратные потоки на одном ядре, поддерживающем одновременную многопоточность.
DUMMYUNIONNAME.CpuSet.LastLevelCacheIndex
Относительное значение группы, указывающее, какие наборы ЦП используют по крайней мере один уровень кэша друг с другом. Это значение одинаково для всех наборов ЦП в группе, которые находятся на процессорах, которые совместно используют кэш друг с другом.
DUMMYUNIONNAME.CpuSet.NumaNodeIndex
Относительное значение группы, указывающее, на каком узле NUMA находится набор ЦП. Все наборы ЦП в заданной группе, которые находятся на одном узле NUMA, будут иметь одинаковое значение для этого поля.
DUMMYUNIONNAME.CpuSet.EfficiencyClass
Значение, указывающее встроенную энергоэффективность процессора для систем, поддерживающих разнородные процессоры (например, arm big). Системы LITTLE). Наборы ЦП с более высокими числовыми значениями этого поля имеют домашние процессоры, которые быстрее, но менее энергопотребление, чем процессоры с более низкими значениями.
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
Указывает тег, используемый выделением ядра для передачи заданного выделенного набора ЦП между потоками в разных компонентах.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2016 [классические приложения | Приложения UWP] |
Верхняя часть | winnt.h (включая Windows.h) |