Função IoGetDeviceNumaNode (wdm.h)
A rotina IoGetDeviceNumaNode obtém o número de nó de um dispositivo.
Sintaxe
NTSTATUS IoGetDeviceNumaNode(
[in] PDEVICE_OBJECT Pdo,
[out] PUSHORT NodeNumber
);
Parâmetros
[in] Pdo
Um ponteiro para um PDO (objeto de dispositivo físico). Esse parâmetro aponta para uma estrutura DEVICE_OBJECT que representa um dispositivo físico.
[out] NodeNumber
Um ponteiro para um local no qual a rotina gravará o número do nó, se o número do nó for conhecido.
Retornar valor
IoGetDeviceNumaNode retornará STATUS_SUCCESS se a chamada for bem-sucedida. Os possíveis valores retornados por erro incluem o seguinte:
Código de retorno | Descrição |
---|---|
|
O número do nó deste dispositivo é desconhecido. |
|
O parâmetro Pdo é NULL ou não aponta para um objeto de dispositivo válido. |
Comentários
Em uma arquitetura de multiprocessador NUMA (acesso não uniforme à memória), um nó é uma coleção de processadores que compartilham acesso rápido a uma região de memória. O acesso à memória não é uniforme porque um processador pode acessar a memória em seu nó mais rapidamente do que pode acessar a memória em outros nós.
Um dispositivo (por exemplo, um controlador de rede ou controlador de armazenamento) conectado a um nó específico pode acessar a memória nesse nó mais rapidamente do que pode acessar a memória em outros nós. O parâmetro Pdo aponta para um PDO que representa a conexão de barramento entre o dispositivo e o nó.
Se um sistema multiprocessador NUMA contiver n nós, os nós serão numerados de 0 a n-1. Para obter o número de nó mais alto, chame a rotina KeQueryHighestNodeNumber .
Depois que o sistema é inicializado, a contagem de nós permanece fixa enquanto o sistema continua a ser executado. Essa contagem pode incluir nós somente de memória, que são nós que contêm memória, mas sem processadores lógicos ativos. Um nó no qual todos os processadores lógicos estão inativos é efetivamente um nó somente de memória até que o primeiro processador no nó comece a ser executado. Não suponha que o nó ao qual um dispositivo está conectado contenha processadores ativos.
Se um sistema não tiver uma arquitetura NUMA, a rotina gravará zero no local para o qual o parâmetro NodeNumber aponta. Um exemplo de arquitetura não NUMA é um SMP (sistema multiprocessador simétrico).
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows 7 e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |