Función IoGetDeviceNumaNode (wdm.h)
La rutina IoGetDeviceNumaNode obtiene el número de nodo de un dispositivo.
Sintaxis
NTSTATUS IoGetDeviceNumaNode(
[in] PDEVICE_OBJECT Pdo,
[out] PUSHORT NodeNumber
);
Parámetros
[in] Pdo
Puntero a un objeto de dispositivo físico (PDO). Este parámetro apunta a una estructura de DEVICE_OBJECT que representa un dispositivo físico.
[out] NodeNumber
Puntero a una ubicación en la que la rutina escribe el número de nodo, si se conoce el número de nodo.
Valor devuelto
IoGetDeviceNumaNode devuelve STATUS_SUCCESS si la llamada se realiza correctamente. Entre los valores devueltos de error posibles se incluyen los siguientes:
Código devuelto | Descripción |
---|---|
|
El número de nodo de este dispositivo es desconocido. |
|
El parámetro Pdo es NULL o no apunta a un objeto de dispositivo válido. |
Comentarios
En una arquitectura de varios procesadores de acceso a memoria no uniforme (NUMA), un nodo es una colección de procesadores que comparten acceso rápido a una región de memoria. El acceso a la memoria no es uniforme porque un procesador puede acceder a la memoria en su nodo más rápido de lo que puede acceder a la memoria en otros nodos.
Un dispositivo (por ejemplo, un controlador de red o un controlador de almacenamiento) conectado a un nodo determinado puede acceder a la memoria de este nodo más rápido de lo que puede acceder a la memoria en otros nodos. El parámetro Pdo apunta a un PDO que representa la conexión de bus entre el dispositivo y el nodo.
Si un sistema de multiprocesador NUMA contiene n nodos, los nodos se numeran de 0 a n-1. Para obtener el número de nodo más alto, llame a la rutina KeQueryHighestNodeNumber .
Una vez inicializado el sistema, el número de nodos permanece fijo mientras el sistema continúa ejecutándose. Este recuento puede incluir nodos de solo memoria, que son nodos que contienen memoria, pero no procesadores lógicos activos. Un nodo en el que todos los procesadores lógicos están inactivos es eficazmente un nodo de solo memoria hasta que el primer procesador del nodo comienza a ejecutarse. No suponga que el nodo al que está conectado un dispositivo contiene procesadores activos.
Si un sistema no tiene una arquitectura NUMA, la rutina escribe cero en la ubicación a la que apunta el parámetro NodeNumber . Un ejemplo de arquitectura que no es NUMA es un sistema de multiprocesador simétrico (SMP).
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows 7 y versiones posteriores de los sistemas operativos Windows. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |