HW_STREAM_OBJECT-Struktur (strmini.h)

HW_STREAM_OBJECT beschreibt eine instance eines Minidriver-Streams.

Syntax

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;

Member

SizeOfThisPacket

Gibt die Größe dieser Struktur in Bytes an.

StreamNumber

Gibt den Offset des Datenstroms innerhalb der HW_STREAM_DESCRIPTOR-Struktur des Minitreibers an.

HwStreamExtension

Verweist auf die Streamerweiterung, einen Puffer, der vom Klassentreiber für den Minidriver zugewiesen wird, um private Informationen zu diesem Stream zu speichern. Der Minitreiber legt die Größe des Puffers in der HW_INITIALIZATION_DATA-Struktur fest, die er übergibt, wenn er sich beim Streamklassentreiber registriert.

ReceiveDataPacket

Zeiger auf die StrMiniReceiveStreamDataPacket-Routine des Streams.

ReceiveControlPacket

Zeiger auf die StrMiniReceiveStreamControlPacket-Routine des Streams.

HwClockObject

Enthält das Clock-Objekt des Datenstroms. Weitere Informationen finden Sie unter HW_CLOCK_OBJECT .

Dma

Bei TRUE verwendet das Gerät DMA, um Daten für diesen Stream zu übertragen.

Pio

Wenn TRUE, verwendet das Gerät programmierte E/A, um Daten für diesen Stream zu übertragen. Beachten Sie, dass sowohl die Pio - als auch die Dma-MemberTRUE sein können.

HwDeviceExtension

Zeiger auf die Geräteerweiterung des Minitreibers. Der Minitreiber kann diesen Puffer verwenden, um private Informationen aufzuzeichnen. Der Minidriver legt die Größe dieses Puffers in der HW_INITIALIZATION_DATA-Struktur fest, die er bei der Registrierung über StreamClassRegisterMinidriver übergibt. Der Klassentreiber übergibt auch Zeiger auf diesen Puffer im HwDeviceExtension-Member der HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT und PORT_CONFIGURATION_INFORMATION Strukturen, die er an den Minitreiber übergibt.

StreamHeaderMediaSpecific

Gibt die Größe der medienspezifischen Pro-Stream-Headererweiterung in Bytes an.

StreamHeaderWorkspace

Gibt die Größe des Arbeitsbereichs pro Streamheader an.

Allocator

Gibt TRUE an, wenn der Treiber Zuweisungen verwendet. Die meisten Minitreiber legen diesen Wert auf FALSE fest.

HwEventRoutine

Zeiger auf die StrMiniEvent-Routine des Streams

Reserved[2]

Ist für das System reserviert. Nicht verwenden.

Hinweise

Diese Struktur wird vom Klassentreiber erstellt, um Informationen zu einem bestimmten Stream im Minitreiber zu speichern. Für jede streamspezifische Anforderung übergibt der Klassentreiber die HW_STREAM_OBJECT für den Stream im StreamObject-Member des Streamanforderungsblocks (siehe HW_STREAM_REQUEST_BLOCK).

Wenn der Klassentreiber den Stream öffnet und die SRB_OPEN_STREAM-Anforderung an die StrMiniReceiveDevicePacket-Routine des Minitreibers ausgibt, initialisiert der Minitreiber das Streamobjekt.

Anforderungen

Anforderung Wert
Header strmini.h (include Strmini.h)

Weitere Informationen

HW_CLOCK_OBJECT