PORT_CONFIGURATION_INFORMATION结构 (storport.h)

PORT_CONFIGURATION_INFORMATION 包含主机总线适配器 (HBA) 的配置信息。

语法

typedef struct _PORT_CONFIGURATION_INFORMATION {
  ULONG                                  Length;
  ULONG                                  SystemIoBusNumber;
  INTERFACE_TYPE                         AdapterInterfaceType;
  ULONG                                  BusInterruptLevel;
  ULONG                                  BusInterruptVector;
  KINTERRUPT_MODE                        InterruptMode;
  ULONG                                  MaximumTransferLength;
  ULONG                                  NumberOfPhysicalBreaks;
  ULONG                                  DmaChannel;
  ULONG                                  DmaPort;
  DMA_WIDTH                              DmaWidth;
  DMA_SPEED                              DmaSpeed;
  ULONG                                  AlignmentMask;
  ULONG                                  NumberOfAccessRanges;
  ACCESS_RANGE( )                          *AccessRanges[];
  PVOID                                  MiniportDumpData;
  PVOID                                  Reserved;
  UCHAR                                  NumberOfBuses;
  CCHAR                                  InitiatorBusId[8];
  BOOLEAN                                ScatterGather;
  BOOLEAN                                Master;
  BOOLEAN                                CachesData;
  BOOLEAN                                AdapterScansDown;
  BOOLEAN                                AtdiskPrimaryClaimed;
  BOOLEAN                                AtdiskSecondaryClaimed;
  BOOLEAN                                Dma32BitAddresses;
  BOOLEAN                                DemandMode;
  UCHAR                                  MapBuffers;
  BOOLEAN                                NeedPhysicalAddresses;
  BOOLEAN                                TaggedQueuing;
  BOOLEAN                                AutoRequestSense;
  BOOLEAN                                MultipleRequestPerLu;
  BOOLEAN                                ReceiveEvent;
  BOOLEAN                                RealModeInitialized;
  BOOLEAN                                BufferAccessScsiPortControlled;
  UCHAR                                  MaximumNumberOfTargets;
  UCHAR                                  SrbType;
  UCHAR                                  AddressType;
  UCHAR                                  ReservedUchars[2];
  ULONG                                  SlotNumber;
  ULONG                                  BusInterruptLevel2;
  ULONG                                  BusInterruptVector2;
  KINTERRUPT_MODE                        InterruptMode2;
  ULONG                                  DmaChannel2;
  ULONG                                  DmaPort2;
  DMA_WIDTH                              DmaWidth2;
  DMA_SPEED                              DmaSpeed2;
  ULONG                                  DeviceExtensionSize;
  ULONG                                  SpecificLuExtensionSize;
  ULONG                                  SrbExtensionSize;
  UCHAR                                  Dma64BitAddresses;
  BOOLEAN                                ResetTargetSupported;
  UCHAR                                  MaximumNumberOfLogicalUnits;
  BOOLEAN                                WmiDataProvider;
  STOR_SYNCHRONIZATION_MODEL             SynchronizationModel;
  PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE HwMSInterruptRoutine;
  INTERRUPT_SYNCHRONIZATION_MODE         InterruptSynchronizationMode;
  MEMORY_REGION                          DumpRegion;
  ULONG                                  RequestedDumpBufferSize;
  BOOLEAN                                VirtualDevice;
  UCHAR                                  DumpMode;
  UCHAR                                  DmaAddressWidth;
  ULONG                                  ExtendedFlags1;
  ULONG                                  MaxNumberOfIO;
  ULONG                                  MaxIOsPerLun;
  ULONG                                  InitialLunQueueDepth;
  ULONG                                  BusResetHoldTime;
  ULONG                                  FeatureSupport;
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;

成员

Length

PORT_CONFIGURATION_INFORMATION结构的大小(以字节为单位)。 此成员由 Storport 驱动程序初始化,也充当结构版本。

SystemIoBusNumber

HBA 连接到的 I/O 总线的系统分配数。 微型端口驱动程序不得修改此成员。 其值是系统分配的,因为平台可能有多个指定的 AdapterInterfaceType 的 I/O 总线。

AdapterInterfaceType

I/O 总线接口。 Storport 将此成员初始化为 HW_INITIALIZATION_DATA 结构中微型端口驱动程序指定的值。 微型端口驱动程序不得修改此成员。

BusInterruptLevel

总线相对中断请求级别。 Storport 对 HBA 的中断使用情况没有假设,因此默认值为零。 Storport 初始化此成员,微型端口驱动程序不得对其进行修改。

BusInterruptVector

HBA 返回的相对于总线的向量。 Storport 对 HBA 的中断使用情况没有假设,因此默认值为零。 此成员与为 HBA 设置 BusInterruptLevel 成员的驱动程序无关。 它与使用中断向量(如 PCIBus)的 I/O 总线类型上的 HBA 相关。 Storport 初始化此成员,微型端口驱动程序不得对其进行修改。

InterruptMode

指定 HBA 使用 LevelSensitive 还是 闩锁 (有时称为“边缘触发”) 中断。 Storport 将此成员初始化为总线和设备的相应值,例如 PCIBus的 LevelSensitive。 Storport 初始化此成员,微型端口驱动程序不得对其进行修改。

MaximumTransferLength

HBA 可以在单个传输操作中传输的最大字节数。 默认情况下,此成员的值SP_UNINITIALIZED_VALUE,表示最大传输大小不受限制。 如果 HBA 的传输支持有限,微型端口驱动程序必须根据 HBA 的传输容量重置此成员。 如果微型端口驱动程序的 HwStorInterrupt 例程无法禁用 HBA 上的中断,则可以在驱动程序开发期间调整此成员,以确保在该微型端口驱动程序的 ISR 中花费的时间不会降低整体系统性能。

NumberOfPhysicalBreaks

存储适配器可以在单个传输 (中管理的最大物理页数,换句话说,其散点/收集支持的范围) 。 默认情况下,此成员的值0x11。 微型端口驱动程序必须根据存储适配器的功能重置此成员。

DmaChannel

从属 HBA 使用的 DMA 通道。 默认情况下,此成员的值SP_UNINITIALIZED_VALUE。 Storport 初始化此成员,微型端口驱动程序不得对其进行修改。

DmaPort

从属 HBA 使用的 DMA 端口。 默认情况下,此成员的值SP_UNINITIALIZED_VALUE。 Storport 初始化此成员,微型端口驱动程序不得对其进行修改。

DmaWidth

如果 HBA 使用 DMA,则 DMA 传输的宽度。 默认情况下,此成员的值为零。 Storport 初始化此成员,微型端口驱动程序不得对其进行修改。

DmaSpeed

Eisa HBA 的 DMA 数据传输速度。 Storport 初始化此成员,微型端口驱动程序不得对其进行修改。

AlignmentMask

用于指示 HBA 对传输操作所需的缓冲区的对齐限制的掩码。 一些示例有效掩码值为 0 (字节对齐) 、1 个 (单词对齐) 、3 (DWORD 对齐) 和 7 (双 DWORD 对齐) 。 如果 HBA 支持散点/收集,微型端口驱动程序应设置此掩码。 wdm.h 中定义了以下允许的对齐掩码值:

含义
FILE_BYTE_ALIGNMENT (0x00000000) 数据是字节对齐的, (设备) 没有对齐要求
FILE_WORD_ALIGNMENT (0x00000001) 必须在 2 字节边界上对齐数据。
FILE_LONG_ALIGNMENT (0x00000003) 必须在 4 字节边界上对齐数据。
FILE_QUAD_ALIGNMENT (0x00000007) 数据必须在 8 字节边界上对齐。
FILE_OCTA_ALIGNMENT (0x0000000f) 数据必须在 16 字节边界上对齐。
FILE_32_BYTE_ALIGNMENT (0x0000001f) 必须在 32 字节边界上对齐数据。
FILE_64_BYTE_ALIGNMENT (0x0000003f) 必须在 64 字节边界上对齐数据。
FILE_128_BYTE_ALIGNMENT (0x0000007f) 必须在 128 字节边界上对齐数据。
FILE_256_BYTE_ALIGNMENT (0x000000ff) 必须在 256 字节边界上对齐数据。
FILE_512_BYTE_ALIGNMENT (0x000001ff) 数据必须在 512 字节边界上对齐。

NumberOfAccessRanges

指定数组中的 AccessRanges 元素数。

AccessRanges

指向 ACCESS_RANGE类型元素数组的指针。 Storport 为访问范围分配内存,并初始化此成员。 微型端口驱动程序不得修改此成员。

MiniportDumpData

指向故障转储或休眠期间使用的转储上下文的指针。

Reserved

保留系统 (预Windows 8) 。

NumberOfBuses

适配器控制的总线数。 默认情况下,此成员的值为零。 此成员的最大值为 SCSI_MAXIMUM_BUSES_PER_ADAPTER。 此成员从 Windows 8 开始可用。

InitiatorBusId[8]

发起程序总线 ID。 如果输入 InitiatorBusId[0] 具有值SP_UNINITIALIZED_VALUE,则如果微型端口驱动程序不需要使用特定值,则微型端口驱动程序无需使用特定值 (通过查询 HBA 确定的) 来分配默认值。 否则,微型端口驱动程序应尽可能使用端口驱动程序分配的任何非零值。 通常,此值由 为 MaximumNumberOfTargets 设置的值绑定。

ScatterGather

如果 为 TRUE,HBA 支持散点/收集。 Storport 将此成员初始化为 TRUE ,因为它的微型端口驱动程序必须支持散点/收集。 使用 Storport 的微型端口驱动程序不得修改此值。 (注意:在 Windows Server 2008 R2 和 Windows 7 之前的 Windows 版本中,此成员设置为 FALSE。在这种情况下,微型端口驱动程序必须将此成员设置为 TRUE。未将此成员设置为 TRUE 将导致 HBA 设备无法启动。)

Master

如果 为 TRUE,HBA 是主总线。 Storport 将此成员初始化为 TRUE ,因为它的微型端口驱动程序必须支持总线主控 DMA。 使用 Storport 的微型端口驱动程序不得修改此值。 (注意:在 Windows Server 2008 R2 和 Windows 7 之前的 Windows 版本中,此成员设置为 FALSE。在这种情况下,微型端口驱动程序必须将此成员设置为 TRUE。未将此成员设置为 TRUE 将导致 HBA 设备无法启动。)

CachesData

如果为 TRUE,HBA 会缓存数据或在外围设备上维护缓存状态。 如果 为 FALSE,HBA 不会缓存数据或在外围设备上维护缓存状态。 默认情况下,此成员的值为 FALSE。 如果这重置为 TRUE,Storport 会在发生某些系统事件(例如文件系统缓存刷新)时通知微型端口驱动程序。

AdapterScansDown

Storport 忽略此成员。

AtdiskPrimaryClaimed

Storport 不使用此成员,并且其微型端口驱动程序不得对其进行设置。

AtdiskSecondaryClaimed

Storport 不使用此成员,并且其微型端口驱动程序不得对其进行设置。

Dma32BitAddresses

如果 为 TRUE,HBA 具有 32 个地址行,并且可以访问物理地址大于0x00FFFFFF的内存。 Storport 将此成员初始化为 TRUE,因为它的微型端口驱动程序必须支持总线宽度 DMA。 微型端口驱动程序不得修改此值,因为如果未设置 Dma64BitAddresses 的值,则这是默认的 DMA 寻址。 注意:如果设备硬件仅支持 32 位地址,则必须将 Dma64BitAddresses 设置为 0。

DemandMode

指示系统 DMA 控制器是否应针对需求模式而不是单周期操作进行编程。 Storport 将此成员初始化为 FALSE,因为它不支持从属模式 DMA。 微型端口驱动程序不得修改此值。

MapBuffers

指示 Storport 是否将 SRB 数据缓冲区地址映射到系统虚拟地址。 微型端口驱动程序将此成员设置为以下值之一,以控制 SRB 数据缓冲区地址的映射。

含义
STOR_MAP_NO_BUFFERS 仅映射用于SRB_FUNCTION_IO_CONTROL和SRB_FUNCTION_WMI的缓冲区。
STOR_MAP_ALL_BUFFERS 已过时。 此值的效果与STOR_MAP_NON_READ_WRITE_BUFFERS相同。
STOR_MAP_NON_READ_WRITE_BUFFERS 映射除读取和写入请求之外的所有 IO 的缓冲区。
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE 映射所有 IO 的缓冲区,包括读取和写入请求。 支持启动的微型端口必须处理长度PAGE_SIZE的读取或写入请求。 这些读取或写入请求必须始终成功完成。 Storport 可能无法在低系统内存条件下映射缓冲区。 在这种情况下,SRB 中的 DataBuffer 成员将为 NULL。

NeedPhysicalAddresses

如果 为 TRUE,微型端口驱动程序必须根据 HBA 的要求将虚拟地址转换为物理地址。 Storport 将此成员初始化为 TRUE,因为它的微型端口驱动程序必须支持散点/收集列表。 微型端口不得修改此值。

TaggedQueuing

如果 为 TRUE,HBA 支持使用 SCSI 标记排队多个请求。 Storport 将此成员初始化为 TRUE ,因为它的微型端口驱动程序必须支持标记队列。 微型端口驱动程序不得修改此值。

AutoRequestSense

如果 为 TRUE,HBA 支持自动请求感知。 Storport 将此成员初始化为 TRUE ,因为它的微型端口驱动程序必须支持自动请求感知。 微型端口驱动程序不得修改此值。

MultipleRequestPerLu

如果 为 TRUE,HBA 支持每个逻辑单元的多个请求。 Storport 将此成员初始化为 TRUE ,因为它的微型端口驱动程序必须支持一次向逻辑单元发出的多个请求。 微型端口驱动程序不得修改此值。

ReceiveEvent

Storport 不使用此成员,并且其微型端口驱动程序不得设置它。

RealModeInitialized

Storport 不使用此成员,并且其微型端口驱动程序不得设置它。

BufferAccessScsiPortControlled

Storport 不使用此成员,并且其微型端口驱动程序不得设置它。

MaximumNumberOfTargets

适配器可以控制的目标外围设备数。 默认情况下,此成员的值SCSI_MAXIMUM_TARGETS_PER_BUS。 如果 HBA 的功能有限或值更大,则微型端口驱动程序可以将此成员重置为较小的值,指示 HBA 具有扩展的总线功能。 此成员的最大值为 255。

SrbType

要发送到微型端口驱动程序的 SRB 的类型。 从 Windows 8 开始可用。 此值设置为以下值之一:

含义
SRB_TYPE_SCSI_REQUEST_BLOCK 微型端口驱动程序接收标准 SRB。
SRB_TYPE_STORAGE_REQUEST_BLOCK 微型端口驱动程序接收扩展的 SRB。

AddressType

Storport 和微型端口驱动程序之间使用的地址类型。 从 Windows 8 开始可用。 这可以设置为以下值:

含义
STORAGE_ADDRESS_TYPE_BTL8 总线、目标和 LUN (BTL) 8 位寻址。

ReservedUchars[2]

保留系统使用 (预Windows 8) 。

SlotNumber

保留供 Storport 使用。 微型端口驱动程序不得修改此成员。

BusInterruptLevel2

保留供 Storport 使用。 微型端口驱动程序不得修改此成员。

BusInterruptVector2

保留供 Storport 使用。 微型端口驱动程序不得修改此成员。

InterruptMode2

保留供 Storport 使用。 微型端口驱动程序不得修改此成员。

DmaChannel2

保留供 Storport 使用。 微型端口驱动程序不得修改此成员。

DmaPort2

保留供 Storport 使用。 微型端口驱动程序不得修改此成员。

DmaWidth2

保留供 Storport 使用。 微型端口驱动程序不得修改此成员。

DmaSpeed2

保留供 Storport 使用。 微型端口驱动程序不得修改此成员。

DeviceExtensionSize

微型端口驱动程序为其每个适配器设备扩展所需的大小(以字节为单位)。 微型端口驱动程序使用其设备扩展作为驱动程序确定的 HBA 信息的存储。 特定于操作系统的端口驱动程序一次初始化每个设备扩展,当它首次分配扩展时,并使用零填充它。 它会在每次调用微型端口驱动程序时传递指向 HBA 特定设备扩展的指针。 给定的大小不包括任何每个逻辑单元存储请求的微型端口驱动程序。 每个逻辑单元存储的大小是通过 SpecificLuExtensionSize 字段指定的,本主题后面部分介绍。

Storport 不遵循 SCSIPort 的模型 (每当适配器停止时重新初始化设备扩展,因此对 HwScsiFindAdapter 的后续调用会收到一个零输出的设备扩展) 。 相反,Storport 仅在首次分配设备扩展时将设备扩展重置为零,因此只有给定适配器对 HwStorFindAdapter 的第一次调用接收零输出设备扩展。 后续调用 HwStorFindAdapter 和其他微型端口函数接收设备扩展,因为微型端口驱动程序上次修改。 这使微型端口驱动程序能够保持对 即插即用 (PnP) 停止和重启之间的适配器状态的了解,这可能导致微型端口驱动程序优化其初始化过程。

SpecificLuExtensionSize

微型端口驱动程序在其每个逻辑单元存储(如果有)处理大于 64K 的数据传输时所需的大小(以字节为单位)。 Storport 将此成员初始化为 StorPortInitialize 例程中发送的HW_INITIALIZATION_DATA结构同一成员中的值。

如果微型端口驱动程序不维护需要存储的每个 LU 信息,请将此成员设置为零。 此值基于 HBA 能够接收 32 位地址的假设,而不管控制器实际支持什么。 如果在 LUN 或 SRB 扩展中需要额外的空间来处理 64 位地址,则必须在将此值与 StorPortGetUncachedExtension 等例程一起使用之前对其进行适当的调整。

SrbExtensionSize

微型端口驱动程序在其每个请求存储(如果有)处理大于 64K 的数据传输时所需的大小(以字节为单位)。 Storport 将此成员初始化为 StorPortInitialize 例程中发送的HW_INITIALIZATION_DATA结构同一成员中的值。

在调用 StorPortGetUncachedExtension 之前设置此成员,以根据 NumberOfPhysicalBreaks 更改每个请求存储的大小。 如果微型端口驱动程序不维护需要存储的每个 SRB 信息,请将此成员设置为零。 此值基于 HBA 能够接收 32 位地址的假设,而不管控制器实际支持什么。 如果在 LUN 或 SRB 扩展中需要额外的空间来处理 64 位地址,则必须在将此值与 ScsiPortGetUncachedExtension 等例程一起使用之前对其进行适当的调整。

Dma64BitAddresses

如果设备硬件仅支持 32 位地址,则必须将 Dma64BitAddresses 设置为 0。 如果设备支持 64 位地址,此字段指示 HBA 是否能够访问大于 4 GB 的地址。

需要 Storport 适配器才能支持总线宽度 DMA。 因此,在 64 位或 PAE 计算机上,Storport 将 Dma64BitAddresses 初始化为SCSI_DMA64_SYSTEM_SUPPORTED指示适配器可以访问整个地址范围。 当微型端口驱动程序检测到此值时,它们必须返回同一个成员的下表中的一个值,以指示微型端口驱动程序支持 64 位 DMA 的端口驱动程序。 如果微型端口无法执行此操作,它可能会严重降低适配器的性能。

含义
SCSI_DMA64_MINIPORT_SUPPORTED 微型端口驱动程序支持 64 位物理地址进行 I/O 传输。
SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED 微型端口驱动程序支持完整的 64 位寻址。 这表示 I/O 请求可能具有物理地址 > 4GB。 未缓存的扩展、SenseInfo 和 Srb 扩展可能高于 4GB。 分配限制为 4GB 边界对齐,以防止它们跨越 4GB 边界。
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED 微型端口驱动程序支持完整的 64 位寻址。 这表示 I/O 请求可能具有物理地址 > 4GB。 未缓存的扩展、SenseInfo 和 Srb 扩展可能高于 4GB。 分配没有边界对齐要求。
SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED 微型端口驱动程序在单个 4GB 区域中支持 64 位寻址。 这表示 I/O 请求、未缓存的扩展、SenseInfo 和 Srb 扩展可能在单个 4GB 区域中具有 4GB 的物理地址 > 。

ResetTargetSupported

已过时。 请勿使用此成员。

MaximumNumberOfLogicalUnits

HBA 可以控制的每个目标的最大逻辑单位数。 默认情况下,此成员的值SCSI_MAXIMUM_LOGICAL_UNITS。 如果 HBA 的功能有限或值更大,则微型端口驱动程序可以将此成员重置为较小的值,指示 HBA 具有扩展的功能。 此成员的最大值为SCSI_MAXIMUM_LUNS_PER_TARGET。

WmiDataProvider

如果为 TRUE,微型端口驱动程序将响应 Windows Management Instrumentation (WMI) 请求。 Storport 将此成员初始化为 TRUE ,因为它的微型端口驱动程序必须支持 WMI。 此外,光纤通道适配器的微型端口驱动程序应通过 WMI 支持 SAN 管理 HBA API,并且需要基于主机的 RAID 适配器的微型端口驱动程序来支持 RAID 管理接口。

微型端口驱动程序不得修改此值。

SynchronizationModel

微型端口驱动程序支持的 I/O 同步模型。 可能的值如下:

含义
StorSynchronizeFullDuplex 微型端口支持全双工模式。
StorSynchronizeHalfDuplex 微型端口支持半双工模式。

HwMSInterruptRoutine

指向微型端口驱动程序的 HwMSInterruptRoutine 例程的指针,HBA 的任何微型端口驱动程序都需要该例程,该驱动程序生成消息信号中断 (MSIs) 。 如果 HBA 不生成 MSI,微型端口驱动程序会将此成员设置为 NULL

InterruptSynchronizationMode

指定中断同步模式 的INTERRUPT_SYNCHRONIZATION_MODE 值。 中断同步模式确定端口驱动程序如何同步消息信号中断。

DumpRegion

MEMORY_REGION结构,该结构描述小型端口驱动程序可以在故障转储或休眠期间使用的物理连续内存区域。

RequestedDumpBufferSize

要分配的未缓存扩展的大小(以字节为单位)以便在转储/休眠期间使用。

VirtualDevice

如果为 TRUE,则此设备后面没有实际硬件 (例如,没有 DMA 对象、中断、I/O 端口) 。 当 Storport 支持“虚拟”微型端口而不是控制真实硬件的微型端口时,在某些情况下的行为不同。

DumpMode

指示在转储模式下使用微型端口。 它可以具有以下值之一。

含义
DUMP_MODE_CRASH 转储模式下的微型端口用于故障转储。
DUMP_MODE_HIBER 转储模式下的微型端口用于休眠。
DUMP_MODE_MARK_MEMORY 转储模式下的微型端口用于标记所需的内存。
DUMP_MODE_RESUME 转储模式下的微型端口用于从休眠恢复。

DmaAddressWidth

适配器 DMA 地址的宽度。 提供此值时,微型 端口必须在 FeatureSupport 中指定STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED。 指定的值必须 (0 <DmaAddressWidth<= 64) 。 可以从版本 2004 Windows 10 开始使用此字段。

ExtendedFlags1

预留给系统使用。

MaxNumberOfIO

HBA 支持的最大未完成 I/O 操作数。 默认值由 Storport 设置为 1000。 如果 HBA 不支持 1000 个未完成的 I/O 操作,微型端口应将此调整为适当的较小值。

如果 HBA 可以支持超过 1000 个未完成的 I/O 操作,微型端口可将此成员增加到适配器硬件支持的任何值。 若要允许超过 1000 个未完成的 I/O 操作,HBA 必须支持在 Dma64BitAddresses 字段中设置的以下 64 位 DMA 寻址方法之一:

  • SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED
  • SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED
  • SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED

MaxIOsPerLun

LUN 上支持的最大 I/O 请求数。 Storport 会将此值设置为默认值 255。 如果 LUN 不支持 255 个未完成的 I/O 请求,微型端口应将此成员调整为适当的较小值。 此成员必须为 <MaxNumberOfIO。 若要支持 MaxIOsPerLun> 255,必须将 SrbType 字段设置为 SRB_TYPE_STORAGE_REQUEST_BLOCK。 从 Windows 8 开始可用。

InitialLunQueueDepth

初始 LUN I/O 队列深度。 Storport 将此值设置为物理微型端口的默认值 20,对于虚拟微型端口设置为 250。 此成员调整适配器上所有 LUN 的初始队列深度。 通过调用 StorPortSetDeviceQueueDepth 来设置单个 LUN 的队列深度。 此成员通常设置为与 MaxIOsPerLun 相同的值。 从 Windows 8 开始可用。

BusResetHoldTime

在检测到重置后暂停适配器的时间量(以微秒为单位)。 如果总线重置后不需要等待时间,请将此值设置为 0。 从 Windows 8 开始可用。

FeatureSupport

为适配器请求的 Storport 功能。 从 Windows 8 开始可用。 微型端口驱动程序可将此成员设置为以下任何值的按位掩码:

含义
STOR_ADAPTER_FEATURE_DEVICE_TELEMETRY 0x00000001 微型端口驱动程序支持存储设备遥测。
STOR_ADAPTER_FEATURE_STOP_UNIT_DURING_POWER_DOWN 0x00000002 在系统关闭期间接收STOP_UNIT命令的微型端口请求。
STOR_ADAPTER_UNCACHED_EXTENSION_NUMA_NODE_PREFERRED 0x00000004 微型端口驱动程序希望从适配器 NUMA 节点分配 UncachedExtension。
STOR_ADAPTER_DMA_V3_PREFERRED 0x00000008 微型端口驱动程序倾向于为适配器使用 DMA V3 内核 API。
STOR_ADAPTER_FEATURE_ABORT_COMMAND 0x00000010 微型端口驱动程序支持通过SRB_FUNCTION_ABORT_COMMAND中止未完成的命令。
STOR_ADAPTER_FEATURE_RICH_TEMPERATURE_THRESHOLD 0x00000020 适配器支持比 SCSI SPC4 规范中定义的更丰富的温度阈值信息。
STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED 0x00000040 微型端口驱动程序为适配器指定 了 DmaAddressWidth 中的 DMA 地址宽度。 此值可以从版本 2004 Windows 10开始使用。

注解

Storport 驱动程序分配并初始化此结构,提供尽可能多的 HBA 特定配置信息,并将结构传递给微型端口驱动程序的 HwStorFindAdapter 例程。 Storport 不支持非 PnP 设备,因此 HwStorFindAdapter 不搜索适配器。 其主体函数是初始化 PORT_CONFIGURATION_INFORMATION

要求

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

另请参阅

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth