Condividi tramite


Interfaccia IKsControl (ks.h)

L'interfaccia IKsControl è un'interfaccia di tipo COM implementata nei filtri e nei pin AVStream. Consente ai client in modalità kernel di accedere agli oggetti di automazione AVStream (proprietà, metodi ed eventi).

Vedere IKsControl (ksproxy.h) interfaccia COM del proxy di streaming kernel per informazioni sull'equivalente in modalità kernel di questa interfaccia.

Eredità

L'interfaccia IKsControl eredita dall'interfaccia IUnknown.

Metodi

L'interfaccia IKsControl dispone di questi metodi.

 
IKsControl::KsEvent

Il metodo IKsControl::KsEvent abilita o disabilita un evento, insieme a qualsiasi altra operazione di supporto definita disponibile in un set di eventi.
IKsControl::KsMethod

Il metodo IKsControl::KsMethod invia un metodo a un oggetto KS, insieme a qualsiasi altra operazione di supporto definita disponibile in un set di metodi.
IKsControl::KsProperty

Il metodo IKsControl::KsProperty imposta una proprietà o recupera informazioni sulle proprietà, insieme a qualsiasi altra operazione di supporto definita disponibile in un set di proprietà.

Osservazioni

NOTA: L'interfaccia IKsControl non deve essere usata con le proprietà KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY nel set di proprietà KSPROPERTYSETID_ExtendedCameraControl, usare IMFExtendedCameraController.

I minidriver in genere acquisiscono l'interfaccia IKsControl tramite una chiamata a KsPinGetConnectedFilterInterface o KsPinGetConnectedPinInterface. Poiché si tratta di un'interfaccia di tipo COM, la chiamata di funzione per ottenere questa interfaccia chiama il metodo QueryInterface, che a sua volta chiama il metodo AddRef. Pertanto, il minidriver non deve eseguire questi passaggi.

Tuttavia, non appena il client viene completato con l'interfaccia IKsControl, deve rilasciare IKsControl con una chiamata al metodo Release.

I minidriver scritti in C modificano l'interfaccia IKsControl come struttura che contiene un puntatore a una tabella di funzioni anziché una classe base astratta C++.

Un client scritto in C++ esegue le operazioni seguenti:

IKsControl *Control;

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

Tuttavia, un client scritto in C usa invece questo codice:

IKsControl *Control;

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

Per altre informazioni, vedere panoramica AVStream.

Fabbisogno

Requisito Valore
piattaforma di destinazione Finestre
intestazione ks.h (include Ks.h)

Vedere anche

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface