次の方法で共有


IoDisconnectInterrupt 関数 (wdm.h)

IoDisconnectInterrupt ルーチンは、デバイスが一時停止または削除されたとき、またはドライバーがアンロードされるときに、デバイス ドライバーの割り込みオブジェクトのセットを解放します。

構文

void IoDisconnectInterrupt(
  [in] PKINTERRUPT InterruptObject
);

パラメーター

[in] InterruptObject

KINTERRUPT 構造体へのポインター。 呼び出し元は、以前に割り込みまたは割り込みを接続した IoConnectInterrupt 呼び出しからこのポインターを取得しました。

戻り値

なし

解説

ドライバーは、これらの割り込みが接続されている場合にのみ割り込みを発行するようにデバイスを構成する必要があります。 割り込みが切断されたときにデバイスが割り込みを発行するのを防ぐのに失敗すると、システムが不安定になる可能性があります。 たとえば、デバイスがレベルによってトリガーされた割り込み回線を他のデバイスと共有し、デバイスの割り込みが切断されたときにデバイスが割り込み要求を発行した場合、回線上の他のデバイスは割り込みを確認せず、割り込みは引き続き発生します。 IoDisconnectInterrupt を呼び出す前に、ドライバーは割り込みの発行を停止するようにデバイスを構成する必要があります。 IoConnectInterrupt を呼び出した後、ドライバーは割り込みの発行を開始するようにデバイスを構成する必要があります。

ドライバーが割り込みオブジェクトへのポインターをデバイス オブジェクトのデバイス拡張機能またはコントローラー オブジェクトのコントローラー拡張機能に格納した場合、IoDeleteDevice または IoDeleteController を呼び出す前に IoDisconnectInterrupt を呼び出す必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), IrqlIoPassive4(wdm), PowerIrpDDis(wdm)

こちらもご覧ください

IoConnectInterrupt

IoDeleteController

IoDeleteDevice

KINTERRUPT