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 |