SCSI パススルー要求の処理
IOCTL_SCSI_PASS_THROUGH 要求または IOCTL_SCSI_PASS_THROUGH_DIRECT 要求を生成するクラス ドライバーは、次の処理を行います。
Parameters.DeviceIoControl.InputBufferLength のユーザー バッファーの長さを、少なくとも sizeof (SCSI_PASS_THROUGH) または sizeof (SCSI_PASS_THROUGH_DIRECT) に設定します
記憶域ポート ドライバーの I/O スタックの場所を通常どおりに設定します
IRP の MinorFunction を IRP_MJ_DEVICE_CONTROL に設定すると、要求が記憶域クラス ドライバーによって処理されたものとしてマークされます。
上位レベルのドライバーから IOCTL_SCSI_PASS_THROUGH または IOCTL_SCSI_PASS_THROUGH_DIRECT 要求を受信すると、記憶域クラス ドライバーの DispatchDeviceControl ルーチンは、埋め込み SCSI コマンド (CDB) の有効性をチェックし、コマンドがデバイスに対して有効な場合は、記憶域ポート ドライバーに要求を送信します。
IOCTL_SCSI_PASS_THROUGH または IOCTL_SCSI_PASS_THROUGH_DIRECT 要求のポート ドライバーの I/O スタックの場所に、IRP_MJ_DEVICE_CONTROL で MinorFunction フィールドが設定されていない場合、ポート ドライバーは、要求がアプリケーションから直接送信され、ターゲット デバイスの種類に対してクラス ドライバーが存在しないと見なします。 記憶域クラス ドライバーによって要求されたデバイスのポート ドライバーにこのような要求を直接送信することは、アプリケーション エラーです。
ポート ドライバーは、このようなパススルー要求に埋め込まれた SCSI コマンドの有効性をチェックしません。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示