Интерфейс IKsControl (ks.h)
Интерфейс IKsControl — это интерфейс в стиле COM, реализованный в фильтрах и контактах AVStream. Она позволяет клиентам в режиме ядра получать доступ к объектам автоматизации AVStream (свойствам, методам и событиям).
Дополнительные сведения об эквиваленте этого интерфейса см. в com-интерфейсе прокси-сервера потоковой передачи ядра IKsControl (ksproxy.h).
Наследование
Интерфейс IKsControl наследуется от интерфейса IUnknown .
Методы
Интерфейс IKsControl содержит следующие методы.
IKsControl::KsEvent Метод IKsControl::KsEvent включает или отключает событие вместе с любыми другими определенными операциями поддержки, доступными в наборе событий. |
IKsControl::KsMethod Метод IKsControl::KsMethod отправляет метод в объект KS вместе с любыми другими определенными операциями поддержки, доступными в наборе методов. |
IKsControl::KsProperty Метод IKsControl::KsProperty задает свойство или извлекает сведения о свойстве вместе с любыми другими определенными операциями поддержки, доступными в наборе свойств. |
Комментарии
ПРИМЕЧАНИЕ: Интерфейс IKsControl не следует использовать со свойствами KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY в KSPROPERTYSETID_ExtendedCameraControl наборе свойств. Используйте IMFExtendedCameraController.
Мини-накопители обычно получают интерфейс IKsControl через вызов KsPinGetConnectedFilterInterface или KsPinGetConnectedPinInterface. Так как это интерфейс в стиле COM, вызов функции для получения этого интерфейса вызывает метод QueryInterface , который, в свою очередь, вызывает метод AddRef . Таким образом, мини-накопителю не нужно выполнять эти действия.
Однако, как только клиент завершает работу с интерфейсом IKsControl , он должен освободить IKsControl с вызовом метода Release .
Мини-драйверы, написанные на языке 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.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | ks.h (включая Ks.h) |