Интерфейс 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)

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

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface