storport.h () ACCESS_RANGE 结构

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 系统中,可能会导致总线上的其他设备初始化失败,甚至导致系统失败启动过程。

要求

   
Header storport.h (包括 Srb.h、Storport.h、Strmini.h)

请参阅

HwStorFindAdapter

PORT_CONFIGURATION_INFORMATION

StorPortGetDeviceBase