структура AVC_COMMAND_IRB (avc.h)
Структура AVC_COMMAND_IRB определяет структуру, содержащую пару команд AV/C и ответа.
Синтаксис
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;
Члены
Common
Для этого параметра необходимо задать AVC_FUNCTION_COMMAND перечислитель из перечисления AVC_FUNCTION.
SubunitAddrFlag
Это флаг, указывающий, указывает ли элемент SubunitAddr адрес. Присвойте значение 1, если это так, в противном случае — нулевое значение.
AlternateOpcodesFlag
Это флаг, указывающий, является ли элемент AlternateOpcodes допустимым . Задайте значение one, если оно имеет значение , в противном случае — значение 0.
TimeoutFlag
Задайте для него значение , если время ожидания по умолчанию не подходит для подсоединия. Если этот параметр задан, для элемента Timeout должно быть задано требуемое время ожидания (в единицах 100 нс).
RetryFlag
Задайте для этого параметра значение , если число повторных попыток по умолчанию не подходит для подсоединия. Если этот параметр задан, для элемента Retries должно быть задано требуемое число повторных попыток.
CommandType
Указывает значение из перечисления AvcCommandType. Этот элемент используется только во время AVC_FUNCTION_GET_REQUEST. В противном случае он игнорируется.
ResponseCode
Указывает значение из перечисления AvcResponseCode. Этот элемент используется только во время AVC_FUNCTION_SEND_RESPONSE. В противном случае он игнорируется.
SubunitAddr
Задайте для этого адреса непагрегированной памяти, содержащей нужный адрес подсоединения, закодированный в соответствии с разделом 5.3.3 общей спецификации набора команд цифрового интерфейса AV/C, ред. 3.0. Длина не требуется, так как это подразумевает кодирование адресов подсоединия. Этот параметр игнорируется, если subunitAddrFlag равно нулю.
AlternateOpcodes
Задайте для этого параметра адрес невыгресоченной памяти, содержащий нужный список альтернативных кодов операций. Первый байт списка кодов операций — это количество следующих кодов операций (эквивалентно количеству байтов). Общая длина памяти, содержащей список альтернативных кодов операций, — AlternateOpcodes[0]+1. Этот параметр игнорируется, если параметр AlternateOpcodesFlag равен нулю.
Timeout
Задайте для этого параметра требуемое время ожидания в 100 единицах. Например, значение времени ожидания по умолчанию: Timeout.QuadPart = 1000000 (100 мс в единицах 100 нс). Этот параметр игнорируется, если timeoutFlag равно нулю.
Retries
Задайте для этого параметра требуемое количество раз ,avc.sys следует пытаться повторять запросы после каждого тайм-аута без ответа. Обратите внимание, что число повторных попыток, равное нулю, означает, что запрос выполняется один раз. Общее время, затраченное на обработку команды без получения ответа, — Timeout * (Retries + 1). Этот параметр игнорируется, если параметр RetryFlag равен нулю.
Opcode
Задайте для этого параметра нужный код операции AV/C (соответствующий типу подсоединия). Это обязательный параметр. Если в ответе задано значение AlternateOpcodesFlag , а для сопоставления ответа использовался один из альтернативных кодов операций, для этого задается альтернативный код операции.
OperandLength
Задайте для этого параметра количество байтов, используемых для хранения операндов в элементе операндов . Это обязательный параметр. При ответе для этого параметра задается количество байтов в списке операндов, используемом ответом.
Operands[MAX_AVC_OPERAND_BYTES]
Задайте для этого параметра список операндов, соответствующий типу подсоединия и коду операции. Это обязательный параметр. При ответе этот параметр содержит список операндов ответа.
NodeAddress
Зарезервировано. Этот элемент должен быть равен нулю.
Generation
Зарезервировано. Этот элемент должен быть равен нулю.
Комментарии
Эта структура используется с кодами функций AVC_FUNCTION_COMMAND, AVC_FUNCTION_GET_REQUEST и AVC_FUNCTION_SEND_RESPONSE .
Требования
Требование | Значение |
---|---|
Заголовок | avc.h (включая Avc.h) |