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 ごとの情報を保持しない場合は、このメンバーを 0 のままにします。

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 要求のバッファーをマップします。
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE 読み取りと書き込みを含むすべての IO 要求のバッファーをマップします。 ミニポート ドライバーは通常、この設定を使用します。

NeedPhysicalAddresses

使用されていません。 仮想ミニポート ドライバーは、ハードウェアをサポートしていません。

TaggedQueuing

TRUE に設定する必要があります。 TRUE の値は、仮想ミニポート ドライバーがタグ付きキューをサポートしていることを示します。

AutoRequestSense

TRUE に設定する必要があります。 TRUE の値は、明示的な要求を必要とせずに、HBA が要求センス操作を実行できることを示します。

MultipleRequestPerLu

TRUE に設定する必要があります。 TRUE の値は、仮想ミニポート ドライバーが論理ユニット (LU) ごとに複数の要求をキューに登録できることを示します。

ReceiveEvent

この値は使用されなくなり、 TRUE または FALSE に設定できます。

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以降でのみ実行される場合、ドライバーは、VIRTUAL_HW_INITIALIZATION_DATAではなく、HW_INITIALIZATION_DATA構造体を使用する必要があります。

要件

要件
Header storport.h (Storport.h を含む)

こちらもご覧ください

HwStorAdapterControl

HwStorCleanupTracing

HwStorCompleteServiceIrp

HwStorFreeAdapterResources

HwStorInitialize

HwStorInitializeTracing

HwStorProcessServiceRequest

HwStorResetBus

HwStorStartIo

VirtualHwStorFindAdapter