structure AVC_STREAM_REQUEST_BLOCK (avcstrm.h)
La structure AVC_STREAM_REQUEST_BLOCK décrit une demande de streaming AV/C à traiter par avcstrm.sys.
Syntaxe
typedef struct _AVC_STREAM_REQUEST_BLOCK {
ULONG SizeOfThisBlock;
ULONG Version;
AVCSTRM_FUNCTION Function;
ULONG Flags;
NTSTATUS Status;
PVOID AVCStreamContext;
PVOID Context1;
PVOID Context2;
PVOID Context3;
PVOID Context4;
ULONG Reserved[4];
union {
KSSTATE StreamState;
AVCSTRM_OPEN_STRUCT OpenStruct;
AVCSTRM_BUFFER_STRUCT BufferStruct;
} CommandData;
_tagCommandData _tagCommandData;
} AVC_STREAM_REQUEST_BLOCK, *PAVC_STREAM_REQUEST_BLOCK;
Membres
SizeOfThisBlock
Spécifie la taille du bloc de requête en octets. Ne définissez pas cette valeur directement. Utilisez plutôt la macro INIT_AVCSTRM_HEADER.
Version
Spécifie la version de avcstrm.sys'interface de pilote de périphérique (DDI) pour traiter une demande. Ne définissez pas cette valeur directement. Utilisez plutôt la macro INIT_AVCSTRM_HEADER.
Function
Indique la requête (code de fonction) avcstrm.sys services. Il doit s’agir d’une valeur de l’énumération AVCSTRM_FUNCTION. Ne définissez pas cette valeur directement. Utilisez plutôt la macro INIT_AVCSTRM_HEADER.
Flags
Indicateurs spéciaux pour indiquer un service spécial ou un écart par rapport au service standard. Cela n’est actuellement pas utilisé.
Status
État final de cette demande.
AVCStreamContext
Il s’agit du contexte (handle) d’un flux. Définissez cette valeur sur NULL pour le code de fonction AVCSTRM_OPEN. Pour les autres codes de fonction, cette valeur doit être définie sur une valeur valide récupérée à partir d’un appel antérieur à AVCSTRM_OPEN.
Context1
Pointeurs de contexte du client.
Context2
Pointeurs de contexte du client.
Context3
Pointeurs de contexte du client.
Context4
Pointeurs de contexte du client.
Reserved[4]
Réservé. N’utilisez pas.
CommandData
Il s’agit d’une union de données de commande à passer à avcstrm.sys pour le service.
Drapeau | Description |
---|---|
StreamState | Spécifie l’état actuel du flux spécifié. Cela est utilisé avec les codes de fonction AVCSTRM_GET_STATE et AVCSTRM_SET_STATE. |
OpenStruct | Spécifie une description d’un flux à ouvrir. Ceci est utilisé avec le code de la fonction AVCSTRM_OPEN. |
BufferStruct | Spécifie une description d’une mémoire tampon utilisée pour lire ou écrire des données depuis/vers un flux spécifié. Cela est utilisé avec les codes de fonction AVCSTRM_READ et AVCSTRM_WRITE. |
CommandData.StreamState
Définit le membre KSSTATEStreamState.
CommandData.OpenStruct
Définit le membre AVCSTRM_OPEN_STRUCTOpenStruct.
CommandData.BufferStruct
Définit le membre AVCSTRM_BUFFER_STRUCTBufferStruct.
_tagCommandData
Définit le _tagCommandDatamembre _tagCommandData .
Remarques
Le AVC_STREAM_REQUEST_BLOCK est la structure principale utilisée par un pilote de sous-unité à interfacer avec avcstrm.sys.
Chaque requête de flux AV/C est décrite par cette structure. Cette structure est passée dans le cadre de l’IRP à avcstrm.sys pour le service..
Pour utiliser cette structure, définissez le membre IRP->Parameters->Others.Argument1 sur un membre alloué et initialisé AVC_STREAM_REQUEST_BLOCK qui décrit la requête (fonctionnalité) que le pilote de sous-unité souhaite avcstrm.sys traiter.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | avcstrm.h (include Avcstrm.h) |