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


Функция KeGetCurrentProcessorNumber (ntddk.h)

Подпрограмма KeGetCurrentProcessorNumber возвращает назначенный системой номер текущего процессора, на котором выполняется вызывающий объект.

Синтаксис

ULONG KeGetCurrentProcessorNumber();

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

KeGetCurrentProcessorNumber возвращает значение ULONG, представляющее обработчик, на котором в настоящее время запущен вызывающий объект.

Замечания

KeGetCurrentProcessorNumber можно вызвать для отладки использования спин-блокировки на компьютерах SMP во время разработки драйверов. Драйвер также может вызывать KeGetCurrentProcessorNumber, если он поддерживает некоторые данные на процессор и пытается сократить количество конфликтов в строке кэша.

Число процессоров на компьютере SMP — это отсчитываемое от нуля значение.

Windows 7 и более поздних версий групп обработчиков Windows. Драйверы, предназначенные для обработки сведений о группах процессоров, должны использовать подпрограмму KeGetCurrentProcessorNumberEx, которая указывает группу процессоров вместо KeGetCurrentProcessorNumber. Однако реализация KeGetCurrentProcessorNumber в Windows 7 и более поздних версиях Windows обеспечивает совместимость драйверов, написанных для более ранних версий Windows. В этой реализации KeGetCurrentProcessorNumber возвращает номер процессора относительно группы, если вызывающий объект работает на процессоре в группе 0, что совместимо с поведением этой подпрограммы в более ранних версиях Windows, которые не поддерживают группы обработчиков. Если вызывающий объект работает на процессоре в любой группе, отличной от группы 0, эта подпрограмма возвращает число, которое меньше числа процессоров в группе 0. Это поведение гарантирует, что возвращаемое значение меньше возвращаемого значения подпрограммы KeQueryActiveProcessorCount.

Если вызов KeGetCurrentProcessorNumber происходит в IRQL <= APC_LEVEL, то между инструкциями может произойти переключение процессора. Следовательно, вызывающие KeGetCurrentProcessorNumber обычно выполняются в IRQL >= DISPATCH_LEVEL.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 2000.
целевая платформа Настольный
заголовка ntddk.h (include Ntddk.h)
IRQL См. раздел "Примечания".
правил соответствия DDI Irql_Miscellaneous_Function(ndis)

См. также

KeGetCurrentProcessorNumberEx

KeQueryActiveProcessorCount