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 einen KSFILTER_DESCRIPTOR , der die Merkmale einzelner Filter beschreibt, die diese Factory erstellen kann.
[in, optional] RefString
Wenn dieses Argument angegeben wird, wird diese Zeichenfolge als Verweiszeichenfolge für filter verwendet, die von dieser Factory erstellt wurden. Andernfalls wird die im Deskriptor angegebene Verweis-GUID verwendet.
[in, optional] SecurityDescriptor
Die Sicherheitsbeschreibung, die bei der Erstellung von Filtern durch diese Filterfactory verwendet werden soll. Bei NULL wird kein Deskriptor angegeben.
[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.
Flag | Bedeutung |
---|---|
KSCREATE_ITEM_SECURITY_CHANGED | Gibt an, dass die Sicherheitsbeschreibung für diesen Objekttyp geändert wurde und beibehalten werden sollte. |
KSCREATE_ITEM_WILDCARD | Gibt an, dass dieses Create-Element einen Wildcard darstellt, der für alle Erstellungsanforderungen verwendet wird, die nicht mit anderen Erstellungselementen übereinstimmen. Die Reihenfolge des Feldhaltereintrags in der Liste der Erstellungselemente ist irrelevant. Nur ein einzelner Feldhaltereintrag ist für eine Liste von Erstellungselementen gültig. |
KSCREATE_ITEM_NOPARAMETERS | Gibt an, dass dieses Erstellungselement das Übergeben von Parametern nicht zulässt, und schlägt fehl, wenn welche gefunden werden. (Normalerweise werden Create-Parameter 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_DEVICE sendet. Beachten Sie, dass AVStream solche Erstellungselemente automatisch freigibt, wenn das Gerät den PnP-Stopp empfängt (nachdem der Client die PnP-Stoppbenachrichtigung erhalten hat). |
[in, optional] SleepCallback
Ein Zeiger auf eine minidriver-bereitgestellte Routine, die Benachrichtigungen empfängt, dass das diesem Filter zugeordnete Gerät in den Ruhezustand versetzt wird. 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 Ruhemodus wechselt. Weitere Informationen finden Sie unter Gerätestromzustände.
[in, optional] WakeCallback
Ein Zeiger auf eine minidriver-bereitgestellte Routine, die Benachrichtigungen empfängt, dass das diesem Filter zugeordnete Gerät aufwacht. 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. Weitere Informationen finden Sie unter Gerätestromzustände.
[out, optional] FilterFactory
Ein Zeiger auf eine KSFILTERFACTORY-Struktur , die AVStream so festlegt, dass sie auf das neu erstellte Filter Factory-Objekt verweist. Wenn dieser optionale Parameter nicht angegeben ist, wird der Aufrufer nicht über das resultierende Filter factory-Objekt informiert.
Rückgabewert
Gibt STATUS_SUCCESS zurück, wenn die Filterfactory erstellt werden kann. Andernfalls wird ein entsprechender Fehlercode zurückgegeben.
Hinweise
Wenn Sie KsCreateFilterFactory nach AVStrMiniDevicePostStart) aufrufen, müssen Sie KsFilterFactorySetDeviceClassesState aufrufen, um die Geräteklasse zu aktivieren. (Rufen Sie auch KsFilterFactorySetDeviceClassesState auf, um eine Filter factory zu deaktivieren.)
Wenn Sie KsCreateFilterFactory im Kontext von AVStrMiniDevicePostStart oder früher aufrufen, müssen Sie dies nicht tun.
Vor dem Aufrufen dieser Funktion muss der Minidriver den Mutex des Geräts 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 neue Filtertypen dynamisch hinzufügen und entfernen müssen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher DirectX-Versionen. |
Zielplattform | Universell |
Header | ks.h (einschließlich Ks.h) |
Bibliothek | Ks.lib |
IRQL | PASSIVE_LEVEL |