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