AVC_FUNCTION_SEND_RESPONSE

Der AVC_FUNCTION_SEND_RESPONSE Funktionscode wird verwendet, um auf Anforderungen von AV/C-Einheiten und -Untereinheiten zu reagieren.

E/A-Statusblock

Bei erfolgreicher Ausführung kann der AV/C-Protokolltreiber Irp-IoStatus.Status> auf folgendes festlegen:

  • STATUS_SUCCESS, wenn die Antwort aufgrund einer oder mehrerer Busrücksetzungen seit der ursprünglichen Anforderung verworfen wird, oder

  • STATUS_PENDING, wenn die Antwort erfolgreich an 61883.sys übermittelt wurde (impliziert eine erfolgreiche Übermittlung an den Initiator der Anforderung).

Mögliche andere Rückgabewerte sind:

Rückgabewert BESCHREIBUNG
STATUS_INSUFFICIENT_RESOURCES Fehler bei der internen Pufferzuweisung.

Kommentare

Diese Funktion verwendet die AVC_COMMAND_IRB-Struktur, wie unten gezeigt.

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;

Anforderungen

Header: Avc.h (Avc.h einschließen)

AVC_COMMAND_IRB-Eingabe

Common
Der Function-Unterteil dieses Members muss auf AVC_FUNCTION_SEND_RESPONSE aus der AVC_FUNCTION-Enumeration festgelegt werden.

SubunitAddrFlag
Legen Sie auf den Wert fest, der aus der AVC_FUNCTION_GET_REQUEST abgeschlossen wurde.

AlternateOpcodesFlag
Ignoriert.

TimeoutFlag
Ignoriert.

RetryFlag
Ignoriert.

CommandType
Wird für Antworten ignoriert.

ResponseCode
Dieser Member muss auf einen der Werte aus der AvcResponseCode-Enumeration festgelegt werden.

SubunitAddr
Legen Sie auf den Wert fest, der aus der AVC_FUNCTION_GET_REQUEST abgeschlossen wurde.

AlternateOpcodes
Ignoriert.

Timeout
Ignoriert.

Wiederholungsversuche
Ignoriert.

Opcode
Dieser muss den für die Antwort geeigneten AV/C-Einheits-Opcode enthalten (kann sich von dem in der ursprünglichen Anforderung angegebenen Opcode unterscheiden).

OperandLength
Legen Sie auf die Anzahl der Bytes in der Operandenliste der Antwort fest.

Operanden
Die Operandenliste der Antwort.

NodeAddress
Die Knotenadresse der Quelle der ursprünglichen Anforderung.

Generation
Die Generierungs-ID, die aus der ursprünglichen Anforderung abgerufen wurde.

Im Kontext der GUID_AVC_CLASS Geräteschnittstelle wird der AVC_FUNCTION_SEND_RESPONSE Funktionscode verwendet, um nur auf AV/C-Einheitenanforderungen zu reagieren.

Bei virtuellen Instanzen von avc.sys (d. h. Instanzen, die die GUID_VIRTUAL_AVC_CLASS Geräteschnittstelle registrieren), wird der AVC_FUNCTION_SEND_RESPONSE Funktionscode verwendet, um auf ANFORDERUNGEN von AV/C-Einheiten und Untereinheiten zu reagieren.

Wenn die erste Antwort den AVC_RESPONSE_INTERIM Antwortcode (aus der AvcResponseType-Enumeration ) verwendet, wird eine Nachverarbeitung erwartet. Die Member NodeAddress und Generation , die durch Abschluss der AVC_FUNCTION_GET_REQUEST ursprünglichen Funktion abgerufen wurden, müssen in nachfolgenden Antworten verwendet werden. In jedem Fall sollte die nächste AVC_FUNCTION_GET_REQUEST-Funktion übermittelt werden, bevor sie von der ursprünglichen AVC_FUNCTION_SEND_RESPONSE Abschlussroutine zurückgegeben wird, damit die nächste Einheitenanforderung empfangen werden kann.

Die empfohlene Verwendung dieser Struktur besteht darin, den Inhalt der ursprünglichen Anforderung zu verwenden und die Elemente Opcode, OperandLength und Operands entsprechend der Antwort zu aktualisieren.

Dieser Funktionscode kann unter IRQL >= DISPATCH_LEVEL aufgerufen werden.

Weitere Informationen

AVC_FUNCTION_GET_REQUEST

AvcResponseCode

AVC_FUNCTION