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,则设置为 1,否则设置为零。
TimeoutFlag
如果默认超时不适用于子单位,则设置为一个。 如果已设置,则必须将 超时 成员设置为所需的超时(以 100-ns 单位为单位)。
RetryFlag
如果默认重试计数不适合子单位,请将此值设置为一个。 如果已设置,则必须将 重试 成员设置为所需的重试计数。
CommandType
这指定 AvcCommandType 枚举中的值。 此成员仅在AVC_FUNCTION_GET_REQUEST期间使用。 否则,将忽略它。
ResponseCode
这指定 AvcResponseCode 枚举中的值。 此成员仅在AVC_FUNCTION_SEND_RESPONSE期间使用。 否则,将忽略它。
SubunitAddr
将此地址设置为包含根据 AV/C 数字接口命令集常规规范第 5.3.3 节编码的所需子单元地址的非分页内存的地址。 不需要长度,因为子单位地址编码意味着这一点。 如果 subunitAddrFlag 为零,则忽略此参数。
AlternateOpcodes
将此设置为包含所需备用作码列表的非分页内存的地址。 作码列表的第一个字节是要遵循的作码计数(相当于字节数)。 包含备用作码列表的内存的总长度为 AlternateOpcodes[0]+1。 如果 AlternateOpcodesFlag 为零,则忽略此参数。
Timeout
将此设置为 100-ns 个单位的所需超时。 例如,默认超时值为:Timeout.QuadPart = 1000000 (100ns 单位中的 100 毫秒)。 如果 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 函数代码。
要求
要求 | 价值 |
---|---|
标头 | avc.h (包括 Avc.h) |