VIRTUAL_HW_INITIALIZATION_DATA结构 (storport.h)

VIRTUAL_HW_INITIALIZATION_DATA 结构包含特定于每个虚拟微型端口驱动程序的信息。

语法

typedef struct _VIRTUAL_HW_INITIALIZATION_DATA {
  ULONG                       HwInitializationDataSize;
  INTERFACE_TYPE              AdapterInterfaceType;
  PHW_INITIALIZE              HwInitialize;
  PHW_STARTIO                 HwStartIo;
  PHW_INTERRUPT               HwInterrupt;
  PVIRTUAL_HW_FIND_ADAPTER    HwFindAdapter;
  PHW_RESET_BUS               HwResetBus;
  PHW_DMA_STARTED             HwDmaStarted;
  PHW_ADAPTER_STATE           HwAdapterState;
  ULONG                       DeviceExtensionSize;
  ULONG                       SpecificLuExtensionSize;
  ULONG                       SrbExtensionSize;
  ULONG                       NumberOfAccessRanges;
  PVOID                       Reserved;
  UCHAR                       MapBuffers;
  BOOLEAN                     NeedPhysicalAddresses;
  BOOLEAN                     TaggedQueuing;
  BOOLEAN                     AutoRequestSense;
  BOOLEAN                     MultipleRequestPerLu;
  BOOLEAN                     ReceiveEvent;
  USHORT                      VendorIdLength;
  PVOID                       VendorId;
  union {
    USHORT ReservedUshort;
    USHORT PortVersionFlags;
  };
  USHORT                      DeviceIdLength;
  PVOID                       DeviceId;
  PHW_ADAPTER_CONTROL         HwAdapterControl;
  PHW_BUILDIO                 HwBuildIo;
  PHW_FREE_ADAPTER_RESOURCES  HwFreeAdapterResources;
  PHW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;
  PHW_COMPLETE_SERVICE_IRP    HwCompleteServiceIrp;
  PHW_INITIALIZE_TRACING      HwInitializeTracing;
  PHW_CLEANUP_TRACING         HwCleanupTracing;
} VIRTUAL_HW_INITIALIZATION_DATA, *PVIRTUAL_HW_INITIALIZATION_DATA;

成员

HwInitializationDataSize

指定此结构的大小(以字节为单位),sizeof() 返回。 此成员指示虚拟微型端口驱动程序使用的此结构的版本。 虚拟微型端口驱动程序的 DriverEntry 例程应为端口驱动程序设置此成员的值。

AdapterInterfaceType

对于 storport 虚拟微型端口驱动程序,AdapterInterfaceType 的值几乎始终 内部。 这是因为 Storport 驱动程序不支持旧总线。

请注意,因此,与 SCSI 端口驱动程序一起使用的大多数适配器接口类型对 Storport 驱动程序无效。 具体而言,Storport 不支持:

  • Isa
  • Eisa
  • MicroChannel
  • TurboChannel

此外,与 SCSI 端口大小写不同,与 Storport 驱动程序一起使用的虚拟微型端口驱动程序不需要为以下成员提供值:

  • VendorIdLength
  • VendorId
  • DeviceIdLength
  • DeviceId

HwInitialize

指向虚拟微型端口驱动程序 HwStorInitialize 例程的指针,这是所有虚拟微型端口驱动程序所需的入口点。

HwStartIo

指向虚拟微型端口驱动程序 HwStorStartIo 例程的指针,这是所有虚拟微型端口驱动程序所需的入口点。

HwInterrupt

未使用。 虚拟微型端口驱动程序不会处理中断。

HwFindAdapter

指向虚拟微型端口驱动程序 VirtualHwStorFindAdapter 例程的指针,这是所有虚拟微型端口驱动程序所需的入口点。

HwResetBus

指向虚拟微型端口驱动程序 HwStorResetBus 例程的指针,该例程是所有虚拟微型端口驱动程序所需的入口点。

HwDmaStarted

未使用。 虚拟微型端口驱动程序不执行 DMA。

HwAdapterState

Storport 驱动程序不支持旧驱动程序。 因此,此成员必须 NULL

DeviceExtensionSize

