structure AVC_COMMAND_IRB (avc.h)
La structure AVC_COMMAND_IRB définit une structure qui contient une paire de commandes et de réponses AV/C.
Syntaxe
typedef struct _AVC_COMMAND_IRB {
AVC_IRB Common;
UCHAR SubunitAddrFlag : 1;
UCHAR AlternateOpcodesFlag : 1;
UCHAR TimeoutFlag : 1;
UCHAR RetryFlag : 1;
union {
UCHAR CommandType;
UCHAR ResponseCode;
};
PUCHAR SubunitAddr;
PUCHAR AlternateOpcodes;
LARGE_INTEGER Timeout;
UCHAR Retries;
UCHAR Opcode;
ULONG OperandLength;
UCHAR Operands[MAX_AVC_OPERAND_BYTES];
NODE_ADDRESS NodeAddress;
ULONG Generation;
} AVC_COMMAND_IRB, *PAVC_COMMAND_IRB;
Membres
Common
Cela doit être défini sur l’énumérateur AVC_FUNCTION_COMMAND à partir de l’énumération AVC_FUNCTION.
SubunitAddrFlag
Il s’agit d’un indicateur indiquant si l'SubunitAddr membre spécifie une adresse. Définissez-en une si elle le fait, sinon définie sur zéro.
AlternateOpcodesFlag
Il s’agit d’un indicateur indiquant si les AlternateOpcodes membre sont valides. Définissez-en une si elle est, sinon définie sur zéro.
TimeoutFlag
Définissez cette valeur sur une si le délai d’attente par défaut n’est pas approprié pour la sous-unité. Si cette valeur est définie, le délai d’expiration membre doit être défini sur le délai d’attente souhaité (en unités de 100 ns).
RetryFlag
Définissez cette valeur sur une si le nombre de nouvelles tentatives par défaut n’est pas approprié pour la sous-unité. Si cette valeur est définie, la nouvelles tentatives membre doit être définie sur le nombre de nouvelles tentatives souhaité.
CommandType
Cela spécifie une valeur de l’énumération AvcCommandType. Ce membre est utilisé uniquement pendant AVC_FUNCTION_GET_REQUEST. Sinon, elle est ignorée.
ResponseCode
Cela spécifie une valeur de l’énumération AvcResponseCode. Ce membre est utilisé uniquement pendant AVC_FUNCTION_SEND_RESPONSE. Sinon, elle est ignorée.
SubunitAddr
Définissez cette valeur sur l’adresse de la mémoire non paginée contenant l’adresse de sous-unité souhaitée encodée conformément à la section 5.3.3 de la spécification générale du jeu de commandes AV/C Digital Interface, Rev 3.0. Aucune longueur n’est nécessaire, car l’encodage de l’adresse de sous-unité implique cela. Ce paramètre est ignoré si SubunitAddrFlag est égal à zéro.
AlternateOpcodes
Définissez cette valeur sur l’adresse de la mémoire non paginé contenant la liste d’opcodes alternatives souhaitée. Le premier octet de la liste opcode est le nombre d’opcodes à suivre (équivalent au nombre d’octets). La longueur totale de la mémoire contenant la liste d’opcodes alternatifs est AlternateOpcodes[0]+1. Ce paramètre est ignoré si AlternateOpcodesFlag est égal à zéro.
Timeout
Définissez cette valeur sur le délai d’attente souhaité en unités de 100 ns. Par exemple, la valeur de délai d’attente par défaut est : Timeout.QuadPart = 1000000 (100 ms en 100ns unités). Ce paramètre est ignoré si TimeoutFlag est égal à zéro.
Retries
Définissez cette valeur sur le nombre de fois souhaité avc.sys devez tenter de réessayer les demandes après chaque expiration sans réponse. Notez qu’un nombre de nouvelles tentatives de zéro signifie que la requête est essayée une seule fois. Le temps total consacré à la tentative de traitement d’une commande sans obtenir de réponse est Timeout * (Nouvelles tentatives + 1). Ce paramètre est ignoré si RetryFlag est égal à zéro.
Opcode
Définissez cette valeur sur le opcode AV/C souhaité (approprié pour le type de sous-unité). Il s’agit d’un paramètre obligatoire. En réponse, si AlternateOpcodesFlag a été défini et que l’un des opcodes alternatifs a été utilisé pour correspondre à la réponse, il est défini sur cet autre opcode.
OperandLength
Définissez cette valeur sur le nombre d’octets utilisés pour stocker les opérandes dans les opérandes membre. Il s’agit d’un paramètre obligatoire. En réponse, ce paramètre est défini sur le nombre d’octets dans la liste d’opérandes utilisée par la réponse.
Operands[MAX_AVC_OPERAND_BYTES]
Définissez cette valeur sur la liste d’opérandes appropriée pour le type de sous-unité et l’opcode. Il s’agit d’un paramètre obligatoire. En réponse, ce paramètre contient la liste d’opérandes de la réponse.
NodeAddress
Réservé. Ce membre doit être égal à zéro.
Generation
Réservé. Ce membre doit être égal à zéro.
Remarques
Cette structure est utilisée avec les codes de fonction AVC_FUNCTION_COMMAND, AVC_FUNCTION_GET_REQUEST et AVC_FUNCTION_SEND_RESPONSE.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | avc.h (inclure Avc.h) |