Partilhar via


Interface IKsControl (ks.h)

A interface IKsControl é uma interface de estilo COM implementada em filtros e pinos do AVStream. Ele permite que os clientes no modo kernel acessem objetos de automação AVStream (propriedades, métodos e eventos).

Consulte o IKsControl (ksproxy.h) interface COM de proxy de streaming de kernel para obter informações sobre o equivalente do modo kernel dessa interface.

Herança

A interface IKsControl herda da interface IUnknown.

Métodos

A interface IKsControl tem esses métodos.

 
IKsControl::KsEvent

O método IKsControl::KsEvent habilita ou desabilita um evento, juntamente com quaisquer outras operações de suporte definidas disponíveis em um conjunto de eventos.
IKsControl::KsMethod

O método IKsControl::KsMethod envia um método para um objeto KS, juntamente com quaisquer outras operações de suporte definidas disponíveis em um conjunto de métodos.
IKsControl::KsProperty

O método IKsControl::KsProperty define uma propriedade ou recupera informações de propriedade, juntamente com quaisquer outras operações de suporte definidas disponíveis em um conjunto de propriedades.

Observações

OBSERVAÇÃO: A interface IKsControl não deve ser usada com propriedades KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY em KSPROPERTYSETID_ExtendedCameraControl conjunto de propriedades, use IMFExtendedCameraController.

Os minidrivers normalmente adquirem a interface IKsControl por meio de uma chamada para KsPinGetConnectedFilterInterface ou KsPinGetConnectedPinInterface. Como essa é uma interface no estilo COM, a chamada de função para obter essa interface chama o método QueryInterface, que, por sua vez, chama o método AddRef. Portanto, o minidriver não precisa executar essas etapas.

No entanto, assim que o cliente for concluído com a interface de IKsControl, ele deverá liberar IKsControl com uma chamada para o método de versão.

Minidrivers escritos em C manipulam a interface de IKsControl como uma estrutura que contém um ponteiro para uma tabela de funções em vez de uma classe base abstrata C++.

Um cliente escrito em C++ faz o seguinte:

IKsControl *Control;

if (NT_SUCCESS (
  KsPinGetConnectedPinInterface (
    Pin,
    IID_IKsControl,
    (PVOID *)&Control) )
) {
  Control -> KsProperty (...);
  Control -> Release ();
}

No entanto, um cliente escrito em C usa esse código em vez disso:

IKsControl *Control;

    If (NT_SUCCESS (
      KsPinGetConnectedPinInterface (
        Pin,
        IID_IKsControl,
        (PVOID *)&Control) )
    ) {
      Control -> lpVtbl -> KsProperty (...);
      Control -> lpVtbl -> Release ();
    }

Para obter mais informações, consulte visão geral do AVStream.

Requisitos

Requisito Valor
da Plataforma de Destino Windows
cabeçalho ks.h (incluir Ks.h)

Consulte também

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface