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 に設定します。 この値を設定する場合は、 Retrys メンバーを目的の再試行回数に設定する必要があります。
CommandType
これは、AvcCommandType 列挙の値を指定します。 このメンバーは、AVC_FUNCTION_GET_REQUEST中にのみ使用されます。 それ以外の場合は無視されます。
ResponseCode
これは、AvcResponseCode 列挙の値を指定します。 このメンバーは、AVC_FUNCTION_SEND_RESPONSE中にのみ使用されます。 それ以外の場合は無視されます。
SubunitAddr
これを、AV/C Digital Interface Command Set General Specification, 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 関数コードと共に使用されます。
要件
要件 | 値 |
---|---|
Header | avc.h (Avc.h を含む) |