IoGetDeviceNumaNode-Funktion (wdm.h)
Die IoGetDeviceNumaNode Routine ruft die Knotennummer eines Geräts ab.
Syntax
NTSTATUS IoGetDeviceNumaNode(
[in] PDEVICE_OBJECT Pdo,
[out] PUSHORT NodeNumber
);
Parameter
[in] Pdo
Ein Zeiger auf ein physisches Geräteobjekt (PDO). Dieser Parameter verweist auf eine DEVICE_OBJECT Struktur, die ein physisches Gerät darstellt.
[out] NodeNumber
Ein Zeiger auf eine Position, in die die Routine die Knotennummer schreibt, wenn die Knotennummer bekannt ist.
Rückgabewert
IoGetDeviceNumaNode gibt STATUS_SUCCESS zurück, wenn der Anruf erfolgreich ist. Mögliche Fehlerrückgabewerte sind:
Rückgabecode | Beschreibung |
---|---|
|
Die Knotennummer dieses Geräts ist unbekannt. |
|
Der Pdo--Parameter ist NULL- oder verweist nicht auf ein gültiges Geräteobjekt. |
Bemerkungen
Bei einer nicht uniform memory access (NUMA)-Multiprozessorarchitektur ist ein Knoten eine Sammlung von Prozessoren, die schnellen Zugriff auf einen Speicherbereich freigeben. 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.
Ein Gerät (z. B. ein Netzwerkcontroller oder Speichercontroller), der mit einem bestimmten Knoten verbunden ist, kann schneller auf den Speicher in diesem Knoten zugreifen, als er auf den Speicher in anderen Knoten zugreifen kann. Der Pdo--Parameter verweist auf einen PDO, der die Busverbindung zwischen dem Gerät und dem Knoten darstellt.
Wenn ein NUMA-Multiprozessorsystem n Knoten enthält, werden die Knoten von 0 bis n-1 nummeriert. Rufen Sie zum Abrufen der höchsten Knotennummer die KeQueryHighestNodeNumber Routine auf.
Nachdem das System initialisiert wurde, bleibt die Knotenanzahl fest, während das System weiterhin ausgeführt wird. Diese Anzahl kann nur Speicherknoten umfassen, bei denen es sich um Knoten handelt, die Arbeitsspeicher enthalten, aber keine aktiven logischen Prozessoren. Ein Knoten, in dem alle logischen Prozessoren inaktiv sind, ist effektiv ein speichergeschützter Knoten, bis der erste Prozessor im Knoten ausgeführt wird. Gehen Sie nicht davon aus, dass der Knoten, mit dem ein Gerät verbunden ist, aktive Prozessoren enthält.
Wenn ein System keine NUMA-Architektur aufweist, schreibt die Routine null an die Position, auf die der NodeNumber-Parameter verweist. Ein Beispiel für eine Nicht-NUMA-Architektur ist ein symmetrisches Multiprozessorsystem (SMP).
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows 7 und höheren Versionen von Windows-Betriebssystemen. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |