HDAUDIO_CODEC_RESPONSE structure

The HDAUDIO_CODEC_RESPONSE structure specifies either a response to a codec command or an unsolicited response from a codec.

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;

Members

Unsolicited

Unsolicited.Response

Unsolicited.SubTag

Unsolicited.Tag

Response

SDataIn

IsUnsolicitedResponse

HasFifoOverrun

IsValid

CompleteResponse

Specifies a complete, 64-bit response summary that consists of a 32-bit response, 4-bit codec address, three status bits, and 25 unused bits (set to zero). This value is mostly used in debug messages.

Remarks

After calling the TransferCodecVerbs routine, function drivers can use the HDAUDIO_CODEC_RESPONSE structure to decode the responses to their codec commands. The commands are contained in the HDAUDIO_CODEC_TRANSFER structures that clients pass to this routine as call parameters.

The callback for the RegisterEventCallback routine also uses the HDAUDIO_CODEC_RESPONSE structure.

Most members of this structure contain hardware-generated values that the bus driver copies directly from the corresponding RIRB entry. The two exceptions are the values of the IsValid and HasFifoOverrun members, which the bus driver software writes to the structure to indicate the error status of the response. For information about the RIRB entry format, see the Intel High Definition Audio Specification at the Intel HD Audio website.

If IsValid=0, one of the following has occurred:

  • If HasFifoOverrun=1, the RIRB FIFO overflowed.
  • If HasFifoOverrun=0, the codec failed to respond.
The unnamed 25-bitfield between the UnsolicitedResponse and HasFifoOverrun members is reserved for future expansion. The HD Audio bus controller currently writes zeros to this field.

Requirements

   
Header hdaudio.h (include Hdaudio.h)

See also

HDAUDIO_CODEC_TRANSFER

RegisterEventCallback

TransferCodecVerbs