Freigeben über


KeGetCurrentProcessorNumberEx-Funktion (ntddk.h)

Die KeGetCurrentProcessorNumberEx-Routine ruft die Prozessornummer des logischen Prozessors ab, auf dem der Aufrufer ausgeführt wird.

Syntax

ULONG KeGetCurrentProcessorNumberEx(
  [out, optional] PPROCESSOR_NUMBER ProcNumber
);

Parameter

[out, optional] ProcNumber

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, in den die Routine eine PROCESSOR_NUMBER Struktur schreibt, die den aktuellen logischen Prozessor identifiziert. Diese Struktur enthält die Gruppennummer und die gruppenrelative Prozessornummer. Sie können diesen Parameter auf NULL festlegen, wenn Sie diese Informationen nicht benötigen.

Rückgabewert

KeGetCurrentProcessorNumberEx gibt den systemweiten Prozessorindex des logischen Prozessors zurück, auf dem der Aufrufer ausgeführt wird.

Hinweise

Wenn ProcNumber nicht NULL ist, muss der Puffer, auf den procNumber verweist, groß genug sein, um eine PROCESSOR_NUMBER-Struktur zu enthalten. Im Gegensatz zu dieser Struktur, die eine Gruppennummer und eine gruppenrelative Prozessornummer enthält, ist der Rückgabewert ein Prozessorindex, der den Prozessor im gesamten Multiprozessorsystem identifiziert.

Wenn beispielsweise ein Multiprozessorsystem zwei Gruppen enthält und jede Gruppe 64 logische Prozessoren enthält, liegen die Prozessornummern in jeder Gruppe zwischen 0 und 63, aber die systemweiten Prozessorindizes liegen zwischen 0 und 127.

Eine verwandte Routine, KeGetCurrentProcessorNumber, gibt die aktuelle Prozessornummer zurück, aber diese Routine stellt im Gegensatz zu KeGetCurrentProcessorNumberEx keine Gruppennummer für den Prozessor bereit. In Windows 7 und höheren Versionen des Windows-Betriebssystems gibt KeGetCurrentProcessorNumber die gruppenrelative Prozessornummer zurück, wenn der Aufrufer auf einem Prozessor in Gruppe 0 ausgeführt wird, der mit dem Verhalten dieser Routine in früheren Versionen von Windows kompatibel ist, die keine Gruppen unterstützen. Wenn der Aufrufer jedoch auf einem Prozessor in einer anderen Gruppe als Gruppe 0 ausgeführt wird, gibt diese Routine eine Zahl zurück, die kleiner als die Anzahl der Prozessoren in Gruppe 0 ist. Dieses Verhalten stellt sicher, dass der Rückgabewert kleiner als der Rückgabewert der KeQueryActiveProcessorCount-Routine ist. Vorhandene Treiber, die KeGetCurrentProcessorNumber aufrufen und keine gruppenorientierten Features verwenden, werden in Multiprozessorsystemen mit zwei oder mehr Gruppen ordnungsgemäß ausgeführt. Treiber, die gruppenorientierte Features in Windows 7 und höheren Versionen des Windows-Betriebssystems verwenden, sollten jedoch KeGetCurrentProcessorNumberEx anstelle von KeGetCurrentProcessorNumber aufrufen.

Anforderungen

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

Weitere Informationen

KeGetCurrentProcessorNumber

KeQueryActiveProcessorCount

PROCESSOR_NUMBER