Freigeben über


IoDisconnectInterrupt-Funktion (wdm.h)

Die IoDisconnectInterrupt-Routine gibt den Satz von Interruptobjekten eines Gerätetreibers frei, wenn das Gerät angehalten oder entfernt wird oder wenn der Treiber entladen wird.

Syntax

void IoDisconnectInterrupt(
  [in] PKINTERRUPT InterruptObject
);

Parameter

[in] InterruptObject

Ein Zeiger auf eine KINTERRUPT-Struktur . Der Aufrufer hat diesen Zeiger aus dem IoConnectInterrupt-Aufruf abgerufen, der zuvor den Interrupt oder die Interrupts verbunden hat.

Rückgabewert

Keine

Bemerkungen

Der Treiber sollte das Gerät so konfigurieren, dass interrupts nur dann ausgelöst werden, wenn diese Interrupts verbunden sind. Sollte ein Gerät nicht daran gehindert werden, Interrupts auszugeben, wenn die Unterbrechungen getrennt sind, kann dies zu Systeminstabilität führen. Wenn ein Gerät z. B. eine level-triggered interrupt line mit anderen Geräten teilt und das Gerät eine Interruptanforderung ausgibt, wenn die Unterbrechungen des Geräts getrennt werden, bestätigen die anderen Geräte in der Leitung den Interrupt nicht, und der Interrupt wird weiterhin ausgelöst. Vor dem Aufrufen von IoDisconnectInterrupt sollte der Treiber das Gerät so konfigurieren, dass keine Unterbrechungen mehr ausgegeben werden. Nach dem Aufruf von IoConnectInterrupt sollte der Treiber das Gerät so konfigurieren, dass interrupts ausgegeben werden.

Wenn der Treiber den Zeiger auf seine Interruptobjekte in der Geräteerweiterung seines Geräteobjekts oder in der Controllererweiterung seines Controllerobjekts gespeichert hat, muss er IoDisconnectInterrupt aufrufen, bevor ioDeleteDevice oder IoDeleteController aufgerufen wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlIoPassive4(wdm), PowerIrpDDis(wdm)

Weitere Informationen

IoConnectInterrupt

IoDeleteController

IoDeleteDevice

KINTERRUPT