Freigeben über


KeQueryActiveProcessorCount-Funktion (wdm.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 KAFFINITY-typisierte Variable, in die die Routine eine Bitmaske schreibt, die die Gruppe der derzeit aktiven Prozessoren darstellt. In einer Umgebung mit heißer Erweiterung kann sich diese Maske während der Laufzeit ändern. Dieser Parameter ist optional und kann als NULL angegeben werden, wenn der Aufrufer die Maske der aktiven Prozessoren nicht erfordert.

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 zu diesem Zweck nicht die Kernelvariable KeNumberProcessors verwenden.

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

Aufrufer müssen sich auch darüber im Klaren sein, dass sich der von KeQueryActiveProcessorCount zurückgegebene Wert zur Laufzeit unter Windows-Versionen ändern kann, die CPU-Funktionalität mit hot-add unterstützen.

Registrieren Sie sich ggf. zur Benachrichtigung über Änderungen an der Anzahl der Prozessoren, 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 wdm.h (include Wdm.h, Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Beliebige Ebene

Weitere Informationen

KeQueryActiveProcessorCountEx

KeQueryActiveProcessors

KeRegisterProcessorChangeCallback