共用方式為


KSPROPERTY_PIN_MODEDATAFORMATS

用戶端會使用 KSPROPERTY_PIN_MODEDATAFORMATS 屬性來擷取每個支援的音訊訊號處理模式所支援格式的清單,以供針腳處理站具現化。

使用量摘要表格

Get 集合 目標 屬性描述元類型 屬性值類型
篩選 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