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