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 で過剰なプロトコル エラーが発生した場合 (AcceleratedTransferTRUE の場合)、ストレージ クラス ドライバーは、SRB で SRB_FLAGS_DISABLE_SYNCH_TRANSFERを設定することで同期転送を無効にすることができます。

要件

要件
Header ntddstor.h (Ntddstor.h を含む)

こちらもご覧ください

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR