Compartilhar via


Função WdmlibIoConnectInterruptEx (iointex.h)

A função WdmlibIoConnectInterruptEx registra uma rotina de tratamento de interrupção para interrupções de um dispositivo.

Sintaxe

NTSTATUS WdmlibIoConnectInterruptEx(
  [in, out] PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);

Parâmetros

[in, out] Parameters

Ponteiro para uma estrutura IO_CONNECT_INTERRUPT_PARAMETERS que especifica a rotina de tratamento de interrupção e dispositivo. No retorno, WdmlibIoConnectInterruptEx atualiza essa estrutura para armazenar informações sobre as interrupções do dispositivo.

Valor de retorno

A função retorna STATUS_SUCCESS com êxito ou o valor de erro NTSTATUS apropriado em caso de falha. Os valores de erro possíveis incluem:

Código de retorno Descrição
STATUS_INVALID_DEVICE_REQUEST
A operação é inválida para o dispositivo especificado. Por exemplo, parâmetros ->versão = CONNECT_LINE_BASED e o sistema atribuiu várias mensagens de interrupção ao dispositivo.
STATUS_INVALID_PARAMETER
O chamador especificou um parâmetro inválido. Esse erro ocorre, por exemplo, quando o chamador especificou NULL para o objeto de dispositivo do dispositivo.
STATUS_INVALID_PARAMETER_1
O chamador especificou um valor inválido para o membro versão do da estrutura à qual parâmetros aponta. parâmetros->versão deve ser um dos CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED ou CONNECT_FULLY_SPECIFIED.
STATUS_INVALID_PARAMETER_10
O chamador especificou um valor inválido para o décimo membro da estrutura à qual parâmetros aponta. Esse erro ocorre, por exemplo, quando Parâmetros->FullySpecified.ProcessorEnableMask não tem nenhum conjunto de bits.
STATUS_NOT_FOUND
Um dos argumentos não foi encontrado. Por exemplo, o dispositivo especificado não tem interrupções ou o vetor de interrupção especificado não é atribuído a nenhum dispositivo.

Observações

WdmlibIoConnectInterruptEx pode ser usado para registrar uma rotina de tratamento de interrupção para interrupções tradicionais baseadas em linha (como a suportada pelo barramento PCI) e as interrupções mais recentes sinalizadas por mensagem (como as compatíveis com as versões PCI 2.2 e 3.0).

Os drivers registram uma rotina InterruptService para interrupções baseadas em linha e uma rotina de InterruptMessageService para interrupções sinalizadas por mensagem. Para obter mais informações sobre como especificar os membros dos parâmetros em cada caso, consulte IO_CONNECT_INTERRUPT_PARAMETERS.

WdmlibIoConnectInterruptEx atualiza os membros dos parâmetros para fornecer informações sobre as interrupções do dispositivo. Para obter mais informações sobre as informações fornecidas pelo WdmlibIoConnectInterruptEx, consulte IO_CONNECT_INTERRUPT_PARAMETERS.

Use WdmlibIoDisconnectInterruptEx para cancelar o registro de uma rotina registrada com WdmlibIoConnectInterruptEx.

O driver não deve programar seu dispositivo para gerar interrupções até que ele tenha conectado seu ISR. Portanto, o ISR não pode ser acionado antes de WdmlibIoConnectInterruptEx retorna. No entanto, há determinados dispositivos, como botões, que não são programáveis. Para esses dispositivos, o driver deve estar preparado para lidar com o ISR assim que chamar WdmlibIoConnectInterruptEx. A linha de interrupção já pode ser declarada quando WdmlibIoConnectInterruptEx é chamado e pode ser acionado imediatamente após a linha ser habilitada no controlador de interrupção, antes que a chamada WdmlibIoConnectInterruptEx desmarques.

Para obter mais informações sobre como registrar uma rotina de tratamento de interrupção, consulte Registrando umISR.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows Vista e versões posteriores do sistema operacional Windows. Os drivers que também devem funcionar no Windows 2000, Windows XP ou Windows Server 2003 podem, em vez disso, vincular ao Iointex.lib para usar a rotina.
da Plataforma de Destino Universal
cabeçalho iointex.h (incluem Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs

Consulte também

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx