Freigeben über


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;

Member

FilterDescriptor

Ein Zeiger auf eine KSFILTER_DESCRIPTOR-Struktur , die die Merkmale von Filtern beschreibt, die von dieser Factory erstellt werden.

Bag

Dieser Member gibt die KSOBJECT_BAG (entspricht dem Typ PVOID) an, die dieser Filterfactory zugeordnet ist. Objektbehälter sind Strukturen, die verwendet werden, um dynamischen Speicher einem bestimmten AVStream-Objekt zuzuordnen. Alles im Objektbehälter der Filterfactory wird automatisch bereinigt, wenn die Filterfactory gelöscht wird. Weitere Informationen finden Sie im konzeptionellen Abschnitt zu Objektbehältern .

Context

Ein Zeiger auf eine Speicheradresse, die der Client verwenden kann, um der Filterfactory Kontextinformationen zuzuordnen. AVStream verwendet diesen Member in keiner Weise. Beachten Sie, dass jeder dynamische Speicher, der der Filterfactory zugeordnet ist, mit KsAddItemToObjectBag in den Objektbehälter eingefügt werden sollte. Kontext wird zum Zeitpunkt der Erstellung der Factory mit dem Wert des Kontextelements des übergeordneten KSDEVICE initialisiert. Weitere Informationen finden Sie unter AVStream-Objekthierarchie.

Hinweise

Eine Filterfactory stellt explizit die Fähigkeit eines Geräts dar, einen bestimmten Filtertyp wie durch einen Filterdeskriptor beschrieben zu instanziieren.

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.

Filterfactoryobjekte werden auf zwei Arten erstellt. Sie können während der Verarbeitung von AddDevice erstellt werden, wie in der Liste der Filterdeskriptoren des Gerätedeskriptors angegeben. Sie können auch explizit vom Client in einem Aufruf von KsCreateFilterFactory erstellt werden. Der Client kann jederzeit Filterfactorys erstellen, aber dies geschieht in der Regel während der Verarbeitung des PnP-Start-IRP, wenn eine Auswertung zugewiesener Ressourcen angibt, welche Filtertypen vom Gerät verfügbar gemacht werden müssen.

Für die Synchronisierung wird die Lebensdauer der implizit erstellten Filterfactorys als das Intervall definiert, das beginnt, wenn die Dispatchfunktion für die Geräteerstellung des Clients aufgerufen wird (oder würde) und endet, nachdem die Geräte-PnP-Entsendungsfunktion des Clients aufgerufen wurde (oder würde). Die Lebensdauer von Filterfactorys, die explizit durch Aufrufen von KsCreateFilterFactory erstellt wurden, beginnt unmittelbar nach der Rückgabe dieses Aufrufs.

Siehe auch Objektbehälter.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows XP und höheren Betriebssystemen sowie in Microsoft DirectX 8.0 und höheren Versionen.
Kopfzeile ks.h (ks.h einschließen)

Weitere Informationen

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory