Freigeben über


KeQueryNodeActiveAffinity-Funktion (wdm.h)

Die KeQueryNodeActiveAffinity Routine ruft die aktuelle Prozessoraffinität eines angegebenen Knotens in einem Multiprozessorsystem ab, das über eine nicht einheitliche Speicherzugriffsarchitektur (NUMA) verfügt.

Syntax

void KeQueryNodeActiveAffinity(
  [in]            USHORT          NodeNumber,
  [out, optional] PGROUP_AFFINITY Affinity,
  [out, optional] PUSHORT         Count
);

Parameter

[in] NodeNumber

Die Knotennummer. Wenn ein Multiprozessorsystem n Knoten enthält, werden die Knoten von 0 bis n-1 nummeriert. Rufen Sie zum Abrufen der höchsten Knotennummer (n-1) im System die KeQueryHighestNodeNumber Routine auf.

[out, optional] Affinity

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, in den die Routine eine GROUP_AFFINITY Struktur schreibt. Diese Struktur enthält die Gruppennummer der Gruppe, die den Knoten enthält, der durch NodeNumberidentifiziert wird, und ein Affinitätsformat, das angibt, welche logischen Prozessoren im Knoten aktiv sind. Sie können diesen Parameter auf NULL- festlegen, wenn Sie diese Informationen nicht benötigen.

Ab Windows Server 2022 kann ein Knoten mehrere Gruppen umfassen. Dies geschieht, wenn ein Knoten mehr als 64 Prozessoren enthält. In diesem Fall weist das Betriebssystem für jeden NUMA-Knoten eine primäre Gruppe zu. Die primäre Gruppe ist immer die Gruppe, die die meisten Prozessoren enthält. In diesem Fall wird die zurückgegebene Gruppenaffinitätsstruktur für die primäre Gruppe des Knotens verwendet. Weitere Informationen zu dieser Verhaltensänderung finden Sie unter NUMA Support. Wenn Ihr Code auf Systemen mit mehr als 64 Prozessoren pro NUMA-Knoten ausgeführt wird, sollten Sie stattdessen KeQueryNodeActiveAffinity2verwenden.

[out, optional] Count

Ein Zeiger auf eine Position, in die die Routine die Anzahl der aktiven Prozessoren schreibt, die in der Knotenaffinitätsmaske dargestellt werden, auf die durch Affinity-verwiesen wird. Sie können diesen Parameter auf NULL- festlegen, wenn Sie diese Informationen nicht benötigen.

Ab Windows Server 2022 gilt die zurückgegebene Anzahl für die primäre Gruppe des Knotens. Weitere Informationen zu primären Gruppen finden Sie oben.

Rückgabewert

Nichts

Bemerkungen

Der vom Aufrufer zugewiesene Puffer, auf den der Affinity--Parameter verweist, muss groß genug sein, um eine GROUP_AFFINITY Struktur zu enthalten. Das Mask Mitglied dieser Struktur enthält eine Affinitätsmaske, die angibt, welche Prozessoren aktiv sind. Wenn ein Prozessor aktiv ist, ist das entsprechende Bit in der Maske eins. Alle anderen Bits sind Null.

In einer NUMA-Multiprozessorarchitektur ist ein Knoten eine Sammlung von Prozessoren, die schnellen Zugriff auf einen Speicherbereich teilen. Der Speicherzugriff ist nicht einheitlich, da ein Prozessor schneller auf den Speicher in seinem Knoten zugreifen kann, als er auf den Speicher in anderen Knoten zugreifen kann.

Die Anzahl der Prozessoren in einem Knoten darf die Anzahl der Bits in der Affinitätsmaske in der Struktur nicht überschreiten, auf die durch Affinity-verwiesen wird. Die Affinitätsmaske bestimmt auch die maximale Anzahl von Prozessoren in einer Gruppe.

In Windows 10, Version 2004 und früheren Versionen, wenn windows während der Systeminitialisierung auf einen NUMA-Hardwareknoten trifft, der mehr logische Prozessoren enthält, als in eine Gruppe passen, teilt Windows den Knoten in kleinere logische Knoten auf. Jeder dieser Knoten überschreitet nicht die maximale Gruppengröße. Der parameter NodeNumber identifiziert einen logischen Knoten. Rufen Sie zum Abrufen der maximalen Anzahl von Prozessoren pro Gruppe die KeQueryMaximumProcessorCountEx Routine auf.

Anforderungen

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

Siehe auch

KeQueryNodeActiveAffinity2

KeQueryLogicalProcessorRelationship

GROUP_AFFINITY

KeQueryHighestNodeNumber

KeQueryHighestNodeNumber

KeQueryMaximumProcessorCountEx