指定虚拟微型端口驱动程序为其每个适配器非分页设备扩展所需的大小(以字节为单位)。 虚拟微型端口驱动程序使用其设备扩展作为驱动程序确定的适配器信息的存储。 特定于作系统的端口驱动程序初始化它使用零分配的每个设备扩展,并在大多数调用虚拟微型端口驱动程序时将指针传递给适配器特定的设备扩展。 给定大小不包括每个逻辑单元存储请求的任何虚拟微型端口驱动程序。

SpecificLuExtensionSize

指定虚拟微型端口驱动程序在其每逻辑单元非分页存储(如果有)时所需的大小(以字节为单位)。 虚拟微型端口驱动程序可以使用其逻辑单元(LU)扩展作为虚拟总线上有关外围设备的驱动程序确定 LU 信息的存储。 特定于作系统的端口驱动程序初始化它以零分配的每个 LU 扩展。 如果虚拟微型端口驱动程序不维护需要存储的每个 LU 信息,请将此成员保留为零。

SrbExtensionSize

指定虚拟微型端口驱动程序针对每个请求的非分页存储(如果有)所需的大小(以字节为单位)。 由于使用 Storport 驱动程序的虚拟微型端口驱动程序必须支持散点/收集列表,并且每个 SRB 散点/收集列表通常分配在 SRB 扩展中,因此此成员很少为零。

NumberOfAccessRanges

未使用。 虚拟微型端口驱动程序不支持硬件。

Reserved

保留供系统使用。

MapBuffers

名字 描述
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 除 READ 和 WRITE 外,IO 请求的映射缓冲区。
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE 映射所有 IO 请求的缓冲区,包括 READ 和 WRITE。 微型端口驱动程序通常使用此设置。

NeedPhysicalAddresses

未使用。 虚拟微型端口驱动程序不支持硬件。

TaggedQueuing

必须设置为 true 。 值为 TRUE 指示虚拟微型端口驱动程序支持带标记的队列。

AutoRequestSense

必须设置为 true 。 值为 TRUE 表示 HBA 可以执行请求感知作,而无需显式请求执行此作。

MultipleRequestPerLu

必须设置为 true TRUE 的值指示虚拟微型端口驱动程序可以为每个逻辑单元(LU)排队多个请求。

ReceiveEvent

此值不再使用,并且可以 设置为 TRUEFALSE

VendorIdLength

供应商标识符的长度(以字节为单位)。

VendorId

供应商标识符。

ReservedUshort

保留。

PortVersionFlags

指示端口驱动程序支持的功能的标志的位图。 目前,唯一可用的标志是SP_VER_TRACE_SUPPORT,指示端口驱动程序支持跟踪。

DeviceIdLength

设备标识符的长度(以字节为单位)。

DeviceId

设备标识符。

HwAdapterControl

指向虚拟微型端口驱动程序的 HwStorAdapterControl 例程的指针。

HwBuildIo

不使用此成员。

HwFreeAdapterResources

指向虚拟微型端口驱动程序 HwStorFreeAdapterResources 例程的指针,这是所有虚拟微型端口驱动程序所需的入口点。

HwProcessServiceRequest

指向虚拟微型端口驱动程序 HwStorProcessServiceRequest 例程的指针。

HwCompleteServiceIrp

指向虚拟微型端口驱动程序 HwStorCompleteServiceIrp 例程的指针。

HwInitializeTracing

指向虚拟微型端口驱动程序 HwStorInitializeTracing 例程的指针。

HwCleanupTracing

指向虚拟微型端口驱动程序 HwStorCleanupTracing 例程的指针。

言论

如果虚拟微型端口驱动程序仅在 Windows 8 或更高版本上执行,驱动程序应使用 HW_INITIALIZATION_DATA 结构,而不是 VIRTUAL_HW_INITIALIZATION_DATA

要求

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

另请参阅

HwStorAdapterControl

HwStorCleanupTracing

HwStorCompleteServiceIrp

HwStorFreeAdapterResources

HwStorInitialize

HwStorInitializeTracing

HwStorProcessServiceRequest

HwStorResetBus

HwStorStartIo

VirtualHwStorFindAdapter