次の方法で共有


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 を含む)

関連項目

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR