Condividi tramite


struttura AVC_COMMAND_IRB (avc.h)

La struttura AVC_COMMAND_IRB definisce una struttura che contiene una coppia di comandi e risposte AV/C.

Sintassi

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;

Membri

Common

Deve essere impostato sull'enumeratore AVC_FUNCTION_COMMAND dall'enumerazione AVC_FUNCTION.

SubunitAddrFlag

Si tratta di un flag che indica se il membro SubunitAddr specifica un indirizzo. Impostare su uno se lo fa; in caso contrario, impostare su zero.

AlternateOpcodesFlag

Si tratta di un flag che indica se il membro AlternateOpcodes è valido. Impostare su uno se è impostato su zero.

TimeoutFlag

Impostarlo su uno se il timeout predefinito non è appropriato per la subunit. Se questa opzione è impostata, il membro di timeout deve essere impostato sul timeout desiderato (in 100-ns unità).

RetryFlag

Impostare questo valore su uno se il numero di tentativi predefinito non è appropriato per la subunit. Se questa opzione è impostata, il membro deve essere impostato sul numero di tentativi desiderato.

CommandType

Specifica un valore dell'enumerazione AvcCommandType. Questo membro viene utilizzato solo durante AVC_FUNCTION_GET_REQUEST. In caso contrario, viene ignorato.

ResponseCode

Specifica un valore dell'enumerazione AvcResponseCode. Questo membro viene utilizzato solo durante AVC_FUNCTION_SEND_RESPONSE. In caso contrario, viene ignorato.

SubunitAddr

Impostarlo sull'indirizzo della memoria non di paging contenente l'indirizzo subunit desiderato codificato in base alla sezione 5.3.3 del set di comandi dell'interfaccia digitale AV/C Specifica generale, Rev 3.0. Non è necessaria alcuna lunghezza perché la codifica dell'indirizzo subunit implica questa operazione. Questo parametro viene ignorato se SubunitAddrFlag è zero.

AlternateOpcodes

Impostare questa opzione sull'indirizzo della memoria non di paging contenente l'elenco opcode alternativo desiderato. Il primo byte dell'elenco opcode è il numero di opcode da seguire (equivalente al numero di byte). La lunghezza totale della memoria contenente l'elenco opcode alternativo è AlternateOpcodes[0]+1. Questo parametro viene ignorato se AlternateOpcodesFlag è zero.

Timeout

Impostare questa opzione sul timeout desiderato in 100-ns unità. Ad esempio, il valore di timeout predefinito è: Timeout.QuadPart = 1000000 (100 ms in unità 100ns). Questo parametro viene ignorato se TimeoutFlag è zero.

Retries

Impostarlo sul numero di volte desiderato avc.sys dovrebbe tentare di ripetere le richieste dopo ogni timeout senza risposta. Si noti che un numero di tentativi pari a zero indica che la richiesta viene tentata una sola volta. La quantità totale di tempo impiegato per l'elaborazione di un comando senza ottenere una risposta è Timeout * (tentativi + 1). Questo parametro viene ignorato se RetryFlag è zero.

Opcode

Impostarlo sul codice operativo AV/C desiderato (appropriato per il tipo di subunit). Si tratta di un parametro obbligatorio. In risposta, se è stato impostato AlternateOpcodesFlag e uno dei codici opcode alternativi è stato usato per trovare la corrispondenza con la risposta, questo valore viene impostato su tale codice operativo alternativo.

OperandLength

Impostare questo valore sul numero di byte utilizzati per archiviare gli operandi nel membro operandi. Si tratta di un parametro obbligatorio. In risposta, questo parametro viene impostato sul numero di byte nell'elenco di operandi usato dalla risposta.

Operands[MAX_AVC_OPERAND_BYTES]

Impostare questa opzione sull'elenco di operandi appropriato per il tipo di subunit e il codice operativo. Si tratta di un parametro obbligatorio. In risposta, questo parametro contiene l'elenco operando della risposta.

NodeAddress

Riservato. Questo membro deve essere zero.

Generation

Riservato. Questo membro deve essere zero.

Osservazioni

Questa struttura viene usata con i codici di funzione AVC_FUNCTION_COMMAND, AVC_FUNCTION_GET_REQUEST e AVC_FUNCTION_SEND_RESPONSE.

Fabbisogno

Requisito Valore
intestazione avc.h (include Avc.h)

Vedere anche

AVC_FUNCTION

AVC_FUNCTION_COMMAND

AVC_FUNCTION_GET_REQUEST

AVC_FUNCTION_SEND_RESPONSE