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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de