Поделиться через


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)

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

KSP_PIN

KSDATAFORMAT

KSEVENT_PINCAPS_FORMATCHANGE

Свойства KS

KSPROPERTY

KSPROPERTY_AUDIOSIGNALPROCESSING_MODES