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
アダプターごとの非ページ デバイス拡張機能の仮想ミニポート ドライバーで必要なサイズ (バイト単位) を指定します。 仮想ミニポート ドライバーは、ドライバーによって決定されたアダプター情報の記憶域として、そのデバイス拡張機能を使用します。 オペレーティング システム固有のポート ドライバーは、0 で割り当てる各デバイス拡張機能を初期化し、仮想ミニポート ドライバーのほとんどの呼び出しでアダプター固有のデバイス拡張機能へのポインターを渡します。 指定されたサイズには、仮想ミニポート ドライバーが要求した論理ユニットごとの記憶域は含まれません。
SpecificLuExtensionSize
仮想ミニポート ドライバーで必要なサイズをバイト単位で指定します。存在する場合は、論理ユニットごとの非ページ 記憶域に必要です。 仮想ミニポート ドライバーは、仮想バス上の周辺機器に関するドライバーによって決定された LU 情報の記憶域として、その論理ユニット (LU) 拡張機能を使用できます。 オペレーティング システム固有のポート ドライバーは、割り当てる各 LU 拡張機能をゼロで初期化します。 仮想ミニポート ドライバーが記憶域を必要とする LU ごとの情報を保持しない場合は、このメンバーを 0 に設定したままにします。
SrbExtensionSize
要求ごとの非ページ 記憶域に仮想ミニポート ドライバーが必要とするサイズ (バイト単位) を指定します (存在する場合)。 Storport ドライバーで動作する仮想ミニポート ドライバーは、散布図/収集リストをサポートする必要があり、SRB ごとの散布図/収集リストは通常、SRB 拡張機能で割り当てられるため、このメンバーはほとんど 0 ではありません。
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 | 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 構造を使用する必要があります。
必要条件
要件 | 価値 |
---|---|
ヘッダー | storport.h (Storport.h を含む) |
関連項目
HwStorAdapterControlの
HwStorCleanupTracingの
HwStorCompleteServiceIrpをする
HwStorFreeAdapterResourcesの
HwStorInitializeの
HwStorInitializeTracingの
HwStorProcessServiceRequestの
HwStorResetBusの
HwStorStartIoをする
VirtualHwStorFindAdapterの