Compartilhar via


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
STATUS_NOT_FOUND
O número do nó deste dispositivo é desconhecido.
STATUS_INVALID_PARAMETER
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)

Confira também

DEVICE_OBJECT

KeQueryHighestNodeNumber