次の方法で共有


記憶域周辺機器への要求の処理

基になるバス経由で要求を実行する記憶域ポート ドライバーを必要とするすべての要求のクラス ドライバーは、SCSI コマンド記述子ブロック (CDB) を含む SCSI 要求ブロック (SRB) を持つ IRP を設定する必要があります。 そのため、ほとんどのストレージ クラス ドライバーには、SRB をビルドするための 1 つ以上の内部 BuildRequest ルーチンがあります。 このようなルーチンの詳細については、「記憶域クラス ドライバーの BuildRequest ルーチン」を参照してください。

記憶域クラス ドライバーは、基になる記憶域ポート ドライバーに IRP_MJ_SCSI 要求も渡します。 このような要求は、記憶域フィルター ドライバーから送信される可能性があります。

SCSI パススルー要求の処理」で説明されている IOCTL_SCSI_PASS_THROUGH 要求の場合、クラス ドライバーは、IoCallDriver を使用してポート ドライバーに IRP_MJ_DEVICE_CONTROL 要求を渡す前に、IRP のポート ドライバーの I/O スタックの場所で IRP_MJ_DEVICE_CONTROL に MinorFunction コードを設定する役割を担います。

すべてのストレージ クラス ドライバーは、基になる HBA の機能を超える転送要求 (IRP_MJ_READやIRP_MJ_WRITE) を分割する役割を担います。 そのため、ほとんどのクラス ドライバーは、内部の SplitTransferRequest ルーチンも呼び出します。このルーチンは、記憶域クラス ドライバーの「SplitTransferRequest ルーチン」で説明されているか、読み取りおよび書き込み要求のディスパッチ ルーチンに同じ機能を実装します。

記憶域周辺機器への要求の処理の詳細については、次のトピックを参照してください。

SCSI パススルー要求の処理

記憶域周辺機器への PnP 要求の処理

記憶域周辺機器への電源要求の処理

記憶域要求のキュー