Structure KSFILTERFACTORY (ks.h)

La structure KSFILTERFACTORY représente une fabrique de filtre.

Syntaxe

typedef struct _KSFILTERFACTORY {
  const KSFILTER_DESCRIPTOR *FilterDescriptor;
  KSOBJECT_BAG              Bag;
  PVOID                     Context;
} KSFILTERFACTORY, *PKSFILTERFACTORY;

Membres

FilterDescriptor

Pointeur vers une structure KSFILTER_DESCRIPTOR qui décrit les caractéristiques des filtres créés par cette fabrique.

Bag

Ce membre spécifie le KSOBJECT_BAG (équivalent au type PVOID) associé à cette fabrique de filtres. Les sacs d’objets sont des structures utilisées pour associer la mémoire dynamique à un objet AVStream spécifique. Tout ce qui se trouve dans le conteneur d’objets d’usine de filtre est automatiquement nettoyé lorsque la fabrique de filtre est supprimée. Pour plus d’informations, consultez la section conceptuelle sur les sacs d’objets .

Context

Pointeur vers une adresse de mémoire que le client peut utiliser pour associer des informations de contexte à la fabrique de filtre. AVStream n’utilise pas ce membre de quelque manière que ce soit. Notez que toute mémoire dynamique associée à la fabrique de filtre doit être placée dans le sac d’objets avec KsAddItemToObjectBag. Le contexte est initialisé à la valeur du membre Context du KSDEVICE parent au moment de la création de la fabrique. Consultez la hiérarchie d’objets AVStream.

Remarques

Une fabrique de filtre représente explicitement la capacité d’un appareil à instancier un type donné de filtre, comme décrit par un descripteur de filtre.

Les pilotes pour le matériel utilisent généralement cette structure pour gérer une fonction particulière du matériel exposé en tant que type de filtre. Les filtres logiciels n’ont généralement pas besoin de gérer l’appareil à ce niveau.

Les objets de fabrique de filtre sont créés de deux manières. Ils peuvent être créés pendant le traitement AddDevice, comme indiqué par la liste des descripteurs de filtres de l’appareil. Ils peuvent également être créés explicitement par le client dans un appel à KsCreateFilterFactory. Le client peut créer des fabriques de filtres à tout moment, mais cela est généralement effectué pendant le traitement de l’IRP de démarrage PnP lorsqu’une évaluation des ressources affectées indique quels types de filtres doivent être exposés par l’appareil.

À des fins de synchronisation, la durée de vie des fabriques de filtres créées implicitement est définie comme intervalle commençant lorsque la fonction de distribution de création de l’appareil du client est (ou serait) appelée et se termine après l’appel de la fonction pnP de suppression de l’appareil du client est (ou serait) appelée. La durée de vie des fabriques de filtre créées explicitement en appelant KsCreateFilterFactory démarre immédiatement après ce retour.

Voir également Les sacs d’objets.

Configuration requise

   
Client minimal pris en charge Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et dans Microsoft DirectX 8.0 et versions ultérieures.
En-tête ks.h (inclure Ks.h)

Voir aussi

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory