Partager via


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)

Voir aussi

AVC_FUNCTION

AVC_FUNCTION_COMMAND

AVC_FUNCTION_GET_REQUEST

AVC_FUNCTION_SEND_RESPONSE