AVC_COMMAND_IRB-Struktur (avc.h)

Die AVC_COMMAND_IRB-Struktur definiert eine Struktur, die ein AV/C-Befehls- und Antwortpaar enthält.

Syntax

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;

Member

Common

Dies muss auf den AVC_FUNCTION_COMMAND-Enumerator aus der AVC_FUNCTION-Enumeration festgelegt werden.

SubunitAddrFlag

Dies ist ein Flag, das angibt, ob das SubunitAddr-Element eine Adresse angibt. Legen Sie auf 1 fest, wenn dies der Fall ist, andernfalls auf Null.

AlternateOpcodesFlag

Dies ist ein Flag, das angibt, ob das AlternateOpcodes-Element gültig ist. Legen Sie auf 1 fest, wenn dies der Wert ist, andernfalls auf Null.

TimeoutFlag

Legen Sie dies auf eins fest, wenn das Standardtimeout für die Untereinheit nicht geeignet ist. Wenn dies festgelegt ist, muss der Timeout-Member auf das gewünschte Timeout (in 100-ns-Einheiten) festgelegt werden.

RetryFlag

Legen Sie dies auf eins fest, wenn die Standardwiederholungsanzahl für die Untereinheit nicht geeignet ist. Wenn dies festgelegt ist, muss der Wiederholungsmember auf die gewünschte Wiederholungsanzahl festgelegt werden.

CommandType

Dies gibt einen Wert aus der AvcCommandType-Enumeration an. Dieser Member wird nur während der AVC_FUNCTION_GET_REQUEST verwendet. Sie wird andernfalls ignoriert.

ResponseCode

Dies gibt einen Wert aus der AvcResponseCode-Enumeration an. Dieser Member wird nur während AVC_FUNCTION_SEND_RESPONSE verwendet. Sie wird andernfalls ignoriert.

SubunitAddr

Legen Sie dies auf die Adresse des nicht auslagerten Arbeitsspeichers fest, der die gewünschte Untereinheitsadresse enthält, die gemäß Abschnitt 5.3.3 der allgemeinen Spezifikation des AV/C Digital Interface Command Set Rev 3.0 codiert ist. Es ist keine Länge erforderlich, da dies durch die Adresscodierung der Untereinheit impliziert wird. Dieser Parameter wird ignoriert, wenn SubunitAddrFlag null ist.

AlternateOpcodes

Legen Sie dies auf die Adresse des nicht auslagerten Arbeitsspeichers fest, der die gewünschte alternative Opcodeliste enthält. Das erste Byte der Opcodeliste ist die Anzahl der zu befolgenden Opcodes (entspricht der Anzahl der Bytes). Die Gesamtlänge des Arbeitsspeichers, der die alternative Opcodeliste enthält, ist AlternateOpcodes[0]+1. Dieser Parameter wird ignoriert, wenn AlternateOpcodesFlag null ist.

Timeout

Legen Sie dies auf das gewünschte Timeout in 100-ns-Einheiten fest. Der Standardtimeoutwert ist beispielsweise: Timeout.QuadPart = 10000000 (100 ms in 100ns-Einheiten). Dieser Parameter wird ignoriert, wenn TimeoutFlag null ist.

Retries

Legen Sie dies auf die gewünschte Anzahl von Wiederholungen fest,avc.sys nach jedem Timeout ohne Antwort versuchen sollen, Anforderungen zu wiederholen. Beachten Sie, dass eine Wiederholungsanzahl von 0 (null) bedeutet, dass die Anforderung einmal versucht wird. Die Gesamtdauer für die Verarbeitung eines Befehls, ohne eine Antwort zu erhalten, ist Timeout * (Wiederholungen + 1). Dieser Parameter wird ignoriert, wenn RetryFlag null ist.

Opcode

Legen Sie dies auf den gewünschten AV/C-Opcode fest (entsprechend dem Untereinheitstyp). Dies ist ein erforderlicher Parameter. Wenn AlternateOpcodesFlag festgelegt wurde und einer der alternativen Opcodes verwendet wurde, um die Antwort abzugleichen, wird dies auf diesen alternativen Opcode festgelegt.

OperandLength

Legen Sie dies auf die Anzahl der Bytes fest, die zum Speichern der Operanden im Operanden-Member verwendet werden. Dies ist ein erforderlicher Parameter. Bei der Antwort wird dieser Parameter auf die Anzahl der Bytes in der Operandenliste festgelegt, die von der Antwort verwendet wird.

Operands[MAX_AVC_OPERAND_BYTES]

Legen Sie dies auf die Operandenliste fest, die für den Untereinheitstyp und opcode geeignet ist. Dies ist ein erforderlicher Parameter. Bei der Antwort enthält dieser Parameter die Operandenliste der Antwort.

NodeAddress

Reserviert. Dieser Member muss 0 (null) sein.

Generation

Reserviert. Dieser Member muss 0 (null) sein.

Hinweise

Diese Struktur wird mit den Funktionscodes AVC_FUNCTION_COMMAND, AVC_FUNCTION_GET_REQUEST und AVC_FUNCTION_SEND_RESPONSE verwendet.

Anforderungen

Anforderung Wert
Header avc.h (include Avc.h)

Weitere Informationen

AVC_FUNCTION

AVC_FUNCTION_COMMAND

AVC_FUNCTION_GET_REQUEST

AVC_FUNCTION_SEND_RESPONSE