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 条目复制这些值。 两个例外是 IsValid 和 HasFifoOverrun 成员的值,总线驱动程序软件会写入 结构以指示响应的错误状态。 有关 RIRB 输入格式的信息,请参阅 Intel HD Audio 网站上的 Intel 高清晰度 音频 规范。
如果 IsValid=0,则发生以下情况之一:
- 如果 HasFifoOverrun=1,则 RIRB FIFO 溢出。
- 如果 HasFifoOverrun=0,则编解码器无法响应。
要求
要求 | 值 |
---|---|
Header | hdaudio.h (包括 Hdaudio.h) |