ACCESS_RANGE 结构 (storport.h)
ACCESS_RANGE描述 HBA 使用的内存或 I/O 端口范围。
语法
typedef struct _ACCESS_RANGE {
STOR_PHYSICAL_ADDRESS RangeStart;
ULONG RangeLength;
BOOLEAN RangeInMemory;
} ACCESS_RANGE, *PACCESS_RANGE;
成员
RangeStart
包含一个物理地址,该地址指定 HBA 所用范围的总线相对基址。 可以从 PORT_CONFIGURATION_INFORMATION 结构中的 AccessRanges 元素之一获取此成员的值。 这是可以传递到 StorPortGetDeviceBase 的地址。
RangeLength
指定范围中端口的大小、字节数或端口数。 微型端口驱动程序必须确保此值与适配器实际解码的范围匹配。 例如,如果 HBA 使用 7 个寄存器,但响应 8 个,则此成员应设置为 8。
RangeInMemory
指示当 为 TRUE 时,该范围在内存中,而不是在 I/O 空间中。 如果 为 FALSE,则范围在 I/O 空间中。
注解
每个ACCESS_RANGE都是PORT_CONFIGURATION_INFORMATION结构中的 AccessRanges 数组元素,传递给微型端口驱动程序的 HwStorFindAdapter 例程。
Storport 为访问范围分配内存,并初始化 AccessRanges 成员。 微型端口驱动程序的 HwStorFindAdapter 例程应仅使用提供的地址, 并且不应 尝试使用自己设计的地址在同一总线上查找其他 HBA。 当端口驱动程序提供范围信息时(尤其是在某些设备在 x86 真实模式下初始化的仅限 x86 的系统)时,尝试访问其他相对于总线的端口或内存范围可能会导致总线上的其他设备初始化失败,甚至导致系统启动过程失败。
要求
要求 | 值 |
---|---|
Header | storport.h (包括 Srb.h、Storport.h、Strmini.h) |