KSPROPERTY_PIN_MODEDATAFORMATS

Клиенты используют свойство KSPROPERTY_PIN_MODEDATAFORMATS , чтобы получить список поддерживаемых форматов для каждого поддерживаемого режима обработки звукового сигнала для контактов, созданных фабрикой контактов.

Сводная таблица использования

Получить Присвойте параметру Назначение Тип дескриптора свойства Тип значения свойства
Да Нет Фильтр KSP_PIN, за которым следует GUID режима KSMULTIPLE_ITEM структуры, за которой следует последовательность структур KSDATAFORMAT

Комментарии

Клиенты используют это свойство для получения списка форматов, поддерживаемых для определенного режима обработки звукового сигнала с помощью контактов, созданных фабрикой контактов.

Укажите это свойство, используя KSP_PIN за которым следует GUID режима, где член KSP_PIN и GUID режима указывают фабрику контактов и режим, для которых возвращается список форматов.

KSPROPERTY_PIN_MODEDATAFORMATS возвращает поддерживаемые форматы в виде структуры KSMULTIPLE_ITEM , где каждый элемент структуры является ULONGLONG со смещением к определенной структуре KSDATAFORMAT в значении от начала KSMULTIPLE_ITEM.

  • Значение KSMULTIPLE_ITEM::Size включает размер KSMULTIPLE_ITEM и размеры каждого KSDATAFORMAT.

  • Значение KSMULTIPLE_ITEM::Count включает количество индексов для каждого KSDATAFORMAT.

Почти во всех случаях возвращаемые структуры KSDATAFORMAT фактически будут KSDATAFORMAT_WAVEFORMATEXTENSIBLE или KSDATAFORMAT_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_MODEDATAFORMATS и KSAUDIO_PACKETSIZE_CONSTRAINTS2 является предпочтительным подходом для драйверов, чтобы сообщать о поддерживаемых форматах режима обработки аудиосигналов и ограничениях размера буфера. Этот подход позволяет аудиосистеме Windows эффективно извлекать возможности потоковой передачи конечной точки без необходимости создавать многочисленные потоки для обнаружения форматов и размеров буфера, поддерживаемых конечной точкой.

Требования

Версия: Доступно начиная с Windows 10 версии 2004

Заголовок: ks.h (включая Ks.h)

См. также раздел

KSP_PIN

KSDATAFORMAT

KSAUDIO_PACKETSIZE_CONSTRAINTS2

KSDATAFORMAT_WAVEFORMATEX