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 上出现过多的协议错误 (AcceleratedTransfer 为 TRUE) ,则存储类驱动程序可以通过在 SRB 中设置SRB_FLAGS_DISABLE_SYNCH_TRANSFER来禁用同步传输。
要求
要求 | 值 |
---|---|
Header | ntddstor.h (包括 Ntddstor.h) |