Compartir a través de


Función WdmlibIoConnectInterruptEx (iointex.h)

La función WdmlibIoConnectInterruptEx registra una rutina de control de interrupciones para las interrupciones de un dispositivo.

Sintaxis

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

Parámetros

[in, out] Parameters

Puntero a una estructura de IO_CONNECT_INTERRUPT_PARAMETERS que especifica la rutina de control de interrupciones y del dispositivo. A cambio, WdmlibIoConnectInterruptEx actualiza esta estructura para contener información sobre las interrupciones del dispositivo.

Valor devuelto

La función devuelve STATUS_SUCCESS correcto o el valor de error NTSTATUS adecuado en caso de error. Entre los posibles valores de error se incluyen:

Código devuelto Descripción
STATUS_INVALID_DEVICE_REQUEST
La operación no es válida para el dispositivo especificado. Por ejemplo, Parámetros->Versión = CONNECT_LINE_BASED y el sistema ha asignado varios mensajes de interrupción al dispositivo.
STATUS_INVALID_PARAMETER
El autor de la llamada especificó un parámetro no válido. Este error se produce, por ejemplo, cuando el autor de la llamada especificado NULL para el objeto de dispositivo del dispositivo.
STATUS_INVALID_PARAMETER_1
El autor de la llamada especificó un valor no válido para el miembro Versión de la estructura a la que apunta Parámetros. Parámetros->versión debe ser uno de CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED o CONNECT_FULLY_SPECIFIED.
STATUS_INVALID_PARAMETER_10
El autor de la llamada especificó un valor no válido para el décimo miembro de la estructura a la que Parámetros apunta. Este error se produce, por ejemplo, cuando Parameters->FullySpecified.ProcessorEnableMask no tiene ningún bits establecido.
STATUS_NOT_FOUND
No se encontró uno de los argumentos. Por ejemplo, el dispositivo especificado no tiene interrupciones o el vector de interrupción especificado no está asignado a ningún dispositivo.

Observaciones

WdmlibIoConnectInterruptEx se puede usar para registrar una rutina de control de interrupciones para las interrupciones tradicionales basadas en línea (como las admitidas por el bus PCI) y las interrupciones más recientes (como las admitidas por las versiones 2.2 y 3.0 de PCI).

Los controladores registran una rutina de InterruptService para las interrupciones basadas en línea y una rutina de InterruptMessageService para las interrupciones señaladas por mensajes. Para obtener más información sobre cómo especificar los miembros de Parameters en cada caso, vea IO_CONNECT_INTERRUPT_PARAMETERS.

WdmlibIoConnectInterruptEx actualiza los miembros de Parameters para proporcionar información sobre las interrupciones del dispositivo. Para obtener más información sobre la información proporcionada por WdmlibIoConnectInterruptEx, vea IO_CONNECT_INTERRUPT_PARAMETERS.

Use WdmlibIoDisconnectInterruptEx para anular el registro de una rutina registrada con WdmlibIoConnectInterruptEx.

El controlador no debe programar su dispositivo para generar interrupciones hasta que haya conectado su ISR. Por lo tanto, el ISR no se puede activar antes de que se devuelva WdmlibIoConnectInterruptEx. Sin embargo, hay determinados dispositivos, como botones, que no son programables. Para esos dispositivos, el controlador debe estar preparado para controlar el ISR en cuanto llama a WdmlibIoConnectInterruptEx. Es posible que la línea de interrupción ya se aserte cuando se llama a WdmlibIoConnectInterruptEx y se puede activar inmediatamente después de habilitar la línea en el controlador de interrupción, antes de que el WdmlibIoConnectInterruptEx llame a desenredados.

Para obtener más información sobre cómo registrar una rutina de control de interrupciones, consulte Registro de un ISR.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows Vista y versiones posteriores del sistema operativo Windows. Los controladores que también deben funcionar en Windows 2000, Windows XP o Windows Server 2003 pueden vincularse a Iointex.lib para usar la rutina.
de la plataforma de destino de Universal
encabezado de iointex.h (incluya Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs

Consulte también

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

interruptService

WdmlibIoDisconnectInterruptEx