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结构传递给微型驱动程序。
StreamHeaderMediaSpecific
指定特定于媒体的每个流标头扩展的大小(以字节为单位)。
StreamHeaderWorkspace
指定每流标头工作区的大小。
Allocator
如果驱动程序使用分配器,则指定 TRUE 。 大多数微型驱动程序将此值设置为 FALSE。
HwEventRoutine
指向流的 StrMiniEvent 例程的指针
Reserved[2]
预留给系统使用。 请勿使用。
注解
此结构由类驱动程序创建,用于保存有关微型驱动程序中特定流的信息。 对于每个特定于流的请求,类驱动程序在流请求块的 StreamObject 成员中传递流的HW_STREAM_OBJECT (请参阅 HW_STREAM_REQUEST_BLOCK) 。
当类驱动程序打开流并向微型驱动程序的 StrMiniReceiveDevicePacket 例程发出SRB_OPEN_STREAM请求时,微型驱动程序初始化流对象。
要求
要求 | 值 |
---|---|
Header | strmini.h (包括 Strmini.h) |