структура 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)

См. также раздел

AVC_FUNCTION

AVC_FUNCTION_COMMAND

AVC_FUNCTION_GET_REQUEST

AVC_FUNCTION_SEND_RESPONSE