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;
Members
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 è, altrimenti impostare su zero.
TimeoutFlag
Impostare questo valore su uno se il timeout predefinito non è appropriato per la subunit. Se questa impostazione è impostata, il membro Timeout deve essere impostato sul timeout desiderato (in 100-ns unità).
RetryFlag
Impostarlo su uno se il numero di tentativi predefinito non è appropriato per la subunit. Se questa impostazione è impostata, il membro Retries 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. Viene ignorato in caso contrario.
ResponseCode
Specifica un valore dell'enumerazione AvcResponseCode. Questo membro viene utilizzato solo durante la AVC_FUNCTION_SEND_RESPONSE. Viene ignorato in caso contrario.
SubunitAddr
Impostare questo valore sull'indirizzo della memoria non di paging contenente l'indirizzo di 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 questo. Questo parametro viene ignorato se SubunitAddrFlag è zero.
AlternateOpcodes
Impostarlo 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 questo valore sul timeout desiderato in 100-ns unità. Ad esempio, il valore di timeout predefinito è Timeout.QuadPart = 1000000 (100 ms in 100 unità). Questo parametro viene ignorato se TimeoutFlag è zero.
Retries
Impostare questo valore sul numero di volte desiderato avc.sys deve 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
Impostare questa opzione sul codice operativo AV/C desiderato (appropriato per il tipo di subunit). Parametro obbligatorio. In risposta, se AlternateOpcodesFlag è stato impostato 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 . Parametro obbligatorio. In risposta, questo parametro viene impostato sul numero di byte nell'elenco di operandi utilizzato dalla risposta.
Operands[MAX_AVC_OPERAND_BYTES]
Impostarlo sull'elenco di operandi appropriato per il tipo di subunit e il codice operativo. 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.
Commenti
Questa struttura viene usata con i codici di funzione AVC_FUNCTION_COMMAND, AVC_FUNCTION_GET_REQUEST e AVC_FUNCTION_SEND_RESPONSE .
Requisiti
Requisito | Valore |
---|---|
Intestazione | avc.h (include Avc.h) |