Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Клиенты используют свойство 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)