HW_STREAM_OBJECT structure (strmini.h)

HW_STREAM_OBJECT décrit une instance d’un flux de 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 que le minidriver utilise 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 la valeur est TRUE, l’appareil utilise DMA pour transférer des données pour ce flux.

Pio

Si la valeur est 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 avoir la valeur 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 lui-même via StreamClassRegisterMinidriver. Le pilote de classe transmet également des pointeurs vers cette mémoire tampon dans le membre HwDeviceExtension des structures HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT et PORT_CONFIGURATION_INFORMATION qu’il transmet au minidriver.

StreamHeaderMediaSpecific

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

StreamHeaderWorkspace

Spécifie la taille de l’espace de travail par flux d’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é pour le système. Ne pas utiliser.

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 la HW_STREAM_OBJECT pour le flux dans le membre StreamObject du bloc de demande de flux (voir HW_STREAM_REQUEST_BLOCK).

Lorsque le pilote de classe ouvre le flux et émet la requête SRB_OPEN_STREAM à la routine StrMiniReceiveDevicePacket du minidriver, le minidriver initialise l’objet stream.

Configuration requise

Condition requise Valeur
En-tête strmini.h (include Strmini.h)

Voir aussi

HW_CLOCK_OBJECT