The IoDisconnectInterrupt routine releases a device driver's set of interrupt object(s) when the device is paused or removed, or when the driver is being unloaded.
void IoDisconnectInterrupt( PKINTERRUPT InterruptObject );
The driver should configure the device to issue interrupts only when these interrupts are connected. Failure to prevent a device from issuing interrupts when the interrupts are disconnected might cause system instability. For example, if a device shares a level-triggered interrupt line with other devices, and the device issues an interrupt request when the device's interrupts are disconnected, the other devices on the line will not acknowledge the interrupt and the interrupt will continue to fire. Before calling IoDisconnectInterrupt, the driver should configure the device to stop issuing interrupts. After calling IoConnectInterrupt, the driver should configure the device to start issuing interrupts.
If the driver stored the pointer to its interrupt object(s) in the device extension of its device object or in the controller extension of its controller object, it must call IoDisconnectInterrupt before it calls IoDeleteDevice or IoDeleteController.
|Minimum supported client||Available starting with Windows 2000.|
|Header||wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)|
|DDI compliance rules||IrqlIoPassive4, PowerIrpDDis, HwStorPortProhibitedDDIs|