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
指向數據流延伸模組,此緩衝區是由類別驅動程式配置的緩衝區,供minidriver用來保存此數據流的私用資訊。 minidriver 會在它向數據流類別驅動程式註冊本身時,在 HW_INITIALIZATION_DATA 結構中設定緩衝區的大小。
ReceiveDataPacket
數據流 StrMiniReceiveStreamDataPacket 例程的指標。
ReceiveControlPacket
數據流 StrMiniReceiveStreamControlPacket 例程的指標。
HwClockObject
包含數據流的時鐘物件。 如需詳細資訊,請參閱 HW_CLOCK_OBJECT。
Dma
如果 TRUE,裝置會使用 DMA 來傳輸此資料流的數據。
Pio
如果 TRUE,裝置會使用程式化 I/O 來傳輸此資料流的數據。 請注意,Pio 與 Dma 成員都可以 TRUE。
HwDeviceExtension
迷你驅動程式裝置延伸模組的指標。 迷你驅動程式可以使用這個緩衝區來記錄私人資訊。 minidriver 會在它 透過 StreamClassRegisterMinidriver註冊本身時,在 HW_INITIALIZATION_DATA 結構中設定這個緩衝區的大小。 類別驅動程式也會將指標傳遞至 HwDeviceExtension 中HW_STREAM_REQUEST_BLOCK、HW_TIME_CONTEXT,以及 PORT_CONFIGURATION_INFORMATION 傳遞至迷你驅動程序的結構中的這個緩衝區。
StreamHeaderMediaSpecific
指定媒體特定、每個數據流標頭延伸模組的位元元組大小。
StreamHeaderWorkspace
指定每個數據流標頭工作區的大小。
Allocator
如果驅動程式使用配置器,則指定 TRUE。 大部分的迷你驅動程式都會將此值設定為 FALSE。
HwEventRoutine
數據流 StrMiniEvent 例程的指標
Reserved[2]
保留供系統使用。 請勿使用。
言論
此結構是由類別驅動程式所建立,以保存minidriver中特定數據流的相關信息。 針對每個數據流特定的要求,類別驅動程式會在數據流要求區塊的 StreamObject 成員中傳遞數據流的HW_STREAM_OBJECT (請參閱 HW_STREAM_REQUEST_BLOCK)。
當類別驅動程式開啟數據流,並將SRB_OPEN_STREAM要求發出至minidriver StrMiniReceiveDevicePacket 例程時,minidriver 會初始化數據流物件。
要求
要求 | 價值 |
---|---|
標頭 | strmini.h (包括 Strmini.h) |