storport.h) (VIRTUAL_HW_INITIALIZATION_DATA 结构

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 映射 IO 请求的缓冲区,READ 和 WRITE 除外。
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

要求

要求
Header storport.h (包括 Storport.h)

另请参阅

HwStorAdapterControl

HwStorCleanupTracing

HwStorCompleteServiceIrp

HwStorFreeAdapterResources

HwStorInitialize

HwStorInitializeTracing

HwStorProcessServiceRequest

HwStorResetBus

HwStorStartIo

VirtualHwStorFindAdapter