avc.h) (AVC_COMMAND_IRB 结构
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 枚举中的AVC_FUNCTION_COMMAND枚举器。
SubunitAddrFlag
这是一个标志,指示 SubunitAddr 成员是否指定地址。 如果存在,则设置为 1,否则设置为零。
AlternateOpcodesFlag
这是一个标志,指示 AlternateOpcodes 成员是否有效。 如果为 ,则设置为 1,否则设置为零。
TimeoutFlag
如果默认超时不适用于子单位,则将此设置为 1。 如果已设置,则 Timeout 成员必须设置为所需的超时 (,以 100-ns 单位) 。
RetryFlag
如果默认重试计数不适用于子单位,则将此设置为 1。 如果已设置,则必须将 重试 成员设置为所需的重试计数。
CommandType
这将指定 AvcCommandType 枚举中的值。 此成员仅在AVC_FUNCTION_GET_REQUEST期间使用。 否则将忽略它。
ResponseCode
这会指定 AvcResponseCode 枚举中的值。 此成员仅在AVC_FUNCTION_SEND_RESPONSE期间使用。 否则将忽略它。
SubunitAddr
将此设置为包含根据 AV/C 数字接口命令集通用规范修订版 3.0 第 5.3.3 节编码的所需子单元地址的非分页内存的地址。 不需要长度,因为子单元地址编码暗示了这一点。 如果 SubunitAddrFlag 为零,则忽略此参数。
AlternateOpcodes
将此设置为包含所需备用操作码列表的非分页内存的地址。 操作码列表的第一个字节是后跟的操作码计数 (等效于) 的字节数。 包含备用操作码列表的内存的总长度为 AlternateOpcodes[0]+1。 如果 AlternateOpcodesFlag 为零,则忽略此参数。
Timeout
将此设置为所需的超时值(以 100-ns 单位为单位)。 例如,默认超时值为: Timeout.QuadPart = 1000000 (100ms,以 100ns 为单位) 。 如果 TimeoutFlag 为零,则忽略此参数。
Retries
将此值设置为 avc.sys在每次 超时后在没有响应的情况下尝试重试请求的所需次数。 请注意,重试计数为零意味着请求尝试一次。 尝试在不收到响应的情况下处理命令所用的总时间是超时 * (重试数 + 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 函数代码一起使用。
要求
要求 | 值 |
---|---|
Header | avc.h (包括 Avc.h) |