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 el dispositivo. A cambio, WdmlibIoConnectInterruptEx actualiza esta estructura para contener información sobre las interrupciones del dispositivo.

Valor devuelto

La función devuelve STATUS_SUCCESS si se ejecuta correctamente 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, Parameters->Version = 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 especificó 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 Version de la estructura a la que apunta Parameters . Parámetros->La versión debe ser una de CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED o CONNECT_FULLY_SPECIFIED.
STATUS_INVALID_PARAMETER_10
El llamador especificó un valor no válido para el décimo miembro de la estructura a la que apunta Parameters . 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.

Comentarios

WdmlibIoConnectInterruptEx se puede usar para registrar una rutina de control de interrupciones para las interrupciones tradicionales basadas en líneas (por ejemplo, compatibles con el bus PCI) y las interrupciones con señal de mensaje más recientes (como las compatibles con las versiones 2.2 y 3.0 de PCI).

Los controladores registran una rutina InterruptService para las interrupciones basadas en línea y una rutina 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 tan pronto como llame 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 se desenrede la llamada WdmlibIoConnectInterruptEx .

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

Requisitos

Requisito Value
Cliente mínimo compatible 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.
Plataforma de destino Universal
Encabezado iointex.h (incluya Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs

Consulte también

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx