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 KAFFINITY-typierte Variable, in die die Routine eine Bitmaske schreibt, die den Satz der aktuell aktiven Prozessoren darstellt. In einer Hot-Add-Umgebung kann sich diese Maske während der Laufzeit ändern. Dieser Parameter ist optional und kann als NULL- angegeben werden, wenn der Aufrufer die Maske aktiver Prozessoren nicht erfordert.
Rückgabewert
KeQueryActiveProcessorCount gibt die Anzahl der derzeit aktiven Prozessoren zurück.
Bemerkungen
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 hierfür nicht die KeNumberProcessors Kernelvariable verwenden.
Aufrufer können nicht davon ausgehen, dass die KeQueryActiveProcessorCount Routine Prozessoren bits in der zurückgegebenen KAFFINITY Wert aufeinanderfolgende ordnet, oder dass die Routine bei jedem Aufruf dieselbe Bitmaske zurückgibt.
Aufrufer müssen auch beachten, dass der von KeQueryActiveProcessorCount zurückgegebene Wert zur Laufzeit in Versionen von Windows geändert werden kann, die hot-add CPU-Funktionen unterstützen.
Registrieren Sie sich bei Bedarf für die Benachrichtigung über Änderungen an der Anzahl der Prozessoren, indem Sie die KeRegisterProcessorChangeCallback Routine aufrufen.
Um nur die Affinitätsmaske abzufragen, ohne die Anzahl der aktiven Prozessoren zu erhalten, verwenden Sie KeQueryActiveProcessors.
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. 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 aktiver logischer Prozessoren in Gruppe 0 angibt.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Vista und höheren Versionen von Windows. |
Zielplattform- | Universal |
Header- | ntddk.h (enthalten Wdm.h, Ntddk.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | Beliebige Ebene |