Partager via


structure HW_STREAM_OBJECT (strmini.h)

HW_STREAM_OBJECT décrit une instance d’un flux minidriver.

Syntaxe

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;

Membres

SizeOfThisPacket

Spécifie la taille, en octets, de cette structure.

StreamNumber

Spécifie le décalage du flux dans la structure HW_STREAM_DESCRIPTOR du minidriver.

HwStreamExtension

Pointe vers l’extension de flux, une mémoire tampon allouée par le pilote de classe pour le minidriver à utiliser pour contenir des informations privées sur ce flux. Le minidriver définit la taille de la mémoire tampon dans la structure HW_INITIALIZATION_DATA qu’il transmet lorsqu’il s’inscrit auprès du pilote de classe de flux.

ReceiveDataPacket

Pointeur vers la routine StrMiniReceiveStreamDataPacket du flux.

ReceiveControlPacket

Pointeur vers la routine StrMiniReceiveStreamControlPacket du flux.

HwClockObject

Contient l’objet horloge du flux. Pour plus d’informations, consultez HW_CLOCK_OBJECT.

Dma

Si TRUE, l’appareil utilise DMA pour transférer des données pour ce flux.

Pio

Si TRUE, l’appareil utilise des E/S programmées pour transférer des données pour ce flux. Notez que les membres Pio et Dma peuvent être TRUE.

HwDeviceExtension

Pointeur vers l’extension d’appareil du minidriver. Le minidriver peut utiliser cette mémoire tampon pour enregistrer des informations privées. Le minidriver définit la taille de cette mémoire tampon dans la structure HW_INITIALIZATION_DATA qu’il transmet lorsqu’il s’inscrit via StreamClassRegisterMinidriver. Le pilote de classe passe également des pointeurs vers cette mémoire tampon dans le HwDeviceExtension membre du HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXTet PORT_CONFIGURATION_INFORMATION structures qu’il passe au minidriver.

StreamHeaderMediaSpecific

Spécifie la taille en octets de l’extension d’en-tête spécifique au média par flux.

StreamHeaderWorkspace

Spécifie la taille de l’espace de travail par flux-en-tête.

Allocator

Spécifie TRUE si le pilote utilise des allocateurs. La plupart des minidrivers définissent cette valeur sur FALSE.

HwEventRoutine

Pointeur vers la routine StrMiniEvent du flux

Reserved[2]

Réservé à l’utilisation du système. N’utilisez pas.

Remarques

Cette structure est créée par le pilote de classe pour contenir des informations sur un flux particulier dans le minidriver. Pour chaque requête spécifique au flux, le pilote de classe transmet l’HW_STREAM_OBJECT du flux dans le Membre streamObject du bloc de requête de flux (voir HW_STREAM_REQUEST_BLOCK).

Lorsque le pilote de classe ouvre le flux et émet la demande de SRB_OPEN_STREAM à l'strMiniReceiveDevicePacket routine, le minidriver initialise l’objet de flux.

Exigences

Exigence Valeur
d’en-tête strmini.h (include Strmini.h)

Voir aussi

HW_CLOCK_OBJECT