Freigeben über


HDAUDIO_CODEC_RESPONSE-Struktur (hdaudio.h)

Die HDAUDIO_CODEC_RESPONSE-Struktur gibt entweder eine Antwort auf einen Codecbefehl oder eine nicht angeforderte Antwort eines Codecs an.

Syntax

typedef struct _HDAUDIO_CODEC_RESPONSE {
  union {
    struct {
      union {
        struct {
          ULONG Response : 21;
          ULONG SubTag : 5;
          ULONG Tag : 6;
        } Unsolicited;
        ULONG Response;
      };
      ULONG SDataIn : 4;
      ULONG IsUnsolicitedResponse : 1;
      ULONG HasFifoOverrun : 1;
      ULONG IsValid : 1;
    };
    ULONGLONG CompleteResponse;
  };
} HDAUDIO_CODEC_RESPONSE, *PHDAUDIO_CODEC_RESPONSE;

Member

Unsolicited

Gibt einen nicht angeforderten 32-Bit-Antwortwert an, der aus einem 26-Bit-Antwortwert und einem 6-Bit-Tagwert besteht.

Unsolicited.Response

Gibt einen 21-Bit-Wert für nicht angeforderte Antworten an.

Unsolicited.SubTag

Gibt ein 5-Bit-SubTag an.

Unsolicited.Tag

Gibt einen 6-Bit-Tagwert für eine nicht angeforderte Antwort an.

Response

Gibt einen Antwortwert an.

SDataIn

Gibt die 4-Bit-Codecadresse (SDI-Zeile) des Codecs an, der die Antwort generiert.

IsUnsolicitedResponse

Gibt an, ob die Antwort nicht angefordert wird. Wenn 1, wird die Antwort nicht angefordert. Wenn 0, wird die Antwort angefordert (d.a. eine Antwort auf einen Codec-Befehl).

HasFifoOverrun

Gibt an, ob im Antworteingaberingpuffer (RIRB) ein FIFO-Überlauf aufgetreten ist. Wenn 1, ist ein FIFO-Überlauf aufgetreten. Bei 0 ist kein FIFO-Überlauf aufgetreten.

IsValid

Gibt an, ob die Antwort gültig ist. Wenn 1, ist die Antwort gültig. Wenn 0, ist es ungültig.

CompleteResponse

Gibt eine vollständige 64-Bit-Antwortzusammenfassung an, die aus einer 32-Bit-Antwort, einer 4-Bit-Codecadresse, drei status Bits und 25 nicht verwendeten Bits (auf Null festgelegt) besteht. Dieser Wert wird hauptsächlich in Debugnachrichten verwendet.

Hinweise

Nach dem Aufrufen der TransferCodecVerbs-Routine können Funktionstreiber die HDAUDIO_CODEC_RESPONSE Struktur verwenden, um die Antworten auf ihre Codecbefehle zu decodieren. Die Befehle sind in den HDAUDIO_CODEC_TRANSFER Strukturen enthalten, die Clients als Aufrufparameter an diese Routine übergeben.

Der Rückruf für die RegisterEventCallback-Routine verwendet auch die HDAUDIO_CODEC_RESPONSE-Struktur.

Die meisten Elemente dieser Struktur enthalten hardwaregenerierte Werte, die der Bustreiber direkt aus dem entsprechenden RIRB-Eintrag kopiert. Die beiden Ausnahmen sind die Werte der Elemente IsValid und HasFifoOverrun, die die Bustreibersoftware in die Struktur schreibt, um den Fehler status der Antwort anzugeben. Informationen zum RIRB-Eingabeformat finden Sie in der Intel High Definition Audio Specification auf der Intel HD Audio-Website .

Wenn IsValid=0 ist, ist eine der folgenden Aktionen aufgetreten:

  • Wenn HasFifoOverrun=1 ist, ist der RIRB FIFO überlaufen.
  • Wenn HasFifoOverrun=0, konnte der Codec nicht reagieren.
Das unbenannte 25-Bit-Feld zwischen den Mitgliedern "UnsolicitedResponse " und "HasFifoOverrun " ist für zukünftige Erweiterungen reserviert. Der HD Audio-Buscontroller schreibt derzeit Nullen in dieses Feld.

Anforderungen

Anforderung Wert
Header hdaudio.h (einschließlich Hdaudio.h)

Weitere Informationen

HDAUDIO_CODEC_TRANSFER

RegisterEventCallback

TransferCodecVerbs