Поделиться через


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

См. также

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface