KSFILTERFACTORY-Struktur (ks.h)
Die KSFILTERFACTORY-Struktur stellt eine Filterfactory dar.
Syntax
typedef struct _KSFILTERFACTORY {
const KSFILTER_DESCRIPTOR *FilterDescriptor;
KSOBJECT_BAG Bag;
PVOID Context;
} KSFILTERFACTORY, *PKSFILTERFACTORY;
Angehörige
FilterDescriptor
Ein Zeiger auf eine KSFILTER_DESCRIPTOR Struktur, die die Eigenschaften von Filtern beschreibt, die von dieser Factory erstellt wurden.
Bag
Dieses Element gibt den KSOBJECT_BAG (entspricht dem Typ PVOID) an, der dieser Filterfabrik zugeordnet ist. Objektbehälter sind Strukturen, die verwendet werden, um dynamischen Speicher einem bestimmten AVStream-Objekt zuzuordnen. Alle Elemente im Filter factory-Objektbehälter werden automatisch bereinigt, wenn die Filterfactory gelöscht wird. Weitere Informationen finden Sie im konzeptionellen Abschnitt zu Object Bags.
Context
Ein Zeiger auf eine Speicheradresse, die der Client verwenden kann, um Kontextinformationen der Filterfactory zuzuordnen. AVStream verwendet dieses Mitglied nicht auf irgendeine Weise. Beachten Sie, dass jeder dynamische Arbeitsspeicher, der der Filterfactory zugeordnet ist, in den Objektbehälter mit KsAddItemToObjectBagplatziert werden sollte. Context wird initialisiert, um den Wert des Context Member des übergeordneten KSDEVICE zum Zeitpunkt der Erstellung der Factory zu initialisieren. Siehe AVStream-Objekthierarchie.
Bemerkungen
Eine Filterfactory stellt explizit die Fähigkeit eines Geräts dar, einen bestimmten Filtertyp zu instanziieren, wie durch einen Filterdeskriptor beschrieben.
Treiber für Hardware verwenden diese Struktur in der Regel, um eine bestimmte Funktion der Hardware zu verwalten, die als Filtertyp verfügbar gemacht wird. Softwarefilter müssen das Gerät in der Regel nicht auf dieser Ebene verwalten.
Filter factory objects are created in two ways. Sie können während der AddDevice-Verarbeitung erstellt werden, wie durch die Liste der Filterdeskriptoren des Geräts angegeben. Sie können auch explizit vom Client in einem Aufruf von KsCreateFilterFactoryerstellt werden. Der Client kann jederzeit Filterfabriken erstellen, dies erfolgt jedoch in der Regel während der Verarbeitung des PnP-Start-IRP, wenn eine Auswertung der zugewiesenen Ressourcen angibt, welche Filtertypen vom Gerät verfügbar gemacht werden müssen.
Für die Zwecke der Synchronisierung wird die Lebensdauer der implizit erstellten Filterfabriken als Intervall definiert, das beginnt, wenn die Funktion zum Erstellen der Verteilerfunktion des Clients (oder würde) aufgerufen und beendet werden, nachdem die PnP-Entfernungsfunktion des Clients aufgerufen wird (oder würde). Die Lebensdauer von Filterfabriken, die explizit erstellt wurden, indem KsCreateFilterFactory aufgerufen wird, unmittelbar nach diesem Aufruf gestartet wird.
Siehe auch Object Bags.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und in Microsoft DirectX 8.0 und höheren Versionen. |
Header- | ks.h (enthalten Ks.h) |