次の方法で共有


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_COMMANDAVC_FUNCTION_GET_REQUEST、および AVC_FUNCTION_SEND_RESPONSE 関数コードと共に使用されます。

必要条件

要件 価値
ヘッダー avc.h (Avc.h を含む)

関連項目

AVC_FUNCTION

AVC_FUNCTION_COMMAND

AVC_FUNCTION_GET_REQUEST

AVC_FUNCTION_SEND_RESPONSE