HDAUDIO_CODEC_RESPONSE 结构 (hdaudio.h)

HDAUDIO_CODEC_RESPONSE 结构指定对编解码器命令的响应或来自编解码器的未经请求的响应。

语法

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;

成员

Unsolicited

指定由 26 位响应值和 6 位标记值组成的 32 位主动响应值。

Unsolicited.Response

指定 21 位未经请求的响应值。

Unsolicited.SubTag

指定 5 位子标记。

Unsolicited.Tag

为未经请求的响应指定 6 位标记值。

Response

指定响应值。

SDataIn

指定生成响应的编解码器的 4 位编解码器地址 (SDI 行) 。

IsUnsolicitedResponse

指定响应是否未经请求。 如果为 1,则响应是未经请求的。 如果为 0,则请求响应 (即) 对编解码器命令的响应。

HasFifoOverrun

指定是否在响应输入环形缓冲区中发生 FIFO 溢出, (RIRB) 。 如果为 1,则发生 FIFO 溢出。 如果为 0,则不发生 FIFO 溢出。

IsValid

指定响应是否有效。 如果为 1,则响应有效。 如果为 0,则无效。

CompleteResponse

指定完整的 64 位响应摘要,其中包含一个 32 位响应、4 位编解码器地址、三个状态位和 25 个未使用的位, (设置为零) 。 此值主要用于调试消息。

注解

调用 TransferCodecVerbs 例程后,函数驱动程序可以使用 HDAUDIO_CODEC_RESPONSE 结构对其编解码器命令的响应进行解码。 命令包含在客户端作为调用参数传递给此例程的 HDAUDIO_CODEC_TRANSFER 结构中。

RegisterEventCallback 例程的回调也使用 HDAUDIO_CODEC_RESPONSE 结构。

此结构的大多数成员都包含硬件生成的值,总线驱动程序直接从相应的 RIRB 条目复制这些值。 两个例外是 IsValidHasFifoOverrun 成员的值,总线驱动程序软件会写入 结构以指示响应的错误状态。 有关 RIRB 输入格式的信息,请参阅 Intel HD Audio 网站上的 Intel 高清晰度 音频 规范。

如果 IsValid=0,则发生以下情况之一:

  • 如果 HasFifoOverrun=1,则 RIRB FIFO 溢出。
  • 如果 HasFifoOverrun=0,则编解码器无法响应。
UnsolicitedResponseHasFifoOverrun 成员之间的未命名的 25 位字段保留供将来扩展使用。 HD 音频总线控制器当前向此字段写入零。

要求

要求
Header hdaudio.h (包括 Hdaudio.h)

另请参阅

HDAUDIO_CODEC_TRANSFER

RegisterEventCallback

TransferCodecVerbs