Auf Englisch lesen

Freigeben über


KeGetProcessorNumberFromIndex-Funktion (ntifs.h)

Die KeGetProcessorNumberFromIndex Routine wandelt einen systemweiten Prozessorindex in eine Gruppennummer und eine gruppenrelative Prozessornummer um.

Syntax

NTSTATUS KeGetProcessorNumberFromIndex(
  [in]  ULONG             ProcIndex,
  [out] PPROCESSOR_NUMBER ProcNumber
);

Parameter

[in] ProcIndex

Ein systemweiter Prozessorindex. Wenn ein Multiprozessorsystem insgesamt n logische Prozessoren enthält, reichen gültige Prozessorindizes von 0 bis n-1.

[out] ProcNumber

Ein Zeiger auf eine vom Aufrufer zugewiesene PROCESSOR_NUMBER Struktur, in die die Routine die Gruppennummer und die gruppenrelative Prozessornummer des Prozessors schreibt, der durch ProcIndex-identifiziert wird.

Rückgabewert

KeGetProcessorNumberFromIndex gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Mögliche Fehlerrückgabewerte sind:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Der ProcIndex Parameterwert ist kein gültiger Prozessorindex.

Bemerkungen

Diese Routine akzeptiert als Eingabe einen Prozessorindex, der den Prozessor im gesamten Multiprozessorsystem identifiziert. Der Ausgabewert ist eine PROCESSOR_NUMBER Struktur, die einen Prozessor anhand seiner Gruppennummer und seiner Prozessornummer innerhalb der Gruppe 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.

Rufen Sie zum Abrufen der Gesamtzahl der aktiven logischen Prozessoren im System die KeQueryActiveProcessorCountEx Routine auf.

Die KeGetProcessorIndexFromNumber Routine wandelt eine Gruppennummer und eine gruppenrelative Prozessornummer in einen systemweiten Prozessorindex um.

Beispiele

Im folgenden Codebeispiel werden die KeQueryActiveProcessorCountEx und KeGetProcessorNumberFromIndex Routinen verwendet, um alle aktiven logischen Prozessoren im System aufzählen zu können:

ULONG Count;
ULONG ProcIndex;
PROCESSOR_NUMBER ProcNumber;

Count = KeQueryActiveProcessorCountEx(ALL_PROCESSOR_GROUPS);
for (ProcIndex = 0; ProcIndex < Count; ProcIndex += 1)
{
    KeGetProcessorNumberFromIndex(ProcIndex, &ProcNumber);

    // Do something with the contents of ProcNumber.
    ...
}

Der konstanten Wert ALL_PROCESSOR_GROUPS wird in Winnt.h und Ntdef.h definiert.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 7
Zielplattform- Universal
Header- ntifs.h (include Ntddk.h, Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Beliebige Ebene

Siehe auch

KeGetProcessorIndexFromNumber

KeQueryActiveProcessorCountEx

PROCESSOR_NUMBER