Interfaccia IKsControl (ks.h)

L'interfaccia IKsControl è un'interfaccia in stile 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).

Per informazioni sull'equivalente in modalità kernel di questa interfaccia, vedere l'interfaccia COM del proxy di streaming kernel (ksproxy.h).

Ereditarietà

L'interfaccia IKsControl eredita dall'interfaccia IUnknown .

Metodi

L'interfaccia IKsControl include questi metodi.

 
IKsControl::KsEvent

Il metodo IKsControl::KsEvent abilita o disabilita un evento, insieme ad altre operazioni di supporto definite disponibili 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 le informazioni sulla proprietà, insieme a qualsiasi altra operazione di supporto definita disponibile in un set di proprietà.

Commenti

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

I minidriver acquisiscono in genere l'interfaccia IKsControl tramite una chiamata a KsPinGetConnectedFilterInterface o KsPinGetConnectedPinInterface. Poiché si tratta di un'interfaccia in stile COM, la chiamata alla 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 di AVStream.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione ks.h (include Ks.h)

Vedi anche

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface