Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Клиенты звукового драйвера Microsoft Windows (WDM) могут отправлять запросы к свойствам KS фильтров и штифтов, созданных драйвером. Например, клиент пользовательского режима может отправить запрос на свойство KS, вызвав функцию DeviceIoControl (см. документацию по пакету SDK Для Microsoft Windows) с кодом управления ввода-вывода IOCTL_KS_PROPERTY. Эта функция отправляет IRP, содержащий запрос свойства, в указанный фильтр или объект пин.
Звуковые драйверы поддерживают получение, настройку и базовые запросы на поддержку свойств (KSPROPERTY_TYPE_GET, KSPROPERTY_TYPE_SET и KSPROPERTY_TYPE_BASICSUPPORT). Дополнительные сведения см. в разделе "Наборы свойств звуковых драйверов".
Клиент может отправлять запросы для трех видов свойств: свойства фильтра, свойства закрепления и свойства узла. Дополнительные сведения см. в разделе Filter, Pin и Node Properties.
При отправке запроса на свойство фильтра объекту фильтра клиент указывает целевой фильтр дескриптором экземпляра (см. раздел "Фабрики фильтров"). Аналогичным образом при отправке запроса пин-свойства в объект пин-кода целевой пин-код указывается дескриптором экземпляра (см. раздел " Фабрики пин-кода"). Любой тип запроса содержит структуру KSPROPERTY , указывающую следующее:
ИДЕНТИФИКАТОР GUID, определяющий набор свойств
Индекс, определяющий элемент свойства в указанном наборе свойств
Флаги, указывающие тип запроса на свойство (получение, установка или базовая поддержка)
Связанные свойства собираются вместе для формирования набора свойств. Определенное свойство определяется его набором свойств и индексом, указывающим его положение в этом наборе.
Запрос свойства узла содержит структуру KSNODEPROPERTY, которая объединяет структуру KSPROPERTY и идентификатор узла. В зависимости от свойства узла целевой объект для запроса свойства — это экземпляр фильтра или экземпляр пин-кода.
Если фильтр может создать несколько экземпляров определенного типа узла, целевой объект для запроса указывается дескриптором пин-кода. Дескриптор определяет экземпляр пина в начале или конце канала передачи данных, на котором находится экземпляр узла. В случае фильтра, содержащего узел SUM или MUX (см. KSNODETYPE_SUM и KSNODETYPE_MUX), применяются следующие правила:
Если свойство принадлежит узлу, который находится ниже по потоку от приемного контакта (входных данных) и выше по потоку от узла SUM или MUX, запрос свойства отправляется в приемный контакт.
Если свойство принадлежит узлу, который находится ниже по потоку от узла SUM или MUX и выше по потоку от исходного (выходного) пина, запрос свойства отправляется на этот пин. (Кроме того, запрос свойства для узла SUM или MUX отправляется в исходный пин-код.)
С помощью этих соглашений определенный узел на определенном пути к данным можно однозначно определить.
Сведения об использовании API микшера для обхода узлов в пути к данным см. в Преобразовании топологии потоковой передачи ядра в API аудиомикшера.