Partager via


Interface IKsInterfaceHandler (ksproxy.h)

L’interface IKsInterfaceHandler fournit des méthodes qui marshalent des exemples dans le noyau en fonction de la structure KSPIN_INTERFACE spécifiée pour la connexion établie. L’IID de cette interface est IID_IKsInterfaceHandler.

Héritage

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

Méthodes

L’interface IKsInterfaceHandler comporte ces méthodes.

 
IKsInterfaceHandler ::KsCompleteIo

La méthode KsCompleteIo nettoie les en-têtes étendus et libère des exemples multimédias une fois l’entrée et la sortie (E/S) terminées.
IKsInterfaceHandler ::KsProcessMediaSamples

La méthode KsProcessMediaSamples traite des exemples multimédias.
IKsInterfaceHandler ::KsSetPin

La méthode KsSetPin informe le gestionnaire d’interface de streaming sur la broche avec laquelle communiquer lors du passage de données.

Remarques

Pour que le proxy reste neutre par rapport à l’interface utilisée pour diffuser des données, les gestionnaires d’interface sont chargés pour traduire des exemples de médias DirectShow vers et à partir d’un pilote au niveau du noyau. Un gestionnaire d’interface implémente les méthodes de l’interface IKsInterfaceHandler pour effectuer le prétraitement et le posttraitement sur tous les exemples de supports et pour signaler l’achèvement de l’entrée et de la sortie (E/S).

Chaque gestionnaire d’interface peut marshaler des exemples multimédias à l’aide de sa propre méthode. Le gestionnaire d’interface standard que le proxy KS implémente utilise IOCTL_KS_WRITE_STREAM pour l’opération de réception et IOCTL_KS_READ_STREAM pour l’opération d’envoi, mais un gestionnaire d’interface personnalisé peut utiliser une autre méthode.

Lorsqu’une broche est connectée, le proxy utilise le GUID dans le membre Set de la structure KSPIN_INTERFACE pour déterminer le gestionnaire d’interface à charger. Le gestionnaire d’interface est inscrit en tant que serveur COM sous cette classe GUID. Le gestionnaire d’interface doit gérer toutes les variantes de l’interface au sein du jeu d’interface. Les broches de pont ne sont pas censées diffuser en continu des données et les gestionnaires d’interface ne sont pas chargés pour elles.

Sur une demande de création de gestionnaire d’interface via CoCreateInstance, le serveur reçoit toujours un IUnknown externe avec lequel créer l’objet COM. Cet IUnknown est une interface sur l’objet pin qui charge ce gestionnaire d’interface. Le pointeur d’interface IUnknown peut être utilisé pour interroger des informations ou des interfaces, telles que l’interface IKsControl , à partir de la broche, bien que la broche en mode noyau n’ait peut-être pas été créée au moment du chargement du gestionnaire d’interface. Aucune référence ne doit être laissée sur l’objet externe via l’acquisition d’interfaces, car cela entraîne un nombre de références circulaire. L’utilisation des interfaces sans nombre de références est acceptable, car l’objet externe est propriétaire du gestionnaire et, par définition, est détruit lorsque le nombre de références de l’objet externe atteint zéro.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête ksproxy.h

Voir aussi

CoCreateInstance

IKsControl

KSPIN_INTERFACE