共用方式為


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

必須設定為 TRUETRUE 值表示虛擬迷你埠驅動程式支援標記的佇列。

AutoRequestSense

必須設定為 TRUETRUE 值表示 HBA 可以執行要求感知作業,而不需要明確要求。

MultipleRequestPerLu

必須設定為 TRUETRUE 值表示虛擬迷你埠驅動程式可以將每個邏輯單元 (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