AVC_COMMAND_IRB estrutura (avc.h)

A estrutura AVC_COMMAND_IRB define uma estrutura que contém um par de comando e resposta AV/C.

Sintaxe

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;

Membros

Common

Isso deve ser definido como o enumerador AVC_FUNCTION_COMMAND da enumeração AVC_FUNCTION.

SubunitAddrFlag

Esse é um sinalizador que indica se o membro SubunitAddr especifica um endereço. Defina como um se ele fizer isso, caso contrário, definido como zero.

AlternateOpcodesFlag

Esse é um sinalizador que indica se o membro AlternateOpcodes é válido. Defina como um se for, caso contrário, definido como zero.

TimeoutFlag

Defina isso como um se o tempo limite padrão não for apropriado para o subunit. Se isso estiver definido, o membro timeout deverá ser definido como o tempo limite desejado (em unidades de 100 ns).

RetryFlag

Defina isso como um se a contagem de repetição padrão não for apropriada para o subunit. Se isso for definido, o membro Retries deverá ser definido como a contagem de repetição desejada.

CommandType

Isso especifica um valor da enumeração AvcCommandType. Esse membro é usado somente durante AVC_FUNCTION_GET_REQUEST. Ele é ignorado de outra forma.

ResponseCode

Isso especifica um valor da enumeração AvcResponseCode. Esse membro é usado somente durante AVC_FUNCTION_SEND_RESPONSE. Ele é ignorado de outra forma.

SubunitAddr

Defina isso como o endereço da memória nãopagada que contém o endereço de subunidade desejado codificado de acordo com a Seção 5.3.3 da Especificação Geral do Conjunto de Comandos da Interface Digital AV/C, Rev 3.0. Nenhum comprimento é necessário porque a codificação de endereço de subunidade implica isso. Esse parâmetro será ignorado se SubunitAddrFlag for zero.

AlternateOpcodes

Defina-o como o endereço da memória nãopagada que contém a lista de opcodes alternativo desejada. O primeiro byte da lista opcode é a contagem de opcodes a seguir (equivalente ao número de bytes). O comprimento total da memória que contém a lista de opcodes alternativos é AlternateOpcodes[0]+1. Esse parâmetro será ignorado se AlternateOpcodesFlag for zero.

Timeout

Defina isso como o tempo limite desejado em unidades de 100 ns. Por exemplo, o valor de tempo limite padrão é: Timeout.QuadPart = 1000000 (100ms em unidades de 100ns). Esse parâmetro será ignorado se TimeoutFlag for zero.

Retries

Defina isso como o número desejado de vezes avc.sys deve tentar repetir solicitações após cada tempo limite sem uma resposta. Observe que uma contagem de repetição de zero significa que a solicitação é tentada uma vez. O tempo total gasto tentando processar um comando sem obter uma resposta é Tempo limite * (Repetições + 1). Esse parâmetro será ignorado se RetryFlag for zero.

Opcode

Defina isso como o opcode AV/C desejado (apropriado para o tipo de subunit). Esse é um parâmetro necessário. Em resposta, se AlternateOpcodesFlag foi definido e um dos opcodes alternativos foi usado para corresponder à resposta, isso será definido como esse opcode alternativo.

OperandLength

Defina isso como o número de bytes usados para armazenar os operandos no membro Operands . Esse é um parâmetro necessário. Em resposta, esse parâmetro é definido como o número de bytes na lista de operandos usada pela resposta.

Operands[MAX_AVC_OPERAND_BYTES]

Defina isso como a lista de operando apropriada para o tipo de subunit e o opcode. Esse é um parâmetro necessário. Em resposta, esse parâmetro contém a lista operando da resposta.

NodeAddress

Reservado. Esse membro deve ser zero.

Generation

Reservado. Esse membro deve ser zero.

Comentários

Essa estrutura é usada com os códigos de função AVC_FUNCTION_COMMAND, AVC_FUNCTION_GET_REQUEST e AVC_FUNCTION_SEND_RESPONSE .

Requisitos

   
Cabeçalho avc.h (inclua Avc.h)

Confira também

AVC_FUNCTION

AVC_FUNCTION_COMMAND

AVC_FUNCTION_GET_REQUEST

AVC_FUNCTION_SEND_RESPONSE