Поделиться через


структура 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 указывает адрес. Установите значение one, если оно выполняется, в противном случае — нулевое значение.

AlternateOpcodesFlag

Это флаг, указывающий, является ли элемент AlternateOpcodes допустимым. Установите значение one, если оно имеется, в противном случае — нулевое значение.

TimeoutFlag

Задайте для него значение, если время ожидания по умолчанию не подходит для подсоединия. Если это задано, элемент timeout должен быть задан для требуемого времени ожидания (в 100 единицах).

RetryFlag

Задайте для этого значение, если число повторных попыток по умолчанию не подходит для подсоедине. Если задано это значение, повторить попытку-член необходимо задать для требуемого количества повторных попыток.

CommandType

Это указывает значение из перечисления AvcCommandType. Этот элемент используется только во время AVC_FUNCTION_GET_REQUEST. Он игнорируется в противном случае.

ResponseCode

Это указывает значение из перечисления AvcResponseCode. Этот элемент используется только во время AVC_FUNCTION_SEND_RESPONSE. Он игнорируется в противном случае.

SubunitAddr

Задайте для этого адрес непагаченной памяти, содержащей нужный адрес подсоединения, закодированный в соответствии с разделом 5.3.3 набора команд AV/C, общим спецификацией набора команд AV/C, ред. 3.0. Длина не требуется, так как кодировка адресов подъединенности подразумевает это. Этот параметр игнорируется, если SubunitAddrFlag равно нулю.

AlternateOpcodes

Задайте для этого адрес непагаченной памяти, содержащей нужный альтернативный список опкодов. Первым байтом списка опкодов является количество следующих кодов операций (эквивалентно количеству байтов). Общая длина памяти, содержащей альтернативный список опкодов, — AlternateOpcodes[0]+1. Этот параметр игнорируется, если AlternateOpcodesFlag равно нулю.

Timeout

Задайте для этого требуемое время ожидания в 100-ns единицах. Например, значение времени ожидания по умолчанию: Timeout.QuadPart = 1000000 (100 мс в единицах 100ns). Этот параметр игнорируется, если TimeoutFlag равно нулю.

Retries

Задайте для этого требуемое количество раз, avc.sys должны пытаться повторить запросы после каждого ожидания без ответа. Обратите внимание, что число повторных попыток равно нулю означает, что запрос выполняется один раз. Общее время, затраченное на обработку команды без получения ответа, — timeout * (повторы + 1). Этот параметр игнорируется, если RetryFlag равно нулю.

Opcode

Задайте для этого нужный код opcode AV/C (соответствующий типу подсоединения). Это обязательный параметр. Если был задан АльтернативныйopcodesFlag, а для сопоставления ответа используется один из альтернативных опкодов, то для этого альтернативного кода opcode задано значение.

OperandLength

Задайте для этого количество байтов, используемых для хранения операндов в элементе Операнды. Это обязательный параметр. В ответе этот параметр имеет количество байтов в списке операндов, используемых ответом.

Operands[MAX_AVC_OPERAND_BYTES]

Задайте для этого список операндов, подходящий для типа и кода opcode. Это обязательный параметр. В ответе этот параметр содержит список операндов ответа.

NodeAddress

Скрытный. Этот элемент должен быть равен нулю.

Generation

Скрытный. Этот элемент должен быть равен нулю.

Замечания

Эта структура используется с кодами функций AVC_FUNCTION_COMMAND, AVC_FUNCTION_GET_REQUEST и AVC_FUNCTION_SEND_RESPONSE.

Требования

Требование Ценность
заголовка avc.h (include Avc.h)

См. также

AVC_FUNCTION

AVC_FUNCTION_COMMAND

AVC_FUNCTION_GET_REQUEST

AVC_FUNCTION_SEND_RESPONSE