Поделиться через


Функция GetNumaNodeProcessorMask (winbase.h)

Извлекает маску процессора для указанного узла.

Синтаксис

BOOL GetNumaNodeProcessorMask(
  [in]  UCHAR      Node,
  [out] PULONGLONG ProcessorMask
);

Параметры

[in] Node

Номер узла.

[out] ProcessorMask

Маска процессора для узла. Маска процессора — это битовый вектор, в котором каждый бит представляет процессор и находится ли он в узле.

Если на узле не настроены процессоры, маска процессора равна нулю.

В системах с более чем 64 процессорами для этого параметра устанавливается маска процессора для узла, только если узел находится в той же группе процессоров , что и вызывающий поток. В противном случае параметру присваивается нулевое значение.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Чтобы получить самый большой номер узла в системе, используйте функцию GetNumaHighestNodeNumber . Обратите внимание, что это число не гарантируется равным общему количеству узлов в системе.

Чтобы убедиться, что все потоки для процесса выполняются на одном узле, используйте функцию SetProcessAffinityMask с маской сходства процессов, которая указывает процессоры на одном узле.

Используйте функцию GetNumaNodeProcessorMaskEx , чтобы получить маску процессора для узла в любой группе процессоров.

Примечание

Начиная с выпуска TBD, поведение этой и других функций NUMA было изменено для улучшения поддержки систем с узлами, содержащими более 64 процессоров. Дополнительные сведения об этом изменении, включая сведения о включении старого поведения этого API, см. в разделе Поддержка NUMA.

Поведение, начиная с выпуска tbd iron

Система назначает каждому узлу основную группу. Маска, возвращаемая GetNumaNodeProcessorMask , относится к основной группе узла и возвращается только в том случае, если вызывающий поток принадлежит этой группе.

Поведение в предыдущих версиях

Возвращается маска для указанного узла.

Требования

Требование Значение
Минимальная версия клиента Windows Vista, Windows XP Professional x64 Edition, Windows XP с пакетом обновления 2 (SP2) [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

GetNumaNodeProcessorMaskEx

GetNumaProcessorNode

Поддержка NUMA

Функции процессов и потоков

SetProcessAffinityMask