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 を含む) |