AVC_COMMAND_IRB estructura (avc.h)
La estructura AVC_COMMAND_IRB define una estructura que contiene un par de comandos y respuestas de AV/C.
Sintaxis
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;
Miembros
Common
Debe establecerse en el enumerador AVC_FUNCTION_COMMAND de la enumeración AVC_FUNCTION.
SubunitAddrFlag
Se trata de una marca que indica si el miembro SubunitAddr especifica una dirección. Establezca en uno si lo hace; de lo contrario, establezca en cero.
AlternateOpcodesFlag
Se trata de una marca que indica si el miembro AlternateOpcodes es válido. Establézcalo en uno si es; de lo contrario, establezca en cero.
TimeoutFlag
Establézcalo en uno si el tiempo de espera predeterminado no es adecuado para la subunidad. Si se establece, el miembro Timeout debe establecerse en el tiempo de espera deseado (en unidades de 100-ns).
RetryFlag
Establézcalo en uno si el recuento de reintentos predeterminado no es adecuado para la subunidad. Si se establece, el miembro Retries debe establecerse en el número de reintentos deseado.
CommandType
Especifica un valor de la enumeración AvcCommandType. Este miembro solo se usa durante AVC_FUNCTION_GET_REQUEST. De lo contrario, se omite.
ResponseCode
Especifica un valor de la enumeración AvcResponseCode. Este miembro solo se usa durante AVC_FUNCTION_SEND_RESPONSE. De lo contrario, se omite.
SubunitAddr
Establézcalo en la dirección de memoria no paginada que contiene la dirección de subunidad deseada codificada según la sección 5.3.3 de la especificación general del conjunto de comandos de interfaz digital de AV/C, Rev 3.0. No es necesaria ninguna longitud porque la codificación de direcciones de subbúnit implica esto. Este parámetro se omite si SubunitAddrFlag es cero.
AlternateOpcodes
Establézcalo en la dirección de la memoria no paginada que contiene la lista de códigos de operación alternativos deseada. El primer byte de la lista de códigos de operación es el recuento de códigos de operación que se van a seguir (equivalente al número de bytes). La longitud total de la memoria que contiene la lista de códigos de operación alternativo es AlternateOpcodes[0]+1. Este parámetro se omite si AlternateOpcodesFlag es cero.
Timeout
Establézcalo en el tiempo de espera deseado en unidades de 100-ns. Por ejemplo, el valor de tiempo de espera predeterminado es: Timeout.QuadPart = 10000000 (100 ms en unidades de 100ns). Este parámetro se omite si TimeoutFlag es cero.
Retries
Establézcalo en el número deseado de veces avc.sys debe intentar reintentar las solicitudes después de cada tiempo de espera sin una respuesta. Tenga en cuenta que un recuento de reintentos de cero significa que la solicitud se intenta una vez. La cantidad total de tiempo dedicado a procesar un comando sin obtener una respuesta es Timeout * (Reintentos + 1). Este parámetro se omite si RetryFlag es cero.
Opcode
Establézcalo en el código de operación de AV/C deseado (adecuado para el tipo de subunidad). Es un parámetro obligatorio. En la respuesta, si se estableció AlternateOpcodesFlag y se usó uno de los códigos de operación alternativos para coincidir con la respuesta, se establece en ese código de operación alternativo.
OperandLength
Establézcalo en el número de bytes usados para almacenar los operandos en el miembro Operandos . Es un parámetro obligatorio. En respuesta, este parámetro se establece en el número de bytes de la lista de operandos que usa la respuesta.
Operands[MAX_AVC_OPERAND_BYTES]
Establézcalo en la lista de operandos adecuada para el tipo de subbúsco y el código de operación. Es un parámetro obligatorio. En la respuesta, este parámetro contiene la lista de operandos de la respuesta.
NodeAddress
Reservado. Este miembro debe ser cero.
Generation
Reservado. Este miembro debe ser cero.
Comentarios
Esta estructura se usa con los códigos de función AVC_FUNCTION_COMMAND, AVC_FUNCTION_GET_REQUEST y AVC_FUNCTION_SEND_RESPONSE .
Requisitos
Requisito | Valor |
---|---|
Header | avc.h (incluir Avc.h) |