Свойства, события и методы KS
Архитектура потоковой передачи ядра поддерживает взаимодействие между мини-драйверами и клиентами пользовательского режима с помощью свойств, событий и методов. С помощью этих конструкций клиенты объекта KS могут получать и задавать состояние объекта, регистрировать обратные вызовы уведомлений для событий и выполнять методы объекта.
Клиенты запрашивают все три класса операций в стандартизованном режиме. Клиент предоставляет структуру псевдонима KSIDENTIFIER в вызове DeviceIoControl (описано в документации по Microsoft Windows SDK) или KsSynchronousDeviceControl.
Структуры псевдонимов: KSPROPERTY, KSEVENT и KSMETHOD. Все три включают следующие параметры:
Set
Функционально похожие операции группируются в набор. Каждое свойство, событие или набор методов идентифицируется идентификатором GUID. Корпорация Майкрософт определяет идентификаторы GUID для стандартных операций, относящихся к конкретной технологии. Мини-накопители могут определять собственные идентификаторы GUID для пользовательских операций.
Идентификатор
Каждая операция задается идентификатором в наборе.
Идентификационные данные для конкретной операции
Для некоторых запросов свойств требуются дополнительные данные. Например, закрепления на звуковом устройстве поддерживают набор свойств KSPROPSETID_Audio . Аудиокрепка может поддерживать несколько разных аудиоканалов. Клиенты, получающие или устанавливающие определенные свойства KSPROPSETID_Audio, должны указывать звуковой канал, к которому применяется запрос. Запросы событий и методов не требуют дополнительных данных.
Идентификаторы GUID и идентификаторы для операций общего назначения, определяемые корпорацией Майкрософт, находятся в заголовке ks.h. Стандартные идентификаторы GUID и идентификаторы для определенных классов мультимедийных технологий находятся в ksmedia.h.
Мини-накопители AVStream поддерживают свойства, события и методы, предоставляя указатель на структуру KSAUTOMATION_TABLE в соответствующем KSFILTER_DESCRIPTOR или KSPIN_DESCRIPTOR_EX. KSAUTOMATION_TABLE содержит указатель на массив объектов KSPROPERTY_SET . Дополнительные сведения см. в разделе Определение таблиц автоматизации.
В этих разделах содержатся сведения о том, как мини-накопители поддерживают три класса операций: