STORAGE_ADAPTER_DESCRIPTOR構造体 (ntddstor.h)
STORAGE_ADAPTER_DESCRIPTOR 構造体は、デバイスのストレージ アダプター記述子データを取得する IOCTL_STORAGE_QUERY_PROPERTY 要求と組み合わせて使用されます。
構文
typedef struct _STORAGE_ADAPTER_DESCRIPTOR {
ULONG Version;
ULONG Size;
ULONG MaximumTransferLength;
ULONG MaximumPhysicalPages;
ULONG AlignmentMask;
BOOLEAN AdapterUsesPio;
BOOLEAN AdapterScansDown;
BOOLEAN CommandQueueing;
BOOLEAN AcceleratedTransfer;
#if ...
BOOLEAN BusType;
#else
UCHAR BusType;
#endif
USHORT BusMajorVersion;
USHORT BusMinorVersion;
UCHAR SrbType;
UCHAR AddressType;
} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;
メンバーズ
Version
構造体 STORAGE_ADAPTER_DESCRIPTORのバージョンを格納します。 メンバーが構造体に追加されると、このメンバーの値が変更されます。
Size
記述子の合計サイズをバイト単位で指定します。
MaximumTransferLength
ホスト バス アダプター (HBA) が 1 回の操作で転送できる最大バイト数を指定します。
MaximumPhysicalPages
HBA が 1 回の転送で管理できる不連続の物理ページの最大数を指定します (つまり、散布/収集サポートの範囲)。
AlignmentMask
転送に対する HBA のアラインメント要件を指定します。 記憶域クラス ドライバーは、デバイス オブジェクトの AlignmentRequirement フィールドをこの値に設定します。 アラインメント マスクは、転送操作に HBA で必要なバッファーのアラインメント制限を示します。 有効なマスク値は、0 (バイトアライン)、1 (単語アライン)、3 (DWORD アライン)、7 (二重 DWORD アライン) です。
AdapterUsesPio
HBA がプログラミング入力/出力 (PIO) を使用し、データ バッファーの物理メモリにマップされたシステム空間の仮想アドレスを使用する必要があることを TRUE 場合を示します。 FALSE 場合、HBA は PIO を使用しません。
AdapterScansDown
TRUE、HBA が BIOS デバイスをスキャンする場合、つまり、HBA が最も低いデバイス番号ではなく、最も高いデバイス番号でスキャンを開始することを示します。 FALSE すると、HBA は最小のデバイス番号でスキャンを開始します。 このメンバーは、レガシ ミニポート ドライバー用に予約されています。
CommandQueueing
TRUE、HBA が SCSI タグ付きキューや論理ユニットごとの内部キュー、または同等の SCSI 以外のキューをサポートすることを示します。 FALSE 場合、HBA は SCSI タグ付きキューも論理ユニットごとの内部キューもサポートしません。
AcceleratedTransfer
TRUE、I/O を高速化する方法として HBA が同期転送をサポートすることを示します。 FALSE 場合、HBA は I/O を高速化する方法として同期転送をサポートしません。
BusType
デバイスが接続されているバスの種類を示す STORAGE_BUS_TYPE 型の値を指定します。
BusMajorVersion
HBA のメジャー バージョン番号 (ある場合) を指定します。
BusMinorVersion
HBA のマイナー バージョン番号 (存在する場合) を指定します。
SrbType
HBA で使用される SCSI 要求ブロック (SRB) の種類を指定します。 このメンバーは、Windows 8 以降で有効です。
価値 | 意味 |
---|---|
SRB_TYPE_SCSI_REQUEST_BLOCK | HBA は SCSI 要求ブロックを使用します。 |
SRB_TYPE_STORAGE_REQUEST_BLOCK | HBA は拡張 SCSI 要求ブロックを使用します。 |
AddressType
HBA のアドレスの種類を指定します。 このメンバーは、Windows 8 以降で有効です。
価値 | 意味 |
---|---|
STORAGE_ADDRESS_TYPE_BTL8 | HBA では、8 ビット のバス、ターゲット、LUN のアドレス指定が使用されます。 |
備考
ストレージ クラス ドライバーは、データ転送操作の HBA からの構成情報を含む、この構造体を取得するために、I/O コントロール コード IOCTL_STORAGE_QUERY_PROPERTY を使用してデバイス制御要求を発行します。 構造体は、バスのデバイス オブジェクトから取得することも、基になるバスに要求を転送する機能デバイス オブジェクト (FDO) から取得することもできます。
同期転送をサポートする HBA で過剰なプロトコル エラーが発生した場合 (AcceleratedTransfer が TRUE 場合)、ストレージ クラス ドライバーは SRB でSRB_FLAGS_DISABLE_SYNCH_TRANSFERを設定することで同期転送を無効にすることができます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddstor.h (Ntddstor.h を含む) |
関連項目
IoBuildDeviceIoControlRequestの