Compartilhar via


Função WdmlibIoGetAffinityInterrupt (iointex.h)

A função WdmlibIoGetAffinityInterrupt obtém a afinidade de grupo de um objeto de interrupção.

Sintaxe

NTSTATUS WdmlibIoGetAffinityInterrupt(
  [in]  PKINTERRUPT     InterruptObject,
  [out] PGROUP_AFFINITY GroupAffinity
);

Parâmetros

[in] InterruptObject

Um ponteiro para um objeto de interrupção. Esse parâmetro aponta para uma estrutura KINTERRUPT que representa um registro de um driver para receber interrupções de dispositivo. A estrutura é opaca. O chamador obteve esse valor de ponteiro em uma chamada anterior para o WdmlibIoConnectInterruptEx ou rotina de IoConnectInterrupt.

[out] GroupAffinity

Um ponteiro para um buffer alocado por chamador no qual a rotina grava uma estrutura de GROUP_AFFINITY que especifica a afinidade de grupo do objeto de interrupção que InterruptObject aponta. Esse buffer deve ser grande o suficiente para conter a estrutura.

Valor de retorno

WdmlibIoGetAffinityInterrupt retornará STATUS_SUCCESS se a chamada for bem-sucedida. Os valores de retorno de erro possíveis incluem o seguinte:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
O parâmetro InterruptObject não aponta para um objeto de interrupção válido.

Observações

Um driver no modo kernel chama essa rotina para obter o conjunto de processadores lógicos nos quais a ISR (rotina de serviço de interrupção) registrada do driver pode receber interrupções de dispositivo. Esse conjunto de processadores é descrito por uma estrutura de GROUP_AFFINITY, que especifica um número de grupo e uma máscara de afinidade. Todos os processadores atribuídos a um registro ISR específico devem pertencer ao mesmo grupo.

O driver registrou o ISR em uma chamada anterior para o WdmlibIoConnectInterruptEx ou rotina de IoConnectInterrupt.

No Windows 7, WdmlibIoConnectInterruptEx e IoConnectInterrupt atribuir interrupções de dispositivo apenas a processadores lógicos no grupo 0. Isso é por padrão. Um driver pode especificar uma afinidade de interrupção diferente para seu dispositivo em um arquivo INF ou em sua resposta a uma solicitação de IRP_MN_FILTER_RESOURCE_REQUIREMENTS. Para obter mais informações sobre como alterar a afinidade de interrupção, consulte o sistemas de suporte que têm mais de 64 processadores white paper no site do WHDC.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows 7 e versões posteriores do Windows.
da Plataforma de Destino Windows
cabeçalho iointex.h (incluem Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL Qualquer nível

Consulte também

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx