Freigeben über


KeQueryActiveProcessorCount-Funktion (ntddk.h)

Die KeQueryActiveProcessorCount-Routine gibt die Anzahl der derzeit aktiven Prozessoren zurück.

Syntax

ULONG KeQueryActiveProcessorCount(
  [out, optional] PKAFFINITY ActiveProcessors
);

Parameter

[out, optional] ActiveProcessors

Ein Zeiger auf eine Variable vom Typ KAFFINITY, in die die Routine eine Bitmaske schreibt, die die Gruppe der derzeit aktiven Prozessoren darstellt. In einer Umgebung mit hot add kann sich diese Maske während der Laufzeit ändern. Dieser Parameter ist optional und kann als NULL angegeben werden, wenn der Aufrufer keine Maske aktiver Prozessoren benötigt.

Rückgabewert

KeQueryActiveProcessorCount gibt die Anzahl der derzeit aktiven Prozessoren zurück.

Hinweise

Ein Gerätetreiber ruft die KeQueryActiveProcessorCount-Routine auf, um die Anzahl der derzeit aktiven Prozessoren abzurufen. Gerätetreiber, die für Windows Vista und höhere Versionen des Windows-Betriebssystems erstellt wurden, sollten die Kernelvariable KeNumberProcessors zu diesem Zweck nicht verwenden.

Aufrufer können nicht davon ausgehen, dass die KeQueryActiveProcessorCount-Routine Prozessoren nacheinander Bits im zurückgegebenen KAFFINITY-Wert zuordnet, oder dass die Routine bei jedem Aufruf dieselbe Bitmaske zurückgibt.

Aufrufer müssen sich auch bewusst sein, dass sich der von KeQueryActiveProcessorCount zurückgegebene Wert zur Laufzeit unter Windows-Versionen ändern kann, die CPU-Funktionen mit hot-add unterstützen.

Registrieren Sie sich bei Bedarf, um änderungen an der Anzahl der Prozessoren zu benachrichtigen, indem Sie die KeRegisterProcessorChangeCallback-Routine aufrufen.

Verwenden Sie KeQueryActiveProcessors, um nur die Affinitätsmaske abzufragen, ohne die Anzahl der aktiven Prozessoren abzurufen.

Windows 7 und höhere Versionen von Windows unterstützen Prozessorgruppen. Treiber, die für die Verarbeitung von Informationen zu Prozessorgruppen konzipiert sind, sollten die KeQueryActiveProcessorCountEx-Routine verwenden, die eine Prozessorgruppe angibt, anstelle von KeQueryActiveProcessorCount, was nicht der Fall ist. Die Implementierung von KeQueryActiveProcessorCount in Windows 7 und höheren Versionen von Windows bietet jedoch Kompatibilität für Treiber, die für frühere Versionen von Windows geschrieben wurden, die keine Prozessorgruppen unterstützen. In dieser Implementierung gibt KeQueryActiveProcessorCount die Anzahl der aktiven logischen Prozessoren in Gruppe 0 zurück und schreibt eine Affinitätsmaske in *ActiveProcessors , die den Satz der aktiven logischen Prozessoren in Gruppe 0 angibt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und späteren Windows-Versionen.
Zielplattform Universell
Header ntddk.h (include Wdm.h, Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Beliebige Ebene

Weitere Informationen

KeQueryActiveProcessorCountEx

KeQueryActiveProcessors

KeRegisterProcessorChangeCallback