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) |