Partager via


Fonction WdmlibIoConnectInterruptEx (iointex.h)

La fonction WdmlibIoConnectInterruptEx enregistre une routine de gestion des interruptions pour les interruptions d’un appareil.

Syntaxe

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

Paramètres

[in, out] Parameters

Pointeur vers une structure de IO_CONNECT_INTERRUPT_PARAMETERS qui spécifie la routine de gestion de l’appareil et des interruptions. Au retour, WdmlibIoConnectInterruptEx met à jour cette structure pour contenir des informations sur les interruptions de l’appareil.

Valeur retournée

La fonction retourne STATUS_SUCCESS en cas de réussite ou la valeur d’erreur NTSTATUS appropriée en cas d’échec. Les valeurs d’erreur possibles sont les suivantes :

Code de retour Description
STATUS_INVALID_DEVICE_REQUEST
L’opération n’est pas valide pour l’appareil spécifié. Par exemple, Parameters->Version = CONNECT_LINE_BASED, et le système a affecté plusieurs messages d’interruption à l’appareil.
STATUS_INVALID_PARAMETER
L’appelant a spécifié un paramètre non valide. Cette erreur se produit, par exemple, lorsque l’appelant a spécifié NULL pour l’objet d’appareil de l’appareil.
STATUS_INVALID_PARAMETER_1
L’appelant a spécifié une valeur non valide pour le membre Version de la structure vers laquelle parameters pointe. Paramètres->La version doit être CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED ou CONNECT_FULLY_SPECIFIED.
STATUS_INVALID_PARAMETER_10
L’appelant a spécifié une valeur non valide pour le dixième membre de la structure vers laquelle parameters pointe. Cette erreur se produit, par exemple, lorsque Parameters->FullySpecified.ProcessorEnableMask n’a pas de bits définis.
STATUS_NOT_FOUND
L’un des arguments est introuvable. Par exemple, l’appareil spécifié n’a aucune interruption ou le vecteur d’interruption spécifié n’est affecté à aucun appareil.

Remarques

WdmlibIoConnectInterruptEx peut être utilisé pour inscrire une routine de gestion des interruptions pour les interruptions traditionnelles basées sur les lignes (telles que celles prises en charge par le bus PCI) et les interruptions de message plus récentes (telles que celles prises en charge par les versions PCI 2.2 et 3.0).

Les pilotes inscrivent une routine InterruptService pour les interruptions basées sur des lignes et une routine InterruptMessageService pour les interruptions signalées par message. Pour plus d’informations sur la façon de spécifier les membres de Parameters dans chaque cas, consultez IO_CONNECT_INTERRUPT_PARAMETERS.

WdmlibIoConnectInterruptEx met à jour les membres de Parameters pour fournir des informations sur les interruptions de l’appareil. Pour plus d’informations sur les informations fournies par WdmlibIoConnectInterruptEx, consultez IO_CONNECT_INTERRUPT_PARAMETERS.

Utilisez WdmlibIoDisconnectInterruptEx pour annuler l’inscription d’une routine inscrite auprès de WdmlibIoConnectInterruptEx.

Le pilote ne doit pas programmer son appareil pour générer des interruptions tant qu’il n’a pas connecté son ISR. Par conséquent, l’ISR ne peut pas se déclencher avant le retour de WdmlibIoConnectInterruptEx . Toutefois, certains appareils, tels que les boutons, ne sont pas programmables. Pour ces appareils, le pilote doit être prêt à gérer l’ISR dès qu’il appelle WdmlibIoConnectInterruptEx. La ligne d’interruption peut déjà être déclarée lorsque WdmlibIoConnectInterruptEx est appelé et peut se déclencher immédiatement après l’activation de la ligne au niveau du contrôleur d’interruption, avant que l’appel WdmlibIoConnectInterruptEx ne se déroule.

Pour plus d’informations sur l’inscription d’une routine de gestion des interruptions, consultez Inscription d’un ISR.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible sur Windows Vista et les versions ultérieures du système d’exploitation Windows. Les pilotes qui doivent également fonctionner sur Windows 2000, Windows XP ou Windows Server 2003 peuvent à la place être liés à Iointex.lib pour utiliser la routine.
Plateforme cible Universal
En-tête iointex.h (inclure Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIS

Voir aussi

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx