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 来传输此流的数据。 请注意,PioDma 成员都可以 TRUE

HwDeviceExtension

指向微型驱动程序的设备扩展的指针。 微型驱动程序可以使用此缓冲区来记录私人信息。 微型驱动程序在通过 StreamClassRegisterMinidriver 注册自身时,在 HW_INITIALIZATION_DATA 结构中设置此缓冲区的大小。 类驱动程序还会在 HwDeviceExtension 中传递指向此缓冲区的指针,HW_STREAM_REQUEST_BLOCKHW_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)

另请参阅

HW_CLOCK_OBJECT