HW_INITIALIZATION_DATA 結構會指定類別驅動程序開始初始化 minidriver 的基本資訊。 minidriver 會在呼叫 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
指向 minidriver 的 StrMiniReceiveDevicePacket 例程。
HwCancelPacket
指向迷你驅動程式的 StrMiniCancelPacket 例程。
HwRequestTimeoutHandler
指向迷你驅動程式的 StrMiniRequestTimeout 例程。
DeviceExtensionSize
指定類別驅動程式應配置給minidriver裝置擴充功能的緩衝區大小,以位元組為單位。 迷你驅動程式可以使用這個緩衝區來記錄私人資訊。 類別驅動程式會將指標傳遞至 HwDeviceExtension 中HW_STREAM_OBJECT、HW_STREAM_REQUEST_BLOCK、HW_TIME_CONTEXT和 PORT_CONFIGURATION_INFORMATION 結構中的這個緩衝區。
PerRequestExtensionSize
指定類別驅動程式應該配置給 SRBExtension 所指向之緩衝區的位元組大小, 它傳遞給minidriver之 HW_STREAM_REQUEST_BLOCK 結構的成員。 類別驅動程式會為每個HW_STREAM_REQUEST_BLOCK配置一個緩衝區。
PerStreamExtensionSize
指定類別驅動程式應該配置給 HwStreamExtension 所指向之緩衝區的位元組大小, 數據流 HW_STREAM_OBJECT的成員。 類別驅動程式會為每個數據流配置一個緩衝區。
FilterInstanceExtensionSize
指定類別延伸模組應該配置給 HwInstanceExtension 所指向之緩衝區的位元組大小, 傳遞給minidriver之 HW_STREAM_REQUEST_BLOCK 結構的成員。 類別驅動程式會為每個minidriver實例配置一個緩衝區。
BusMasterDMA
如果 TRUE,裝置可以執行直接總線主要 DMA 到迷你驅動程式的 DMA 緩衝區。
Dma24BitAddresses
如果裝置使用的 DMA 硬體只能存取較低的 24 位位址空間,Minidrivers 應將此設定為 TRUE。
BufferAlignment
指定 DMA 緩衝區的對齊需求,以位元組為單位。 例如,值為 4 表示 DMA 緩衝區應該對齊 4 位元組界限。
TurnOffSynchronization
如果 TRUE,迷你驅動程式會處理自己的同步處理;否則,類別驅動程式會處理同步處理。 大部分的迷你驅動程式都應該將此值設定為 FALSE。 如需詳細資訊,請參閱 串流迷你驅動程序設計指南 中的 Minidriver 同步處理。
DmaBufferSize
指定類別驅動程式應配置給minidriver的 DMA 緩衝區位元組大小。 minidriver 會呼叫 StreamClassGetDmaBuffer 來取得這個緩衝區的指標。 類別驅動程式會配置無法供作系統或其他驅動程式使用的連續不可分頁記憶體,因此此值應盡可能小。
NumNameExtensions
NameExtensionArray
Reserved[2]
保留供系統使用。 Minidrivers 應該忽略這個成員。
要求
| 要求 | 價值 |
|---|---|
| 標頭 | strmini.h (包括 Strmini.h) |