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
HBA が BIOS デバイスをスキャンダウンすることを TRUE にすると 、つまり、HBA が最も低いデバイス番号ではなく、最も大きいデバイス番号でスキャンを開始することを示します。 FALSE の場合、HBA は最小のデバイス番号でスキャンを開始します。 このメンバーは、レガシ ミニポート ドライバー用に予約されています。
CommandQueueing
HBA が SCSI タグ付きキューや論理ユニットごとの内部キュー、または SCSI 以外の同等のキューをサポートする場合に TRUE を 示します。 FALSE の場合、HBA は SCSI タグ付きキューも論理ユニットごとの内部キューもサポートしません。
AcceleratedTransfer
I/O を高速化する方法として HBA が同期転送をサポートしていることを TRUE にする タイミングを示します。 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 のアドレス指定が使用されます。 |
注釈
ストレージ クラス ドライバーは、I/O 制御コード IOCTL_STORAGE_QUERY_PROPERTY を使用してデバイス制御要求を発行して、この構造体を取得します。この構造体には、データ転送操作用の HBA からの構成情報が含まれます。 構造体は、バスのデバイス オブジェクトから取得することも、基になるバスに要求を転送する機能デバイス オブジェクト (FDO) から取得することもできます。
同期転送をサポートする HBA で過剰なプロトコル エラーが発生した場合 (AcceleratedTransfer が TRUE の場合)、ストレージ クラス ドライバーは、SRB で SRB_FLAGS_DISABLE_SYNCH_TRANSFERを設定することで同期転送を無効にすることができます。
要件
要件 | 値 |
---|---|
Header | ntddstor.h (Ntddstor.h を含む) |