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


typedef struct _HDAUDIO_CODEC_RESPONSE {
  union {
    struct {
      union {
        struct {
          ULONG Response  :21;
          ULONG SubTag  :5;
          ULONG Tag  :4;
        } Unsolicited;
        ULONG  Response;
      ULONG SDataIn  :4;
      ULONG IsUnsolicitedResponse  :1;
      ULONG   :25;
      ULONG HasFifoOverrun  :1;
      ULONG IsValid  :1;
    ULONGLONG CompleteResponse;



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.


Header hdaudio.h (include Hdaudio.h)

See Also