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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |