IoDisconnectInterrupt routine

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.

Syntax


VOID IoDisconnectInterrupt(
  _In_ PKINTERRUPT InterruptObject
);

Parameters

InterruptObject [in]

A pointer to a KINTERRUPT structure. The caller obtained this pointer from the IoConnectInterrupt call that previously connected the interrupt or interrupts.

Return value

None.

Remarks

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.

Requirements

Target platform

Universal

Version

Available starting with Windows 2000.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

NtosKrnl.lib

DLL

NtosKrnl.exe

IRQL

PASSIVE_LEVEL

DDI compliance rules

IrqlIoPassive4, PowerIrpDDis, HwStorPortProhibitedDDIs

See also

IoConnectInterrupt
IoDeleteController
IoDeleteDevice
KINTERRUPT

 

 

Send comments about this topic to Microsoft

Show: