Structure KSFILTERFACTORY (ks.h)
La structure KSFILTERFACTORY représente une fabrique de filtres.
typedef struct _KSFILTERFACTORY {
const KSFILTER_DESCRIPTOR *FilterDescriptor;
KSOBJECT_BAG Bag;
PVOID Context;
} KSFILTERFACTORY, *PKSFILTERFACTORY;
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é lorsque la fabrique de filtre est supprimée. Pour plus d’informations, consultez la section conceptuelle sur 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. context est initialisé à la valeur du membre Context du KSDEV ICE parent au moment de la création de la fabrique. Consultez hiérarchie d’objets AVStream.
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 façons. Ils peuvent être créés pendant le traitement AddDevice, comme indiqué par la liste des descripteurs de filtre 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.
Dans le cadre de la 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 distribution de création d’appareil du client est appelée (ou serait) appelée et se termine après l’appel de la fonction de suppression pnP du client (ou serait). 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.
Voir également sacs d’objets.
Exigence | Valeur |
---|---|
client minimum 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. |
d’en-tête | ks.h (include Ks.h) |