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列舉中的 AVC_FUNCTION_COMMAND 列舉值。
SubunitAddrFlag
這是旗標,指出 SubunitAddr 成員是否指定位址。 如果這樣做,請將 設定為1,否則設定為零。
AlternateOpcodesFlag
這是旗標,指出 AlternateOpcodes 成員是否有效。 如果設定為 ,則設定為1,否則設定為零。
TimeoutFlag
如果預設逾時不適用於子單位,請將此設定為一。 如果已設定, Timeout 成員必須設定為 100-ns 單位) 所需的逾時 (。
RetryFlag
如果預設重試計數不適用於子單位,請將此設定為一。 如果已設定此選項, 重試成員必須 設定為所需的重試計數。
CommandType
這會指定來自 AvcCommandType 列舉的值。 這個成員只會在AVC_FUNCTION_GET_REQUEST期間使用。 否則會忽略它。
ResponseCode
這會指定來自 AvcResponseCode 列舉的值。 這個成員只會在AVC_FUNCTION_SEND_RESPONSE期間使用。 否則會忽略它。
SubunitAddr
將此設定為包含根據AV/C數位介面命令集一般規格第5.3.3節編碼所需子單位位址的非分頁記憶體位址,Rev 3.0。 不需要長度,因為子單位位址編碼意指這點。 如果 SubunitAddrFlag 為零,則會忽略此參數。
AlternateOpcodes
將此設定為包含所需替代 Opcode 清單之非分頁記憶體的位址。 opcode 清單的第一個字節是要遵循的 opcode 計數, (相當於位元組數目) 。 包含替代 opcode 列表的記憶體總長度為 AlternateOpcodes[0]+1。 如果 AlternateOpcodesFlag 為零,則會忽略此參數。
Timeout
將此設定為 100-ns 單位所需的逾時。 例如,預設逾時值為: Timeout.QuadPart = 1000000 (100 毫秒,以 100ns 單位為單位) 。 如果 TimeoutFlag 為零,則會忽略此參數。
Retries
將此設定為所需的次數 ,avc.sys 應該嘗試在每次逾時後重試要求,而不需回應。 請注意,重試計數為零表示要求一次。 嘗試處理命令而不取得回應的總時間量是逾時 * (重試 + 1) 。 如果 RetryFlag 為零,則會忽略此參數。
Opcode
將此設定為適用於子單位類型) 所需的 AV/C opcode (。 這是必要參數。 在回應上,如果已設定 AlternateOpcodesFlag ,而且其中一個替代的 opcode 用來比對回應,則會將它設定為該替代的 opcode。
OperandLength
將此設定為用來將操作數儲存在 Operands 成員中的位元元組數目。 這是必要參數。 在回應時,此參數會設定為回應所使用的操作數清單中的位元元組數目。
Operands[MAX_AVC_OPERAND_BYTES]
將此設定為適用於子單位類型和opcode的操作數清單。 這是必要參數。 在回應時,此參數包含回應的操作數清單。
NodeAddress
保留的。 這個成員必須是零。
Generation
保留的。 這個成員必須是零。
備註
此結構會與 AVC_FUNCTION_COMMAND、 AVC_FUNCTION_GET_REQUEST 和 AVC_FUNCTION_SEND_RESPONSE 函式程式代碼搭配使用。
規格需求
需求 | 值 |
---|---|
標頭 | avc.h (包含 Avc.h) |