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