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 に設定し、それ以外の場合は 0 に設定します。
AlternateOpcodesFlag
これは、AlternateOpcodes メンバーが有効かどうかを示すフラグです。 ある場合は 1 に設定し、それ以外の場合は 0 に設定します。
TimeoutFlag
既定のタイムアウトがサブユニットに適していない場合は、これを 1 に設定します。 これを設定する場合は、Timeout メンバーを目的のタイムアウト (100 ns 単位) に設定する必要があります。
RetryFlag
既定の再試行回数がサブユニットに適していない場合は、これを 1 に設定します。 これを設定する場合は、再試行 メンバーを目的の再試行回数に設定する必要があります。
CommandType
これは、AvcCommandType 列挙体の値を指定します。 このメンバーは、AVC_FUNCTION_GET_REQUEST中にのみ使用されます。 それ以外の場合は無視されます。
ResponseCode
これは、AvcResponseCode 列挙型の値を指定します。 このメンバーは、AVC_FUNCTION_SEND_RESPONSE中にのみ使用されます。 それ以外の場合は無視されます。
SubunitAddr
これを、AV/C デジタル インターフェイス コマンド セットの一般的な仕様 Rev 3.0 のセクション 5.3.3 に従ってエンコードされた目的のサブユニット アドレスを含む非ページ メモリのアドレスに設定します。 サブユニット アドレス エンコードはこれが意味するため、長さは必要ありません。 SubunitAddrFlag 0 の場合、このパラメーターは無視されます。
AlternateOpcodes
これを、目的の代替オペコード リストを含む非ページ メモリのアドレスに設定します。 オペコード リストの最初のバイトは、後に続くオペコードの数です (バイト数に相当)。 代替オペコード リストを含むメモリの合計長は AlternateOpcodes[0]+1 です。 AlternateOpcodesFlag が 0 の場合、このパラメーターは無視されます。
Timeout
これを 100 ns 単位で目的のタイムアウトに設定します。 たとえば、既定のタイムアウト値は、Timeout.QuadPart = 1000000 (100ns 単位で 100 ミリ秒) です。 TimeoutFlag が 0 の場合、このパラメーターは無視されます。
Retries
これを、タイムアウトするたびに応答なしで要求を再試行 avc.sys 必要な回数に設定します。 再試行回数が 0 の場合は、要求が 1 回試行されることを意味します。 応答を受け取らずにコマンドの処理に費やされた合計時間は Timeout * (再試行 + 1) です。 RetryFlag が 0 の場合、このパラメーターは無視されます。
Opcode
これを目的の AV/C オペコードに設定します (サブユニットの種類に適しています)。 これは必須のパラメーターです。 応答時に、AlternateOpcodesFlag が設定され、代替オペコードの 1 つが応答に一致するために使用された場合、これはその代替オペコードに設定されます。
OperandLength
これを、オペランド メンバーにオペランドを格納するために使用されるバイト数に設定します。 これは必須のパラメーターです。 応答時に、このパラメーターは応答で使用されるオペランド リスト内のバイト数に設定されます。
Operands[MAX_AVC_OPERAND_BYTES]
これを、サブユニット型とオペコードに適したオペランド リストに設定します。 これは必須のパラメーターです。 応答時に、このパラメーターには応答のオペランド リストが含まれます。
NodeAddress
引っ込み思案。 このメンバーは 0 である必要があります。
Generation
引っ込み思案。 このメンバーは 0 である必要があります。
備考
この構造体は、AVC_FUNCTION_COMMAND、AVC_FUNCTION_GET_REQUEST、および AVC_FUNCTION_SEND_RESPONSE 関数コードと共に使用されます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | avc.h (Avc.h を含む) |