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都是传递给微型端口驱动程序的 HwStorFindAdapter 例程的 PORT_CONFIGURATION_INFORMATION 结构中的 AccessRanges 数组元素。

Storport 为访问范围分配内存,并初始化 AccessRanges 成员。 微型端口驱动程序的 HwStorFindAdapter 例程应仅使用提供的地址,并且 绝不 尝试使用自己设计的地址在同一总线上查找其他 HBA。 当端口驱动程序提供范围信息时,尝试访问其他总线相对端口或内存范围,尤其是在某些设备在 x86 实际模式下初始化的仅限 x86 的系统中,可能会导致总线上的其他设备无法初始化,甚至导致系统无法启动进程。

要求

要求 价值
标头 storport.h (包括 Srb.h、Storport.h、Strmini.h)

另请参阅

HwStorFindAdapter

PORT_CONFIGURATION_INFORMATION

StorPortGetDeviceBase