IRP_MN_STOP_DEVICE
すべての PnP ドライバーは、この IRP を処理する必要があります。
値
0x04
主要なコード
送信時
PnP マネージャーは、デバイスのハードウェア リソースを再構成できるように、デバイスを停止するために、この IRP を送信します。
Windows 2000 以降のシステムでは、PnP マネージャーは、前の IRP_MN_QUERY_STOP_DEVICE が正常に完了した場合にのみ、この IRP を送信します。
Windows 98/Me では、PnP マネージャーは、デバイスが無効になっているとき、およびデバイス スタックが IRP_MN_START_DEVICE 要求に失敗したときにも、この IRP を送信します。 開始に失敗した場合では、PnP マネージャーは、前の IRP_MN_QUERY_STOP_DEVICE 要求なしでこの IRP を送信します。
PnP マネージャーは、システム スレッドのコンテキストの IRQL PASSIVE_LEVEL でこの IRP を送信します。
入力パラメーター
なし
出力パラメーター
なし
I/O 状態ブロック
ドライバーは、Irp->IoStatus.Status を STATUS_SUCCESS に設定する必要があります。
操作
この IRP は、最初にデバイス スタックの最上位にあるドライバーによって処理され、その後スタック内の各下位ドライバーに渡されます。
この IRP に応答して、Windows 2000 以降のドライバーは、デバイスを停止して、I/O ポートや割り込みなど、デバイスで使用されているハードウェア リソースを解放します。
Windows 2000 以降では、停止 IRP は、デバイスのハードウェア リソースを解放して再構成できるようにする目的でのみ使用されます。 リソースが再構成されると、デバイスは再起動されます。 停止 IRP は、取り外し IRP の前処理となるものではありません。 PnP IRP がデバイスに送信される順序の詳細については、「プラグ アンド プレイ」を参照してください。
Windows 98/Me では、停止 IRP は、起動の失敗後、およびデバイスが無効になっている場合にも使用されます。 これらのオペレーティング システムで実行される WDM ドライバーは、デバイスを停止し、受信するすべての I/O を失敗させ、ユーザー モード インターフェイスを無効にして登録解除する必要があります。
ドライバーは、この IRP に失敗してはなりません。 ドライバーは、デバイスのハードウェア リソースを解放できない場合、直前のクエリ停止 IRP に失敗する必要があります。
停止 IRP の処理の詳細については、「デバイスの停止」を参照してください。
この IRP の送信
システムで使用するために予約されています。 ドライバーは、この IRP を送信することはできません。
要件
ヘッダー |
Wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |