Partager via


Interface IKsControl (ks.h)

L’interface IKsControl est une interface de style COM implémentée sur les filtres et les broches AVStream. Il permet aux clients en mode noyau d’accéder aux objets d’automatisation AVStream (propriétés, méthodes et événements).

Pour plus d’informations sur l’équivalent en mode noyau de cette interface, consultez l’interface COM de streaming de noyau IKsControl (ksproxy.h).

Héritage

L’interface IKsControl hérite de l’interface IUnknown.

Méthodes

L’interface IKsControl possède ces méthodes.

 
IKsControl ::KsEvent

La méthode IKsControl ::KsEvent active ou désactive un événement, ainsi que toutes les autres opérations de prise en charge définies disponibles sur un ensemble d’événements.
IKsControl ::KsMethod

La méthode IKsControl ::KsMethod envoie une méthode à un objet KS, ainsi que toutes les autres opérations de prise en charge définies disponibles sur un ensemble de méthodes.
IKsControl ::KsProperty

La méthode IKsControl ::KsProperty définit une propriété ou récupère les informations de propriété, ainsi que toutes les autres opérations de prise en charge définies disponibles sur un jeu de propriétés.

Remarques

NOTE: L’interface IKsControl ne doit pas être utilisée avec KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY propriétés sous KSPROPERTYSETID_ExtendedCameraControl ensemble de propriétés. Utilisez IMFExtendedCameraController.

Les minidrivers acquièrent généralement l’interface IKsControl par le biais d’un appel à KsPinGetConnectedFilterInterface ou KsPinGetConnectedPinInterface. Étant donné qu’il s’agit d’une interface de style COM, l’appel de fonction pour obtenir cette interface appelle la méthode QueryInterface , qui à son tour appelle la méthode AddRef . Par conséquent, le minidriver n’a pas besoin d’effectuer ces étapes.

Toutefois, dès que le client a terminé l’interface IKsControl , il doit libérer IKsControl avec un appel à la méthode Release .

Les minidrivers écrits en C manipulent l’interface IKsControl en tant que structure qui contient un pointeur vers une table de fonctions au lieu d’une classe de base abstraite C++.

Un client écrit en C++ effectue les opérations suivantes :

IKsControl *Control;

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

Toutefois, un client écrit en C utilise ce code à la place :

IKsControl *Control;

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

Pour plus d’informations, consultez Vue d’ensemble d’AVStream.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête ks.h (inclure Ks.h)

Voir aussi

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface