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 a rotina WdmlibIoConnectInterruptEx ou IoConnectInterrupt .

[out] GroupAffinity

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

Retornar valor

WdmlibIoGetAffinityInterrupt 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_INVALID_PARAMETER
O parâmetro InterruptObject não aponta para um objeto de interrupção válido.

Comentários

Um driver de 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 do dispositivo. Esse conjunto de processadores é descrito por uma estrutura 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 a rotina WdmlibIoConnectInterruptEx ou IoConnectInterrupt .

No Windows 7, WdmlibIoConnectInterruptEx e IoConnectInterrupt atribuem interrupções de dispositivo somente a processadores lógicos no grupo 0. Isso ocorre 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 white paper Sistemas de suporte com mais de 64 processadores no site do WHDC.

Requisitos

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

Confira também

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx