ntddscsi.h ヘッダー

このヘッダーはストレージによって使用されます。 詳細については、次を参照してください。

ntddscsi.h には、次のプログラミング インターフェイスが含まれています。

IOCTL

 
IOCTL_ATA_PASS_THROUGH

アプリケーションがターゲット デバイスにほぼすべての ATA コマンドを送信できるようにします。次の制限があります。ターゲットの種類のデバイスのクラス ドライバーが存在_If、アプリケーションはクラス ドライバーに要求を送信する必要があります。
IOCTL_ATA_PASS_THROUGH_DIRECT

アプリケーションがほぼすべての ATA コマンドをターゲット デバイスに送信できるようにするIOCTL_ATA_PASS_THROUGH_DIRECT方法について説明します。
IOCTL_MINIPORT_PROCESS_SERVICE_IRP

この IOCTL は、仮想ミニポートで関心のあることが発生したときに通知を必要とするユーザー モード アプリケーションまたはカーネル モード ドライバーによって使用されます。
IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO

IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFOは、ミニポートがターゲット デバイスの耐久データを返すように要求するために、IOCTL_SCSI_MINIPORTコントロール コードと組み合わせて使用されるシステム定義の署名です。
IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL

IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOLは、プロトコル固有のデータをミニポートに送信するために、IOCTL_SCSI_MINIPORTコントロール コードと組み合わせて使用される署名です。
IOCTL_MPIO_PASS_THROUGH_PATH

この I/O 制御コードを使用すると、アプリケーションまたはカーネル ドライバーは、指定された実 LUN に SCSI コマンドを送信できます。
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT

この I/O 制御コードを使用して、アプリケーションまたはカーネル ドライバーが SCSI コマンドを指定された実際の LUN に送信できるようにする方法について説明します。
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX

IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX制御コード要求は、IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT要求の拡張バージョンです。 この要求は、双方向データ転送をサポートし、コマンド データ ブロック (CDB) > 16 バイトを許可します。
IOCTL_MPIO_PASS_THROUGH_PATH_EX

IOCTL_MPIO_PASS_THROUGH_PATH_EX制御コード要求は、IOCTL_MPIO_PASS_THROUGH_PATH要求の拡張バージョンです。 この要求は、双方向データ転送をサポートし、コマンド データ ブロック (CDB) > 16 バイトを許可します。
IOCTL_SCSI_GET_ADDRESS

特定の SCSI ターゲットのターゲット ID (TID) や論理ユニット番号 (LUN) などのアドレス情報を返します。
IOCTL_SCSI_GET_CAPABILITIES

基になる SCSI HBA の機能と制限を返します。
IOCTL_SCSI_GET_INQUIRY_DATA

特定の SCSI ホスト バス アダプター (HBA) 上のすべてのデバイスの SCSI 照会データを返します。
IOCTL_SCSI_MINIPORT

HBA 固有のミニポート ドライバーに特別な制御関数を送信します。
IOCTL_SCSI_MINIPORT_DIAGNOSTIC

IOCTL_SCSI_MINIPORT_DIAGNOSTIC制御コードは、ミニポートに対する診断要求を実行するために使用されます。
IOCTL_SCSI_MINIPORT_HYBRID

IOCTL_SCSI_MINIPORT_HYBRIDコントロール コードは、ハイブリッド ディスク制御要求を HBA 固有のミニポート ドライバーに送信します。
IOCTL_SCSI_MINIPORT_NVCACHE

ここで定義されている NV キャッシュ管理操作は、DeviceIoControl と IOCTL_SCSI_MINIPORT 制御コードを使用して、管理者特権で実行されているユーザー モード のアプリケーション コードによって呼び出すことができます。
IOCTL_SCSI_PASS_THROUGH

