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