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

要件

要件
Header avc.h (Avc.h を含む)

こちらもご覧ください

AVC_FUNCTION

AVC_FUNCTION_COMMAND

AVC_FUNCTION_GET_REQUEST

AVC_FUNCTION_SEND_RESPONSE