アプリケーションがターゲット デバイスにほぼすべての SCSI コマンドを送信できるようにします。次の制限があります。COPY などの Multitarget コマンドは許可されません。双方向データ転送操作はサポートされていません。デバイスのターゲットの種類のクラス ドライバーが存在する場合は、そのクラス ドライバーに要求を送信する必要があります。 したがって、アプリケーションは、その LU に接続されているデバイスの種類のクラス ドライバーがない場合にのみ、ターゲット論理ユニット (LU) のシステム ポート ドライバーにこの要求を直接送信できます。 システム ポート ドライバーは、パススルー要求を処理する前に、デバイスがクラス ドライバーによって要求されているかどうかを判断するためにチェックされません。 そのため、アプリケーションがデバイスを要求したクラス ドライバーをバイパスし、そのデバイスのパススルー要求をポート ドライバーに直接送信すると、クラス ドライバーとアプリケーションの間でデバイスの制御の競合が発生する可能性があります。 パススルー要求がアダプター デバイス オブジェクトに送信され、それがユーザー モードから送信され、クラス ドライバーによって要求された LU を対象とする場合、Storport は STATUS_INVALID_DEVICE_REQUESTで要求を失敗させます。 要求が LU デバイス オブジェクトに送信された場合、カーネル モードで送信された場合、または要求されていない LU を対象とする場合は、ミニポート ドライバーに渡されます。この要求は、CDB がメモリに直接アクセスする基になるミニポート ドライバーを必要とする場合は使用できません。 呼び出し元の CDB でメモリへの直接アクセスが必要になる場合は、代わりに IOCTL_SCSI_PASS_THROUGH_DIRECT を使用します。 アプリケーションは、パススルー要求を非同期的に送信しようとしてはなりません。 すべてのパススルー要求は同期である必要があります。 アプリケーションでは、パススルー要求をデバイスに送信するための管理特権は必要ありませんが、デバイスへの読み取り/書き込みアクセス権が必要です。 呼び出し元のアプリケーションは SCSI コマンド記述子ブロックを作成します。このブロックには、CHECK CONDITION が発生した場合に要求検出データの要求を含めることができます。 IOCTL_SCSI_PASS_THROUGHは、バッファーに格納されたデバイス制御要求です。 システム メモリ内のバッファリングをバイパスするには、呼び出し元は IOCTL_SCSI_PASS_THROUGH_DIRECT を使用する必要があります。 IOCTL_SCSI_PASS_THROUGH_DIRECT要求を処理する場合、システムはユーザー メモリ内のバッファーをロックダウンし、デバイスはこのメモリに直接アクセスします。 この要求は通常、少量のデータ (<16K) を転送するために使用されます。アプリケーションは、IRP_MJ_DEVICE_CONTROL要求を使用してこの要求を送信できます。記憶域クラス ドライバーは、要求がストレージ クラス ドライバーによって処理されたことを示すために、マイナー IRP 番号をIRP_MN_SCSI_CLASSに設定します。
IOCTL_SCSI_PASS_THROUGH_DIRECT

アプリケーションがターゲット デバイスにほぼすべての SCSI コマンドを送信できるようにします。次の制限があります。COPY などの Multitarget コマンドは許可されません。双方向データ転送操作はサポートされていません。デバイスのターゲットの種類のクラス ドライバーが存在する場合は、そのクラス ドライバーに要求を送信する必要があります。 したがって、アプリケーションは、その LU に接続されているデバイスの種類のクラス ドライバーがない場合にのみ、ターゲット論理ユニットのシステム ポート ドライバーに直接この要求を送信できます。入力 CDB で基になるミニポート ドライバーがメモリに直接アクセスする必要がある場合は、この要求を行う必要があります。呼び出し元のアプリケーションは SCSI コマンド記述子ブロックを作成します。このブロックには、CHECK CONDITION が発生した場合に要求検出データの要求を含めることができます。 CDB がデータ転送操作を要求する場合、呼び出し元は、ミニポート ドライバーがデータを直接転送できるアダプター デバイスアラインバッファーを設定する必要があります。 この要求は、通常、大量のデータ (>16K) を転送するために使用されます。アプリケーションは、IRP_MJ_DEVICE_CONTROL要求を使用してこの要求を送信できます。 記憶域クラス ドライバーは、要求がストレージ クラス ドライバーによって処理されたことを示すために、マイナー IRP 番号をIRP_MN_SCSI_CLASSに設定します。
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX

IOCTL_SCSI_PASS_THROUGH_DIRECT_EX制御コード要求は、IOCTL_SCSI_PASS_THROUGH_DIRECT要求の拡張バージョンです。 この要求は、双方向データ転送をサポートし、コマンド データ ブロック (CDB) > 16 バイトを許可します。
IOCTL_SCSI_PASS_THROUGH_EX

IOCTL_SCSI_PASS_THROUGH_EX制御コード要求は、IOCTL_SCSI_PASS_THROUGH要求の拡張バージョンです。 この要求は、双方向データ転送をサポートし、コマンド データ ブロック (CDB) > 16 バイトを許可します。
IOCTL_SCSI_RESCAN_BUS

バス上の LUN を再スキャンします。

構造

 
ATA_PASS_THROUGH_DIRECT

ATA_PASS_THROUGH_DIRECT構造体は、埋め込み ATA コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_ATA_PASS_THROUGH_DIRECT要求と組み合わせて使用されます。
ATA_PASS_THROUGH_EX

ATA_PASS_THROUGH_EX構造体は、埋め込み ATA コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_ATA_PASS_THROUGH要求と組み合わせて使用されます。
HYBRID_INFORMATION

HYBRID_INFORMATION構造体には、ハイブリッド ディスク機能の情報が含まれています。
IO_SCSI_CAPABILITIES

IO_SCSI_CAPABILITIES構造体は、基になる SCSI ホスト アダプターの機能と制限事項を取得するために、IOCTL_SCSI_GET_CAPABILITIES要求と組み合わせて使用されます。注 SCSI ポート ドライバーと SCSI ミニポート ドライバー モデルは、今後変更または使用できない可能性があります。 代わりに、Storport ドライバー モデルと Storport ミニポート ドライバー モデルを使用することをお勧めします。
MPIO_PASS_THROUGH_PATH

