Compartilhar via


Interface IKsControl (ks.h)

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

Consulte a interface COM do proxy de streaming de kernel IKsControl (ksproxy.h) 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.

Comentários

NOTA: A interface IKsControl não deve ser usada com KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY propriedades 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 de 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 IKsControl , ele deverá liberar IKsControl com uma chamada para o método Release .

Minidrivers escritos em C manipulam a interface 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
Plataforma de Destino Windows
Cabeçalho ks.h (inclua Ks.h)

Confira também

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface