KSPROPERTY_JACK_DESCRIPTION3属性作为使用筛选器句柄访问的引脚属性实现。
在版本 22H2 及更高版本的 Windows作系统中,关联的 KSJACK_DESCRIPTION3 结构可用于指定和更改插孔的当前配置。
使用情况摘要表
获取 | 设置 | 目标 | 属性描述符类型 | 属性值类型 |
---|---|---|---|---|
是的 |
否 |
固定工厂(通过筛选器句柄) |
KSMULTIPLE_ITEM 后跟 KSJACK_DESCRIPTION3 结构的数组 |
属性值(实例数据)是KSMULTIPLE_ITEM,后跟KSJACK_DESCRIPTION3结构的数组。
返回值
KSPROPERTY_JACK_DESCRIPTION3属性请求返回一个KSMULTIPLE_ITEM,后跟 N KSJACK_DESCRIPTION3 结构的数组,其中 N = 与指定的网桥引脚关联的插孔数。 以下列表显示属性请求返回的项。
KSMULTIPLE_ITEM。Size = sizeof(KSMULTIPLE_ITEM) + N * sizeof(KSJACK_DESCRIPTION3)
KSMULTIPLE_ITEM。Count = N
KSJACK_DESCRIPTION3[0]
...
KSJACK_DESCRIPTION3[N-1]
注解
使用KSJACK_DESCRIPTION3和KSPROPERTY_JACK_DESCRIPTION3通信音频设备更改
Windows 音频系统在创建音频终结点期间缓存音频设备功能。 这些缓存值适用于存在 HW 音频引擎、格式支持、容器 ID、缓冲区大小特征等功能。这些缓存值在 Windows 安装生命周期内保留。 仅当音频驱动程序更新或 OS 升级期间,才会刷新它们。
借助 KSJACK_DESCRIPTION3,Windows 音频系统为音频驱动程序提供一种机制,用于请求丢弃和刷新所有缓存值。 请求可以通过音频设备功能(如资源约束)的更改触发。
每当驱动程序在运行时更改KSJACK_DESCRIPTION3的内容时,驱动程序都会触发现有的 KSEVENT_PINCAPS_JACKINFOCHANGE 事件。
Windows 音频系统维护在音频终结点上缓存的最后一个报告的 ConfigId 值。 检索 ConfigId 值以响应 KSEVENT_PINCAPS_JACKINFOCHANGE 事件,并在系统启动时正常处理音频终结点、音频 Endpoint Builder 服务重启、音频驱动程序更新或终结点的接口状态更改。
如果检索到的 ConfigId 值与以前存储的值不同,Windows 音频系统将放弃以前缓存的所有终结点功能并刷新它们。
建议的用法是在驱动程序中定义由 ConfigId (位掩码或枚举)值控制的多个音频终结点配置。 例如, ConfigId 为 1 可能指示音频引擎节点的存在,而 ConfigId 2 不会报告音频引擎节点。 驱动程序使用的 ConfigId 通过KSPROPERTY_JACK_DESCRIPTION3与 Windows 音频系统共享,并作用于将终结点与 Windows 音频系统缓存的功能同步。
ConfigId 的值对 Windows 不透明。 音频驱动程序可以使用在运行时选择的时间戳或递增值来代替位掩码或枚举,如上所述。 不建议使用此策略,因为它可能会导致启动期间不必要的终结点刷新或接口更改,以将上次存储的 ConfigId 值同步到新报告的值,即使终结点功能保持不变。 此方法还可能会增加驱动程序和 Windows 失同步的可能性,这可能会导致音频播放失败。
当 ConfigId 更改与用于作系统升级和驱动程序更新时,用于刷新终结点上的缓存值的机制相同。 将创建具有不同 ID 的新终结点,其中包含与终结点的新 ConfigId 设置匹配的刷新缓存值,然后将用户设置从旧终结点复制到新终结点,最后删除旧终结点。 有关详细信息,请参阅作系统升级中的音频终结点迁移过程。
要求
支持的最低客户端 |
在版本 22H2 及更高版本的 Windows作系统中可用。 |
标题 |
Ksmedia.h |