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) |