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]
システムで使用するために予約されています。 ミニドライバーは、このメンバーを無視する必要があります。
要件
要件 | 値 |
---|---|
Header | strmini.h (Strmini.h を含む) |