Partager via


WdmlibIoConnectInterruptEx, fonction (iointex.h)

La fonction WdmlibIoConnectInterruptEx inscrit 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 IO_CONNECT_INTERRUPT_PARAMETERS qui spécifie l’appareil et la routine de gestion des interruptions. Lors du retour, WdmlibIoConnectInterruptEx met à jour cette structure pour contenir des informations sur les interruptions de l’appareil.

Valeur de retour

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 :

Retourner le code Description
STATUS_INVALID_DEVICE_REQUEST
L’opération n’est pas valide pour l’appareil spécifié. Par exemple, Paramètres->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 spécifié NULL pour l’objet 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->version doit être l’un des 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 n’a pas été trouvé. Par exemple, l’appareil spécifié n’a aucune interruption, ou le vecteur d’interruption spécifié n’est affecté à aucun appareil.

Remarques

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

Les pilotes inscrivent une routine InterruptService pour les interruptions basées sur les 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. Ainsi, l’ISR ne peut pas se déclencher avant WdmlibIoConnectInterruptEx retourne. 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ée et peut se déclencher immédiatement après l’activation de la ligne au niveau du contrôleur d’interruption, avant le WdmlibIoConnectInterruptEx unwinds d’appel.

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

Exigences

Exigence Valeur
client minimum pris en charge Disponible sur Windows Vista et 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 lier à Iointex.lib pour utiliser la routine.
plateforme cible Universel
d’en-tête iointex.h (include 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