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 总线数。 微型端口驱动程序不得修改此成员。 其值是系统分配的,因为平台可能有多个指定的 AdapterInterfaceTypeI/O 总线。

AdapterInterfaceType

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

BusInterruptLevel

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

BusInterruptVector

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

InterruptMode

指定 HBA 是使用 LevelSensitive 还是 闩锁(有时称为“边缘触发”)中断。 Storport 将此成员初始化为总线和设备的相应值,例如,PCIBusLevelSensitive。 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 不需要使用通过查询 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时,微型端口驱动程序必须根据需要将虚拟地址转换为物理地址。 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 例程的指针,该例程对于生成消息信号中断(MSI)的 HBA 的任何微型端口驱动程序是必需的。 如果 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)。 此字段可以从 Windows 10 版本 2004 开始使用。

ExtendedFlags1

保留供系统使用。

MaxNumberOfIO

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

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

  • 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 地址宽度。 此值可以从 Windows 10 版本 2004 开始使用。

言论

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

要求

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

另请参阅

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth