HW_STREAM_OBJECT結構 (strmini.h)
HW_STREAM_OBJECT描述迷你驅動程序數據流的實例。
語法
typedef struct _HW_STREAM_OBJECT {
ULONG SizeOfThisPacket;
ULONG StreamNumber;
PVOID HwStreamExtension;
PHW_RECEIVE_STREAM_DATA_SRB ReceiveDataPacket;
PHW_RECEIVE_STREAM_CONTROL_SRB ReceiveControlPacket;
HW_CLOCK_OBJECT HwClockObject;
BOOLEAN Dma;
BOOLEAN Pio;
PVOID HwDeviceExtension;
ULONG StreamHeaderMediaSpecific;
ULONG StreamHeaderWorkspace;
BOOLEAN Allocator;
PHW_EVENT_ROUTINE HwEventRoutine;
ULONG Reserved[2];
} HW_STREAM_OBJECT, *PHW_STREAM_OBJECT;
成員
SizeOfThisPacket
指定這個 結構的大小,以位元組為單位。
StreamNumber
指定迷你驅動程式 HW_STREAM_DESCRIPTOR 結構中數據流的位移。
HwStreamExtension
指向數據流延伸模組,這是由類別驅動程式配置的緩衝區,供迷你驅動程式用來保存有關此數據流的私人資訊。 迷你驅動程式會在它向數據流類別驅動程式註冊本身時,設定緩衝區在 HW_INITIALIZATION_DATA 結構中傳遞的大小。
ReceiveDataPacket
數據流 StrMiniReceiveStreamDataPacket 例程的指標。
ReceiveControlPacket
數據流 StrMiniReceiveStreamControlPacket 例程的指標。
HwClockObject
包含數據流的時鐘物件。 如需詳細資訊 ,請參閱HW_CLOCK_OBJECT 。
Dma
如果 為 TRUE,則裝置會使用 DMA 來傳輸此數據流的數據。
Pio
如果 為 TRUE,則裝置會使用程式化 I/O 來傳輸此數據流的數據。 請注意, Pio 和 Dma 成員可能都是 TRUE。
HwDeviceExtension
迷你驅動程式裝置延伸模組的指標。 迷你驅動程式可能會使用此緩衝區來記錄私人資訊。 迷你驅動程式會在透過 StreamClassRegisterMinidriver 註冊自己時,在HW_INITIALIZATION_DATA結構中設定這個緩衝區的大小。 類別驅動程式也會將指標傳遞給HW_STREAM_REQUEST_BLOCK、HW_TIME_CONTEXT的HwDeviceExtension 成員中的這個緩衝區,以及PORT_CONFIGURATION_INFORMATION傳遞至minidriver的結構。
StreamHeaderMediaSpecific
指定媒體特定每個數據流標頭延伸模組的位元元組大小。
StreamHeaderWorkspace
指定每個數據流標頭工作區的大小。
Allocator
如果驅動程式使用配置器,則指定 TRUE 。 大部分的迷你驅動程式都會將此值設定為 FALSE。
HwEventRoutine
數據流 StrMiniEvent 例程的指標
Reserved[2]
保留供系統使用。 請勿使用。
備註
這個結構是由類別驅動程式所建立,以保存迷你驅動程式中特定數據流的相關信息。 針對每個數據流特定要求,類別驅動程式會在數據流要求區塊的 StreamObject 成員中傳遞數據流的HW_STREAM_OBJECT, (請參閱 HW_STREAM_REQUEST_BLOCK) 。
當類別驅動程式開啟數據流,並將SRB_OPEN_STREAM要求發出至minidriver的 StrMiniReceiveDevicePacket 例程時,minidriver 會初始化數據流物件。
規格需求
需求 | 值 |
---|---|
標頭 | strmini.h (包含 Strmini.h) |