Fonction IoDisconnectInterrupt (wdm.h)

La routine IoDisconnectInterrupt libère l’ensemble d’objets d’interruption d’un pilote de périphérique lorsque l’appareil est suspendu ou supprimé, ou lorsque le pilote est en cours de déchargement.

Syntaxe

void IoDisconnectInterrupt(
  [in] PKINTERRUPT InterruptObject
);

Paramètres

[in] InterruptObject

Pointeur vers une structure KINTERRUPT . L’appelant a obtenu ce pointeur à partir de l’appel IoConnectInterrupt qui a précédemment connecté l’interruption ou les interruptions.

Valeur de retour

None

Remarques

Le pilote doit configurer l’appareil pour émettre des interruptions uniquement lorsque ces interruptions sont connectées. Le fait d’empêcher un appareil d’émettre des interruptions lorsque les interruptions sont déconnectées peut entraîner une instabilité du système. Par exemple, si un appareil partage une ligne d’interruption déclenchée par un niveau avec d’autres appareils et que l’appareil émet une demande d’interruption lorsque les interruptions de l’appareil sont déconnectées, les autres appareils de la ligne ne reconnaissent pas l’interruption et l’interruption continue de se déclencher. Avant d’appeler IoDisconnectInterrupt, le pilote doit configurer l’appareil pour arrêter d’émettre des interruptions. Après avoir appelé IoConnectInterrupt, le pilote doit configurer l’appareil pour commencer à émettre des interruptions.

Si le pilote a stocké le pointeur vers ses objets d’interruption dans l’extension d’appareil de son objet d’appareil ou dans l’extension de contrôleur de son objet contrôleur, il doit appeler IoDisconnectInterrupt avant d’appeler IoDeleteDevice ou IoDeleteController.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport),IrqlIoPassive4(wdm), PowerIrpDDis(wdm)

Voir aussi

IoConnectInterrupt

IoDeleteController

IoDeleteDevice

KINTERRUPT