IRP_MN_SET_LOCK

バス ドライバーは、デバイスのロックをサポートする子デバイス (子 PDO) に対してこの IRP を処理する必要があります。 ファンクション ドライバーとフィルター ドライバーは、この要求を処理しません。

0x12

主要なコード

IRP_MJ_PNP

送信時

PnP マネージャーは、デバイスの取り出しを防止するためにデバイスをロックするよう、またはデバイスのロックを解除するようドライバに指示するために、この IRP を送信します。

PnP マネージャーは、任意のスレッド コンテキストで、IRQL PASSIVE_LEVEL でこの IRP を送信します。

入力パラメーター

IO_STACK_LOCATION 構造体の Parameters.SetLock.Lock メンバーは、デバイスをロック (TRUE) またはロック解除 (FALSE) するかどうかを指定するブール値です。

出力パラメーター

なし

I/O 状態ブロック

バス ドライバーが、Irp->IoStatus.Status を STATUS_SUCCESS に設定するか、適切なエラー状態に設定します。

成功した場合、ドライバーは Irp->IoStatus.Information を 0 に設定します。

バス ドライバーは、この IRP を処理しない場合、Irp->IoStatus.Status をそのままにして、IRP を完了します。

ファンクション ドライバーとフィルター ドライバーは、この IRP を処理しません。 このようなドライバーは、IoSkipCurrentIrpStackLocation を呼び出して、IRP を次のドライバーに渡します。 ファンクション ドライバーとフィルター ドライバーは、IoCompletion ルーチンの設定、Irp->IoStatus の変更、IRP の完了を行ってはなりません。

操作

ドライバーは、この IRP の成功を返す場合、IRP を完了する前に、デバイスがロックまたはロック解除されていることを確認します。

プラグ アンド プレイのマイナー IRP の処理に関する一般的な規則については、「プラグ アンド プレイ」を参照してください。

この IRP の送信

システムで使用するために予約されています。 ドライバーは、この IRP を送信することはできません。

要件

ヘッダー

Wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)