Интерфейс IKsControl (ks.h)
Интерфейс IKsControl — это интерфейс в стиле COM, реализованный в фильтрах и закреплениях AVStream. Он позволяет клиентам в режиме ядра получать доступ к объектам автоматизации AVStream (свойствам, методам и событиям).
Дополнительные сведения о эквиваленте режима ядра см. в IKsControl (ksproxy.h) com-интерфейс прокси-сервера потоковой передачи ядра.
Наследство
Интерфейс IKsControl наследует от интерфейса IUnknown.
Методика
Интерфейс IKsControl имеет эти методы.
IKsControl::KsEvent Метод IKsControl::KsEvent включает или отключает событие вместе с любыми другими определенными операциями поддержки, доступными в наборе событий. |
IKsControl::KsMethod Метод IKsControl::KsMethod отправляет метод в объект KS вместе с любыми другими определенными операциями поддержки, доступными в наборе методов. |
IKsControl::KsProperty Метод IKsControl::KsProperty задает свойство или извлекает сведения о свойстве вместе с любыми другими определенными операциями поддержки, доступными в наборе свойств. |
Замечания
ПРИМЕЧАНИЕ.Интерфейс IKsControl IKsControl не должен использоваться с свойствами KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY в KSPROPERTYSETID_ExtendedCameraControl наборе свойств, используйте IMFExtendedCameraController.
Мини-drivers обычно получают интерфейс IKsControl через вызов KsPinGetConnectedFilterInterface или KsPinGetConnectedPinInterface. Так как это интерфейс COM, вызов функции для получения этого интерфейса вызывает метод QueryInterface, который, в свою очередь, вызывает метод AddRef . Поэтому мини-driver не должен выполнять эти действия.
Однако, как только клиент завершит работу с интерфейсом IKsControl, он должен освободить IKsControl с вызовом метода Release.
Мини-drivers, написанные в C, управляют интерфейсом IKsControl в виде структуры, содержащей указатель на таблицу функций вместо абстрактного базового класса C++.
Клиент, написанный на языке C++, выполняет следующие действия:
IKsControl *Control;
if (NT_SUCCESS (
KsPinGetConnectedPinInterface (
Pin,
IID_IKsControl,
(PVOID *)&Control) )
) {
Control -> KsProperty (...);
Control -> Release ();
}
Однако клиент, написанный в C, использует этот код:
IKsControl *Control;
If (NT_SUCCESS (
KsPinGetConnectedPinInterface (
Pin,
IID_IKsControl,
(PVOID *)&Control) )
) {
Control -> lpVtbl -> KsProperty (...);
Control -> lpVtbl -> Release ();
}
Дополнительные сведения см. в обзоре AVStream.
Требования
Требование | Ценность |
---|---|
целевая платформа | Виндоус |
заголовка | ks.h (include Ks.h) |