structure AVC_COMMAND_IRB (avc.h)
La structure AVC_COMMAND_IRB définit une structure qui contient une commande AV/C et une paire de réponses.
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
Il doit être défini sur l’énumérateur AVC_FUNCTION_COMMAND de l’énumération AVC_FUNCTION.
SubunitAddrFlag
Il s’agit d’un indicateur indiquant si le membre SubunitAddr spécifie une adresse. Définissez sur un si c’est le cas, sinon sur zéro.
AlternateOpcodesFlag
Il s’agit d’un indicateur indiquant si le membre AlternateOpcodes est valide. Définissez sur un si c’est le cas, sinon défini sur zéro.
TimeoutFlag
Définissez cette valeur sur un si le délai d’expiration par défaut n’est pas approprié pour la sous-unité. Si cette valeur est définie, le membre Délai d’expiration doit être défini sur le délai d’attente souhaité (en unités de 100 ns).
RetryFlag
Définissez cette valeur sur un si le nombre de nouvelles tentatives par défaut n’est pas approprié pour la sous-unité. Si cette valeur est définie, le membre Nouvelles tentatives doit être défini sur le nombre de nouvelles tentatives souhaité.
CommandType
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 de l’ensemble de commandes d’interface numérique AV/C, Rev 3.0. Aucune longueur n’est nécessaire, car l’encodage de l’adresse de sous-unité l’implique. Ce paramètre est ignoré si SubunitAddrFlag est égal à zéro.
AlternateOpcodes
Définissez cette valeur sur l’adresse de la mémoire non pagée contenant la liste opcode alternative 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 unités 100ns). Ce paramètre est ignoré si TimeoutFlag est égal à zéro.
Retries
Définissez ce paramètre sur le nombre souhaité de fois queavc.sys tentez de réessayer les demandes après chaque délai d’attente sans réponse. Notez qu’un nombre de nouvelles tentatives de zéro signifie que la demande est essayée une fois. Le temps total passé à essayer de traiter une commande sans obtenir de réponse est Délai d’attente * (nouvelles tentatives + 1). Ce paramètre est ignoré si RetryFlag est égal à zéro.
Opcode
Définissez cette valeur sur l’opcode AV/C souhaité (approprié pour le type de sous-unité). Il s’agit d’un paramètre obligatoire. Sur la réponse, si AlternateOpcodesFlag a été défini et qu’un des opcodes alternatifs a été utilisé pour faire correspondre la réponse, cette valeur est définie sur cet opcode alternatif.
OperandLength
Définissez cette valeur sur le nombre d’octets utilisés pour stocker les opérandes dans le membre Operands . Il s’agit d’un paramètre obligatoire. Sur la réponse, ce paramètre est défini sur le nombre d’octets dans la liste d’opérande utilisée par la réponse.
Operands[MAX_AVC_OPERAND_BYTES]
Définissez cette valeur sur la liste d’opérande appropriée pour le type de sous-unité et l’opcode. Il s’agit d’un paramètre obligatoire. Sur la 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 .
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | avc.h (inclure Avc.h) |