Функция GetNumaNodeProcessorMaskEx (systemtopologyapi.h)
Извлекает маску процессора для узла независимо от группы процессоров, к которой принадлежит узел.
Синтаксис
BOOL GetNumaNodeProcessorMaskEx(
[in] USHORT Node,
[out] PGROUP_AFFINITY ProcessorMask
);
Параметры
[in] Node
Номер узла.
[out] ProcessorMask
Указатель на структуру GROUP_AFFINITY , получающую маску процессора для указанного узла. Маска процессора — это битовый вектор, в котором каждый бит представляет процессор и находится ли он в узле.
Если на указанном узле не настроены процессоры, элемент Mask равен нулю, а элемент Group не определен.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение.
Комментарии
Функция GetNumaNodeProcessorMaskEx отличается от Функции GetNumaNodeProcessorMask тем, что она может получить маску процессора для узла независимо от группы, к которой принадлежит узел. То есть узел не обязательно должен находиться в той же группе, что и вызывающий поток. Функция GetNumaNodeProcessorMask может получить маску процессора только для узлов, которые находятся в той же группе, что и вызывающий поток.
Чтобы получить самый большой номер узла в системе, используйте функцию GetNumaHighestNodeNumber . Обратите внимание, что это число не гарантируется равным общему количеству узлов в системе.
Чтобы убедиться, что все потоки для процесса выполняются на одном узле, используйте функцию SetProcessAffinityMask с маской сходства процессов, которая указывает процессоры на одном узле.
Чтобы скомпилировать приложение, использующее эту функцию, задайте _WIN32_WINNT>= 0x0601. Дополнительные сведения см. в разделе Использование заголовков Windows.
Примечание
Начиная с выпуска TBD, поведение этой и других функций NUMA было изменено для улучшения поддержки систем с узлами, содержащими более 64 процессоров. Дополнительные сведения об этом изменении, включая сведения о включении старого поведения этого API, см. в разделе Поддержка NUMA.
Поведение, начиная с выпуска tbd iron
Система назначает каждому узлу основную группу. GROUP_AFFINITY, возвращаемый GetNumaNodeProcessorMaskEx, предназначен для основной группы узла.
Поведение в предыдущих версиях
Возвращается GROUP_AFFINITY для указанного узла.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | systemtopologyapi.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |