HW_INITIALIZATION_DATA構造体 (strmini.h)
HW_INITIALIZATION_DATA構造体は、クラス ドライバーがミニドライバーの初期化を開始するために必要な基本情報を指定します。 ミニドライバーは、StreamClassRegisterMinidriverを呼び出して自身を登録するときに、クラス ドライバーにHW_INITIALIZATION_DATA構造体を渡します。
構文
typedef struct _HW_INITIALIZATION_DATA {
union {
ULONG HwInitializationDataSize;
struct {
USHORT SizeOfThisPacket;
USHORT StreamClassVersion;
};
};
ULONG HwInitializationDataSize;
PHW_INTERRUPT HwInterrupt;
PHW_RECEIVE_DEVICE_SRB HwReceivePacket;
PHW_CANCEL_SRB HwCancelPacket;
PHW_REQUEST_TIMEOUT_HANDLER HwRequestTimeoutHandler;
ULONG DeviceExtensionSize;
ULONG PerRequestExtensionSize;
ULONG PerStreamExtensionSize;
ULONG FilterInstanceExtensionSize;
BOOLEAN BusMasterDMA;
BOOLEAN Dma24BitAddresses;
ULONG BufferAlignment;
BOOLEAN TurnOffSynchronization;
ULONG DmaBufferSize;
ULONG NumNameExtensions;
PWCHAR *NameExtensionArray;
ULONG Reserved[2];
} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;
メンバーズ
HwInitializationDataSize
このデータ構造のサイズをバイト単位で指定します。
SizeOfThisPacket
StreamClassVersion
HwInterrupt
ミニドライバーの StrMiniInterrupt ルーチンを指します。
HwReceivePacket
ミニドライバーの StrMiniReceiveDevicePacket ルーチンを指します。
HwCancelPacket
ミニドライバーの StrMiniCancelPacket ルーチンを指します。
HwRequestTimeoutHandler
ミニドライバーの StrMiniRequestTimeout ルーチンを指します。
DeviceExtensionSize
クラス ドライバーがミニドライバーのデバイス拡張機能に割り当てるバッファーのサイズをバイト単位で指定します。 ミニドライバーは、このバッファーを使用して個人情報を記録できます。 クラス ドライバーは、HW_STREAM_OBJECT、HW_STREAM_REQUEST_BLOCK、HW_TIME_CONTEXT、およびミニドライバーに渡す PORT_CONFIGURATION_INFORMATION 構造体の HwDeviceExtension メンバー内のこのバッファーへのポインターを渡します。
PerRequestExtensionSize
ミニドライバーに渡す構造体のメンバー SRBExtension メンバーが指すバッファーにクラス ドライバーが割り当てるバッファー HW_STREAM_REQUEST_BLOCK のサイズ (バイト単位) を指定します。 クラス ドライバーは、HW_STREAM_REQUEST_BLOCKごとに 1 つのバッファーを割り当てます。
PerStreamExtensionSize
クラス ドライバーがストリームの HW_STREAM_OBJECTのメンバー HwStreamExtension によって指されるバッファーに割り当てるバッファーのサイズをバイト単位で指定します。 クラス ドライバーは、ストリームごとに 1 つのバッファーを割り当てます。
FilterInstanceExtensionSize
ミニドライバーに渡す構造体の HwInstanceExtension メンバーが指すバッファーにクラス拡張機能が割り当てるバッファー HW_STREAM_REQUEST_BLOCK のサイズ (バイト単位) を指定します。 クラス ドライバーは、ミニドライバーのインスタンスごとに 1 つのバッファーを割り当てます。
BusMasterDMA
TRUE 場合、デバイスはミニドライバーの DMA バッファーに直接バス マスター DMA を実行できます。
Dma24BitAddresses
デバイスが使用する DMA ハードウェアがアドレス空間の下位 24 ビットにのみアクセスできる場合、ミニドライバーはこれを TRUE に設定する必要があります。
BufferAlignment
DMA バッファーのアラインメント要件をバイト単位で指定します。 たとえば、値 4 は、DMA バッファーを 4 バイト境界に配置する必要があることを示します。
TurnOffSynchronization
true 場合、ミニドライバーは独自の同期を処理します。それ以外の場合、クラス ドライバーは同期を処理します。 ほとんどのミニドライバーは、この値を FALSE 設定する必要があります。 詳細については、「ストリーミング ミニドライバーデザイン ガイド」 の「ミニドライバー同期 を参照してください。
DmaBufferSize
クラス ドライバーがミニドライバーに割り当てる DMA バッファーのサイズをバイト単位で指定します。 ミニドライバーは、StreamClassGetDmaBuffer 呼び出すことによって、このバッファーへのポインターを取得します。 クラス ドライバーは、オペレーティング システムや他のドライバーでは使用できない連続した非ページ メモリを割り当てます。そのため、この値はできるだけ小さくする必要があります。
NumNameExtensions
NameExtensionArray
Reserved[2]
システム用に予約されています。 ミニドライバーは、このメンバーを無視する必要があります。
必要条件
要件 | 価値 |
---|---|
ヘッダー | strmini.h (Strmini.h を含む) |