KSPROPERTY_PIN_MODEDATAFORMATS

客户端使用 KSPROPERTY_PIN_MODEDATAFORMATS 属性检索引脚工厂实例化引脚支持的每个音频信号处理模式支持的格式列表。

使用情况摘要表

获取 设置 目标 属性描述符类型 属性值类型
筛选器 KSP_PIN,后跟模式 GUID KSMULTIPLE_ITEM 结构,后跟 KSDATAFORMAT 结构的序列

注解

客户端使用此属性检索特定音频信号处理模式支持的格式列表,这些格式由引脚工厂实例化。

使用 KSP_PIN 后跟 Mode GUID 指定此属性,其中 KSP_PIN 成员和 Mode GUID 指定要为其返回格式列表的引脚工厂和 Mode。

KSPROPERTY_PIN_MODEDATAFORMATS将支持的格式作为KSMULTIPLE_ITEM结构返回,其中结构中的每个项都是 ULONGLONG,其偏移量为值中从KSMULTIPLE_ITEM开头开始的特定 KSDATAFORMAT 结构。

  • KSMULTIPLE_ITEM::Size 值包括KSMULTIPLE_ITEM的大小和每个 KSDATAFORMAT 的大小。

  • KSMULTIPLE_ITEM::Count 值包括每个 KSDATAFORMAT 的索引计数。

在几乎所有情况下,返回的 KSDATAFORMAT 结构实际上是 KSDATAFORMAT_WAVEFORMATEXTENSIBLEKSDATAFORMAT_WAVEFORMATEX 结构,其大小匹配。

例如,支持两种格式的固定工厂的值如下所示。

{
    // Example Property Value Result, with 2 formats
    // When computing the FormatSize make sure to align the size to ULONGLONG
    // KSDATAFORMAT::Size is WDF_ALIGN_SIZE_UP(KsDataFormat->FormatSize, sizeof(ULONGLONG));
    // Size of the KSMULTIPLE_ITEM structure + Size of two ULONG offset values + Size of first format + Size of second format
    sizeof(KSMULTIPLE_ITEM) + sizeof(ULONG)*2 + (First KSDATAFORMAT::Size) + (Second KSDATAFORMAT::Size),
    // Number of formats being returned
    2,
    // Offset of the first format from the beginning of the Property Value
    2 * sizeof(ULONG),
    // Offset of the second format from the beginning of the Property Value
    2 * sizeof(ULONG) + (First KSDATAFORMAT::Size),
    // First format structure
    {(First KSDATAFORMAT)},
    // Second format structure
    {(Second KSDATAFORMAT)}
}

有关详细信息,请参阅 可扩展Wave-Format描述符

支持的模式格式和缓冲区建议

从 Windows 10 版本 2004 开始,驱动程序使用 KSPROPERTY_PIN_MODEDATAFORMATSKSAUDIO_PACKETSIZE_CONSTRAINTS2 是报告支持的音频信号处理模式格式和缓冲区大小约束的首选方法。 使用此方法,Windows 音频系统可以有效地检索终结点流式处理功能,而无需创建大量流来发现终结点支持的格式和缓冲区大小。

要求

版本:从 Windows 10 版本 2004 开始可用

标头: ks.h (包括 Ks.h)

另请参阅

KSP_PIN

KSDATAFORMAT

KSAUDIO_PACKETSIZE_CONSTRAINTS2

KSDATAFORMAT_WAVEFORMATEX