Freigeben über


KeGetCurrentProcessorNumberEx-Funktion (wdm.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.

Bemerkungen

Wenn ProcNumber- nichtNULL-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 über das gesamte Multiprozessorsystem identifiziert.

Wenn z. B. 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 reichen von 0 bis 127.

Eine verwandte Routine, KeGetCurrentProcessorNumber, gibt die aktuelle Prozessornummer zurück, aber diese Routine gibt im Gegensatz zu KeGetCurrentProcessorNumberExkeine Gruppennummer für den Prozessor an. 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 Anrufer 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 mindestens zwei Gruppen ordnungsgemäß ausgeführt. Treiber, die gruppenorientierte Features in Windows 7 und höheren Versionen des Windows-Betriebssystems verwenden, sollten jedoch KeGetCurrentProcessorNumberEx anstelle von KeGetCurrentProcessorNumberaufrufen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows 7 und höheren Versionen von Windows.
Zielplattform- Universal
Header- wdm.h (include Ntddk.h, Wdm.h, Ntddk.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Beliebige Ebene

Siehe auch

KeGetCurrentProcessorNumber

KeQueryActiveProcessorCount

PROCESSOR_NUMBER