Funzione IoGetDeviceNumaNode (wdm.h)
La routine IoGetDeviceNumaNode ottiene il numero di nodo di un dispositivo.
Sintassi
NTSTATUS IoGetDeviceNumaNode(
[in] PDEVICE_OBJECT Pdo,
[out] PUSHORT NodeNumber
);
Parametri
[in] Pdo
Puntatore a un oggetto dispositivo fisico (PDO). Questo parametro punta a una struttura DEVICE_OBJECT che rappresenta un dispositivo fisico.
[out] NodeNumber
Puntatore a una posizione in cui la routine scrive il numero di nodo, se il numero di nodo è noto.
Valore restituito
IoGetDeviceNumaNode restituisce STATUS_SUCCESS se la chiamata ha esito positivo. I valori restituiti degli errori possibili includono quanto segue:
Codice restituito | Descrizione |
---|---|
|
Il numero di nodo di questo dispositivo è sconosciuto. |
|
Il parametro Pdo è NULL o non punta a un oggetto dispositivo valido. |
Commenti
In un'architettura multiprocessore (NUMA) non uniforme, un nodo è una raccolta di processori che condividono l'accesso rapido a un'area di memoria. L'accesso alla memoria non è uniforme perché un processore può accedere alla memoria nel suo nodo più velocemente di quanto possa accedere alla memoria in altri nodi.
Un dispositivo (ad esempio, un controller di rete o un controller di archiviazione) connesso a un determinato nodo può accedere alla memoria in questo nodo più velocemente di quanto possa accedere alla memoria in altri nodi. Il parametro Pdo punta a un oggetto PDO che rappresenta la connessione del bus tra il dispositivo e il nodo.
Se un sistema multiprocessore NUMA contiene n nodi, i nodi vengono numerati da 0 a n-1. Per ottenere il numero di nodo più alto, chiamare la routine KeQueryHighestNodeNumber .
Dopo l'inizializzazione del sistema, il conteggio dei nodi rimane fisso mentre il sistema continua a essere eseguito. Questo conteggio può includere nodi di sola memoria, ovvero nodi che contengono memoria ma non processori logici attivi. Un nodo in cui tutti i processori logici sono inattivi è effettivamente un nodo di sola memoria fino all'avvio del primo processore nel nodo. Non si supponga che il nodo connesso a un dispositivo contenga processori attivi.
Se un sistema non dispone di un'architettura NUMA, la routine scrive zero nella posizione a cui punta il parametro NodeNumber . Un esempio di architettura non NUMA è un sistema multiprocessore simmetrico (SMP).
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows 7 e versioni successive dei sistemi operativi Windows. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |