Condividi tramite


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
STATUS_NOT_FOUND
Il numero di nodo di questo dispositivo è sconosciuto.
STATUS_INVALID_PARAMETER
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)

Vedi anche

DEVICE_OBJECT

KeQueryHighestNodeNumber