Structure KSFILTERFACTORY (ks.h)

La structure KSFILTERFACTORY représente une fabrique de filtres.

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 de fabrique de filtre est automatiquement nettoyé lors de la suppression de la fabrique de filtre. Pour plus d’informations, consultez la section conceptuelle sur les sacs d’objets .

Context

Pointeur vers une adresse 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 conteneur d’objets avec KsAddItemToObjectBag. Le contexte est initialisé à la valeur du membre Context du parent KSDEVICE au moment de la création de la fabrique. Consultez Hiérarchie d’objets AVStream.

Remarques

Une fabrique de filtre représente explicitement la capacité d’un appareil à instancier un type de filtre donné, 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 façons. Ils peuvent être créés pendant le traitement AddDevice, comme indiqué par la liste des descripteurs de filtre du descripteur d’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 se fait généralement pendant le traitement de l’IRP de début 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 l’intervalle commençant lorsque la fonction de dispatch de création d’appareil du client est (ou serait) appelée et se termine une fois que la fonction de distribution PnP d’appareil du client est (ou serait) appelée. La durée de vie des fabriques de filtres créées explicitement en appelant KsCreateFilterFactory démarre immédiatement après le retour de cet appel.

Consultez également Sacs d’objets.

Configuration requise

Condition requise Valeur
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