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 o dispositivo e a rotina de tratamento de interrupção. No retorno, o WdmlibIoConnectInterruptEx atualiza essa estrutura para armazenar informações sobre as interrupções do dispositivo.

Retornar valor

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, Parameters->Version = 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 Version da estrutura para a qual Parameters aponta. Parâmetros->A versão deve ser uma das 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 para a qual Parameters aponta. Esse erro ocorre, por exemplo, quando Parameters->FullySpecified.ProcessorEnableMask não tem nenhum bit definido.
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.

Comentários

O WdmlibIoConnectInterruptEx pode ser usado para registrar uma rotina de tratamento de interrupção para interrupções tradicionais baseadas em linha (como as compatíveis com o 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 InterruptMessageService para interrupções sinalizadas por mensagem. Para obter mais informações sobre como especificar os membros de Parâmetros em cada caso, consulte IO_CONNECT_INTERRUPT_PARAMETERS.

WdmlibIoConnectInterruptEx atualiza os membros de Parâmetros para fornecer informações sobre as interrupções do dispositivo. Para obter mais informações sobre as informações fornecidas por 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 que WdmlibIoConnectInterruptEx retorne. 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 seja desenrolada.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte 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.
Plataforma de Destino Universal
Cabeçalho iointex.h (inclua Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDDIs

Confira também

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx