Função KeQueryNodeActiveAffinity (wdm.h)
A rotina KeQueryNodeActiveAffinity obtém a afinidade atual do processador de um nó especificado em um sistema multiprocessador que tem uma arquitetura NUMA (acesso à memória não uniforme).
Sintaxe
void KeQueryNodeActiveAffinity(
[in] USHORT NodeNumber,
[out, optional] PGROUP_AFFINITY Affinity,
[out, optional] PUSHORT Count
);
Parâmetros
[in] NodeNumber
O número do nó. Se um sistema multiprocessador contiver n nós, os nós serão numerados de 0 a n-1. Para obter o número de nó mais alto (n-1) no sistema, chame a rotina KeQueryHighestNodeNumber .
[out, optional] Affinity
Um ponteiro para um buffer alocado pelo chamador no qual a rotina grava uma estrutura GROUP_AFFINITY . Essa estrutura contém o número do grupo que contém o nó identificado por NodeNumber e uma máscara de afinidade que indica quais processadores lógicos no nó estão ativos. Você pode definir esse parâmetro como NULL se não precisar dessas informações.
A partir do Windows Server 2022, um nó pode abranger mais de um grupo. Isso acontece quando um nó contém mais de 64 processadores. Nesse caso, o sistema operacional atribui um grupo primário para cada nó NUMA. O grupo primário é sempre aquele que contém mais processadores. Nesse caso, a estrutura de afinidade de grupo retornada é para o grupo primário do nó. Para obter mais informações sobre essa alteração no comportamento, consulte Suporte a NUMA. Se o código for executado em sistemas com mais de 64 processadores por nó NUMA, considere usar KeQueryNodeActiveAffinity2.
[out, optional] Count
Um ponteiro para um local no qual a rotina grava o número de processadores ativos representados na máscara de afinidade de nó apontada pela Affinity. Você pode definir esse parâmetro como NULL se não precisar dessas informações.
A partir do Windows Server 2022, a contagem retornada é para o grupo primário do nó. Veja mais informações sobre grupos primários acima.
Retornar valor
Nenhum
Comentários
O buffer alocado pelo chamador apontado pelo parâmetro Affinity deve ser grande o suficiente para conter uma estrutura GROUP_AFFINITY . O membro Mask dessa estrutura contém uma máscara de afinidade que indica quais processadores estão ativos. Se um processador estiver ativo, o bit correspondente na máscara será um. Todos os outros bits são zero.
Em uma arquitetura multiprocessador NUMA, 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.
O número de processadores em um nó não pode exceder o número de bits na máscara de afinidade na estrutura apontada por Affinity. A máscara de afinidade também determina o número máximo de processadores em um grupo.
Em Windows 10, versão 2004 e versões anteriores, se durante a inicialização do sistema, o Windows encontrar um nó de hardware NUMA que contenha mais processadores lógicos do que caberá em um grupo, o Windows dividirá o nó em nós lógicos menores. Cada um desses nós não excede o tamanho máximo do grupo. O parâmetro NodeNumber identifica um nó lógico. Para obter o número máximo de processadores por grupo, chame a rotina KeQueryMaximumProcessorCountEx .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows 7 e versões posteriores do Windows. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Qualquer nível |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de