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) |