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) 可在单个操作中传输的最大字节数。

MaximumPhysicalPages

指定 HBA 可以在单个传输 (中管理的最大不连续物理页数,换句话说,即其散点/收集支持) 的程度。

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

指示 HBA 支持同步传输作为加速 I/O 的一种方式时 为 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