// strmini.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
HW_STREAM_OBJECT describes an instance of a minidriver stream.
SizeOfThisPacketSpecifies the size, in bytes, of this structure.
StreamNumberSpecifies the offset of the stream within the minidriver's HW_STREAM_DESCRIPTOR structure.
HwStreamExtensionPoints to the stream extension, a buffer allocated by the class driver for the minidriver to use to hold private information about this stream. The minidriver sets the size of the buffer in the HW_INITIALIZATION_DATA structure it passes when it registers itself with the stream class driver.
ReceiveDataPacketPointer to the stream's StrMiniReceiveStreamDataPacket routine.
ReceiveControlPacketPointer to the stream's StrMiniReceiveStreamControlPacket routine.
HwClockObjectContains the stream's clock object. See HW_CLOCK_OBJECT for details.
DmaIf TRUE, the device uses DMA to transfer data for this stream.
PioIf TRUE, the device uses programmed I/O to transfer data for this stream. Note that both the Pio and Dma members may be TRUE.
HwDeviceExtensionPointer to the minidriver's device extension. The minidriver may use this buffer to record private information. The minidriver sets the size of this buffer in the HW_INITIALIZATION_DATA structure it passes when it registers itself via StreamClassRegisterMinidriver. The class driver also passes pointers to this buffer in the HwDeviceExtension member of the HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT, and PORT_CONFIGURATION_INFORMATION structures it passes to the minidriver.
StreamHeaderMediaSpecificSpecifies the size in bytes of the media-specific, per-stream header extension.
StreamHeaderWorkspaceSpecifies the size of the per-stream-header workspace.
AllocatorSpecifies TRUE if the driver uses allocators. Most minidrivers set this value to FALSE.
HwEventRoutinePointer to the stream's StrMiniEvent routine
ReservedReserved for system use. Do not use.
This structure is created by the class driver to hold information about a particular stream in the minidriver. For each stream-specific request, the class driver passes the HW_STREAM_OBJECT for the stream in the StreamObject member of the stream request block (See HW_STREAM_REQUEST_BLOCK).
When the class driver opens the stream and issues the SRB_OPEN_STREAM request to the minidriver's StrMiniReceiveDevicePacket routine, the minidriver initializes the stream object.