MPIO_PASS_THROUGH_PATH構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_MPIO_PASS_THROUGH_PATH要求と共に使用されます。
MPIO_PASS_THROUGH_PATH_DIRECT

MPIO_PASS_THROUGH_PATH_DIRECT構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_MPIO_PASS_THROUGH_PATH_DIRECT要求と共に使用されます。
MPIO_PASS_THROUGH_PATH_DIRECT_EX

MPIO_PASS_THROUGH_PATH_DIRECT_EX構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX要求と共に使用されます。
MPIO_PASS_THROUGH_PATH_EX

MPIO_PASS_THROUGH_PATH_EX構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_MPIO_PASS_THROUGH_PATH_EX要求と共に使用されます。
NTSCSI_UNICODE_STRING

ストレージ ポート ドライバーは、NTSCSI_UNICODE_STRING構造体を使用して Unicode 文字列を定義できます。
NV_FEATURE_PARAMETER

NV_FEATURE_PARAMETER構造体は、デバイスから NV Cache Manager 機能のサポート情報を取得するために、IOCTL_SCSI_MINIPORT_NVCACHE要求と組み合わせて使用されます。
NVCACHE_REQUEST_BLOCK

NVCACHE_REQUEST_BLOCK構造は、ハイブリッド ハード ディスク ドライブ (H-HDD) デバイス (Microsoft ReadyDrive テクノロジなど) を管理するためのIOCTL_SCSI_MINIPORT要求と組み合わせて使用されます。
SCSI_ADAPTER_BUS_INFO

SCSI_ADAPTER_BUS_INFO構造体は、特定の SCSI バス上のすべてのデバイスの SCSI 照会データを取得するために、IOCTL_SCSI_GET_INQUIRY_DATA要求と組み合わせて使用されます。
SCSI_ADDRESS

SCSI_ADDRESS構造体は、特定の SCSI ターゲットのターゲット ID (TID) や論理ユニット番号 (LUN) などのアドレス情報を取得するために、IOCTL_SCSI_GET_ADDRESS要求と組み合わせて使用されます。
SCSI_BUS_DATA

SCSI_BUS_DATA構造体は、特定の SCSI バス上のすべてのデバイスの SCSI 照会データを取得するために、IOCTL_SCSI_GET_INQUIRY_DATA要求とSCSI_ADAPTER_BUS_INFO構造体と組み合わせて使用されます。
SCSI_INQUIRY_DATA

SCSI_INQUIRY_DATA構造体は、特定の SCSI バス上のすべてのデバイスの SCSI 照会データを取得するために、IOCTL_SCSI_GET_INQUIRY_DATA要求と組み合わせて使用されます。
SCSI_PASS_THROUGH

SCSI_PASS_THROUGH構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_SCSI_PASS_THROUGH要求と組み合わせて使用されます。
SCSI_PASS_THROUGH_DIRECT

SCSI_PASS_THROUGH_DIRECT構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_SCSI_PASS_THROUGH_DIRECT要求と組み合わせて使用されます。
SCSI_PASS_THROUGH_DIRECT_EX

SCSI_PASS_THROUGH_DIRECT_EX構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_SCSI_PASS_THROUGH_DIRECT_EX要求と組み合わせて使用されます。
SCSI_PASS_THROUGH_EX

SCSI_PASS_THROUGH_EX構造体は、埋め込み SCSI コマンドをターゲット デバイスに送信するようにポート ドライバーに指示するIOCTL_SCSI_PASS_THROUGH_EX要求と組み合わせて使用されます。
SRB_IO_CONTROL

SRB_IO_CONTROL構造体
STORAGE_DIAGNOSTIC_MP_REQUEST

ミニポートに対する診断要求について説明します。 STORAGE_DIAGNOSTIC_MP_REQUEST構造体は、IOCTL_SCSI_MINIPORT_DIAGNOSTIC要求の入出力バッファーに用意されています。
STORAGE_ENDURANCE_DATA_DESCRIPTOR

ミニポートは、STORAGE_ENDURANCE_DATA_DESCRIPTORを使用して、デバイスの耐久性情報をストレージ ポート ドライバーに報告します。
STORAGE_ENDURANCE_INFO

ミニポートは、 STORAGE_ENDURANCE_INFO 構造体を使用して、デバイスの持久力情報を報告します。

列挙

 
MP_STORAGE_DIAGNOSTIC_LEVEL

MP_STORAGE_DIAGNOSTIC_LEVEL列挙を使用すると、呼び出し元はプロバイダーが返す必要があるデータの種類を制御できます。
MP_STORAGE_DIAGNOSTIC_TARGET_TYPE

MP_STORAGE_DIAGNOSTIC_TARGET_TYPE列挙は、ストレージ診断のターゲットの種類を指定します。