Freigeben über


KsCreateFilterFactory-Funktion (ks.h)

Die **KsCreateFilterFactory**-Funktion fügt einem bestimmten Gerät eine Filterfactory hinzu.

Syntax

KSDDKAPI NTSTATUS KsCreateFilterFactory(
  [in]            PDEVICE_OBJECT            DeviceObject,
  [in]            const KSFILTER_DESCRIPTOR *Descriptor,
  [in, optional]  PWSTR                     RefString,
  [in, optional]  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  [in]            ULONG                     CreateItemFlags,
  [in, optional]  PFNKSFILTERFACTORYPOWER   SleepCallback,
  [in, optional]  PFNKSFILTERFACTORYPOWER   WakeCallback,
  [out, optional] PKSFILTERFACTORY          *FilterFactory
);

Parameter

[in] DeviceObject

Ein Zeiger auf eine DEVICE_OBJECT Struktur, für die eine Filterfactory hinzugefügt werden soll.

[in] Descriptor

Ein Zeiger auf eine KSFILTER_DESCRIPTOR, die die Merkmale einzelner Filter beschreibt, die von dieser Factory erstellt werden können.

[in, optional] RefString

Wenn dieses Argument angegeben wird, wird diese Zeichenfolge als Referenzzeichenfolge für Filter verwendet, die von dieser Factory erstellt wurden. Andernfalls wird die im Deskriptor bereitgestellte Referenz-GUID verwendet.

[in, optional] SecurityDescriptor

Der Sicherheitsdeskriptor, der beim Erstellen von Filtern von dieser Filterfactory verwendet werden soll. Wenn NULL-, wird kein Deskriptor bereitgestellt.

[in] CreateItemFlags

In der folgenden Tabelle sind die Flags aufgeführt, die der Minidriver Writer verwendet, um die Merkmale von Filtern anzugeben, die die neue Filterfactory erstellen kann. Legen Sie diesen Parameter auf den bitweisen OR der folgenden Flags fest.

Flagge Bedeutung
KSCREATE_ITEM_SECURITY_CHANGED Gibt an, dass der Sicherheitsdeskriptor für diesen Objekttyp geändert wurde und beibehalten werden soll.
KSCREATE_ITEM_WILDCARD Gibt an, dass dieses Erstellungselement einen Wildcard darstellt, der für alle Erstellungsanforderungen verwendet wird, die keinem anderen Erstellungselement entsprechen. Die Reihenfolge des Wildcardeintrags in der Liste der Erstellungselemente ist irrelevant. Nur ein einzelner Wildcardeintrag ist für eine beliebige Liste von Erstellungselementen gültig.
KSCREATE_ITEM_NOPARAMETERS Gibt an, dass dieses Erstellungselement die Übergabe von Parametern nicht zulässt und fehlschlägt, wenn eine gefunden wird. (Normalerweise werden Erstellungsparameter an den Create-Handler übergeben.) Dieses Flag kann nicht mit einem Wildcard-Flag verwendet werden.
KSCREATE_ITEM_FREEONSTOP Gibt an, dass das Erstellungselement freigegeben werden soll, wenn der PnP-Manager IRP_MN_STOP_DEVICEsendet. Beachten Sie, dass AVStream solche Erstellungselemente automatisch freigibt, wenn das Gerät PnP-Stopp erhält (, nachdem der Client die PnP-Stoppbenachrichtigung erhalten hat).

[in, optional] SleepCallback

Ein Zeiger auf eine von Minidriver bereitgestellte Routine, die Benachrichtigungen empfängt, die dem Filter zugeordnete Gerät in den Ruhezustand wechseln. Prototyp der Routine wie folgt:

void SleepCallback (IN PKSFILTERFACTORY FilterFactory,
    IN DEVICE_POWER_STATE State);

Wenn dieser Parameter NULL-ist, wird diese Filterfactory nicht benachrichtigt, dass das Gerät in den Ruhezustand wechselt. Siehe Geräte-Power States.

[in, optional] WakeCallback

Ein Zeiger auf eine vom Minidriver bereitgestellte Routine, die Benachrichtigungen empfängt, die dem Filter zugeordnete Gerät aufwachen. Prototyp der Routine wie folgt:

void WakeCallback (IN PKSFILTERFACTORY FilterFactory,
    IN DEVICE_POWER_STATE State);

Wenn dieser Parameter NULL-ist, wird diese Filterfactory nicht benachrichtigt, dass das Gerät aufwacht. Siehe Geräte-Power States.

[out, optional] FilterFactory

Ein Zeiger auf eine KSFILTERFACTORY- Struktur, die AVStream auf das neu erstellte Filterfactoryobjekt verweist. Wenn dieser optionale Parameter nicht angegeben ist, wird der Aufrufer nicht über das resultierende Filterfactoryobjekt informiert.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn die Filterfactory erstellt werden kann. Andernfalls wird ein entsprechender Fehlercode zurückgegeben.

Bemerkungen

Wenn Sie KsCreateFilterFactory nach AVStrMiniDevicePostStartaufrufen), müssen Sie KsFilterFactorySetDeviceClassesState- aufrufen, um die Geräteklasse zu aktivieren. (Rufen Sie auch KsFilterFactorySetDeviceClassesState- auf, um eine Filterfactory zu deaktivieren.)

Wenn Sie KsCreateFilterFactory- im Kontext von AVStrMiniDevicePostStart- oder vorher aufrufen, müssen Sie dies nicht tun.

Vor dem Aufrufen dieser Funktion muss der Minidriver das Geräte-Mutex abrufen. Informationen dazu finden Sie unter Device Mutex in AVStream.

Diese Funktion sollte von Minidrivern verwendet werden, die sich entweder ohne aufruf von KsInitializeDriver initialisieren oder die neue Filtertypen dynamisch hinzufügen und entfernen müssen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher directX-Versionen.
Zielplattform- Universal
Header- ks.h (enthalten Ks.h)
Library Ks.lib
IRQL- PASSIVE_LEVEL

Siehe auch

KSFILTER_DESCRIPTOR

KSNODE_DESCRIPTOR

KSPIN_DESCRIPTOR_EX

KsDeleteFilterFactory-