Interfaz IKsControl (ks.h)
La interfaz IKsControl es una interfaz de estilo COM implementada en los filtros y patillas avStream. Permite a los clientes en modo kernel acceder a objetos de automatización de AVStream (propiedades, métodos y eventos).
Consulte la interfaz COM del proxy de streaming de kernel IKsControl (ksproxy.h) para obtener información sobre el equivalente en modo kernel de esta interfaz.
Herencia
La interfaz IKsControl hereda de la interfaz IUnknown .
Métodos
La interfaz IKsControl tiene estos métodos.
IKsControl::KsEvent El método IKsControl::KsEvent habilita o deshabilita un evento, junto con cualquier otra operación de soporte técnico definida disponible en un conjunto de eventos. |
IKsControl::KsMethod El método IKsControl::KsMethod envía un método a un objeto KS, junto con cualquier otra operación de compatibilidad definida disponible en un conjunto de métodos. |
IKsControl::KsProperty El método IKsControl::KsProperty establece una propiedad o recupera información de propiedad, junto con cualquier otra operación de compatibilidad definida disponible en un conjunto de propiedades. |
Comentarios
NOTA: La interfaz IKsControl no debe usarse con KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY propiedades en KSPROPERTYSETID_ExtendedCameraControl conjunto de propiedades, use IMFExtendedCameraController.
Normalmente, los minidrivers adquieren la interfaz IKsControl a través de una llamada a KsPinGetConnectedFilterInterface o KsPinGetConnectedPinInterface. Dado que se trata de una interfaz de estilo COM, la llamada de función para obtener esta interfaz llama al método QueryInterface , que a su vez llama al método AddRef . Por lo tanto, el minidriver no tiene que realizar estos pasos.
Sin embargo, en cuanto el cliente haya terminado con la interfaz IKsControl , debe liberar IKsControl con una llamada al método Release .
Los minidrivers escritos en C manipulan la interfaz IKsControl como una estructura que contiene un puntero a una tabla de funciones en lugar de una clase base abstracta de C++.
Un cliente escrito en C++ hace lo siguiente:
IKsControl *Control;
if (NT_SUCCESS (
KsPinGetConnectedPinInterface (
Pin,
IID_IKsControl,
(PVOID *)&Control) )
) {
Control -> KsProperty (...);
Control -> Release ();
}
Sin embargo, un cliente escrito en C usa este código en su lugar:
IKsControl *Control;
If (NT_SUCCESS (
KsPinGetConnectedPinInterface (
Pin,
IID_IKsControl,
(PVOID *)&Control) )
) {
Control -> lpVtbl -> KsProperty (...);
Control -> lpVtbl -> Release ();
}
Para obtener más información, consulte Introducción a AVStream.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | ks.h (incluye Ks.h) |