KSPROPERTY_PIN_PROPOSEDATAFORMAT2
ОС использует свойство KSPROPERTY_PIN_PROPOSEDATAFORMAT2 , чтобы определить, имеет ли драйвер предпочтительный формат данных в контакте с заданным атрибутом.
Сводная таблица использования
Получить | Присвойте параметру | Назначение | Тип дескриптора свойства | Тип значения свойства |
---|---|---|---|---|
Да | Нет | Фильтр | См. примечания | KSDATAFORMAT |
Комментарии
Дескриптор свойства — это KSP_PIN за которым следует KSMULTIPLE_ITEM , указывающее количество атрибутов переменной размера, следующих за KSMULTIPLE_ITEM. Каждый атрибут начинается с заголовка KSATTRIBUTE , за которым следуют данные, относящиеся к атрибуту. Атрибуты выступают в качестве параметров для запроса свойства, указывая предлагаемые форматы данных.
KSPROPERTY_PIN_PROPOSEDATAFORMAT2 включает структуру типа KSMULTIPLE_ITEM,
Единственным атрибутом, поддерживаемым для свойства, является KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE , и он указывается с помощью структуры KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE . Обратите внимание, что структура KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE начинается с элемента KSATTRIBUTE . Дополнительные сведения см. в разделе Режимы обработки звуковых сигналов.
KSPROPERTY_TYPE_GET поддерживается только в том случае, если закрепление имеет предложенные форматы. Эта функция позволяет звуковому драйверу предоставлять сведения о формате данных по умолчанию в контакте с заданным атрибутом.
Фильтр KS возвращает STATUS_SUCCESS, имеет ли закрепление предпочтительный формат данных для указанного атрибута. Если пин-код не имеет предпочтительного формата данных для указанного атрибута, он возвращает STATUS_NOT_SUPPORTED. При любых других сбоях возвращается соответствующая ошибка. Если драйвер поддерживает это свойство, ОС всегда будет использовать этот формат для конкретного режима обработки сигнала. KSPROPERTY_TYPE_SET не поддерживается для этого свойства.
В следующей таблице представлено описание элементов PinPropertyKSPROPERTY_PIN_PROPOSEDATAFORMAT2 входной структуры.
Элемент | Описание |
---|---|
PinProperty.Property.Set | Свойство PinProperty.Property.Set должно иметь значение KSPROPSETID_Pin для запрошенного режима. |
PinProperty.Property.Id | Для PinProperty.Property.Id всегда устанавливается значение KSPROPERTY_PIN_PROPOSEDATAFORMAT2. |
PinProperty.Property.Flags | Для свойства PinProperty.Property.Flags можно задать значение KSPROPERTY_TYPE_GET или KSPROPERTY_TYPE_BASICSUPPORT, чтобы получить основные сведения о свойстве. |
PinProperty.PinId | PinProperty.PinId определяет целевой контакт для запроса KSPROPERTY_PIN_PROPOSEDATAFORMAT2 . |
PinProperty.Reserved | Свойство PinProperty.Reserved зарезервировано для использования в будущем и всегда должно быть равно нулю (0). |
В следующей таблице представлено описание элементов KSPROPERTY_PIN_PROPOSEDATAFORMAT2 входной структуры Атрибуты .
Элемент | Описание |
---|---|
Attributes.Count | Атрибуту Attributes.Count должно быть присвоено количество атрибутов, обычно один (1). |
Attributes.Size | Атрибуту Attributes.Size следует задать размер объекта ProposeDataformat2Input. Его можно вычислить следующим образом при наличии одного атрибута:sizeof(ProposeDataformat2Input) |
В следующей таблице представлено описание элементов KSPROPERTY_PIN_PROPOSEDATAFORMAT2 входной структуры SignalProcessingModeAttribute .
Элемент | Описание |
---|---|
SignalProcessingModeAttribute.AttributeHeader.Attribute | Для элемента AttributeHeader.Attribute должно быть задано требуемое KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE. |
SignalProcessingModeAttribute.AttributeHeader.Flags | Элемент Flags зарезервирован для использования в будущем и всегда должен быть равен нулю (0). |
SignalProcessingModeAttribute.AttributeHeader.Size | AttributeHeader.Size указывает размер KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE. Его можно вычислить следующим образом:sizeof(KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE) |
SignalProcessingModeAttribute.SignalProcessingMode | Для элемента SignalProcessingMode необходимо задать запрошенный параметр SIGNALPROCESSINGMODE, например AUDIO_SIGNALPROCESSINGMODE_DEFAULT. |
Чтобы использовать KSPROPERTY_PIN_PROPOSEDATAFORMAT2 определите следующую структуру.
typedef struct
{
KSP_PIN PinProperty;
KSMULTIPLE_ITEM Attributes;
KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE SignalProcessingModeAttribute;
} ProposeDataformat2Input;
В этом примере кода показано, как инициализировать структуру.
ProposeDataformat2Input input = {0};
input.PinProperty.Property.Set = KSPROPSETID_Pin;
input.PinProperty.Property.Id = KSPROPERTY_PIN_PROPOSEDATAFORMAT2;
input.PinProperty.Property.Flags = KSPROPERTY_TYPE_GET;
input.PinProperty.PinId = m_nPinId;
input.PinProperty.Reserved = 0;
input.Attributes.Count = 1;
input.Attributes.Size = sizeof(ProposeDataformat2Input) - RTL_SIZEOF_THROUGH_FIELD(ProposeDataformat2Input, PinProperty);
input.SignalProcessingModeAttribute.AttributeHeader.Attribute = KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE;
input.SignalProcessingModeAttribute.AttributeHeader.Flags = 0;
input.SignalProcessingModeAttribute.AttributeHeader.Size = sizeof(KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE);
input.SignalProcessingModeAttribute.SignalProcessingMode = gProcessingMode;
Требования
Версия: Доступно, начиная с Windows 8.1
Заголовок: ks.h (включая Ks.h)