FwpsCalloutRegister2-Funktion (fwpsk.h)
Die Funktion fwpsCalloutRegister2 registriert eine Legende bei der Filter-Engine.
Syntax
NTSTATUS FwpsCalloutRegister2(
[in, out] void *deviceObject,
[in] const FWPS_CALLOUT2 *callout,
[out, optional] UINT32 *calloutId
);
Parameter
[in, out] deviceObject
Ein Zeiger auf ein Geräteobjekt, das zuvor vom Legendentreiber erstellt wurde. Weitere Informationen dazu, wie ein Legendentreiber ein Geräteobjekt erstellt, finden Sie unter Erstellen eines Geräteobjekts.
[in] callout
Ein Zeiger auf eine konstante FWPS_CALLOUT2 Struktur, die die Daten enthält, die zum Registrieren der Legende bei der Filter-Engine erforderlich sind.
[out, optional] calloutId
Ein Zeiger auf eine Variable mit UINT32-Typ, die einen Laufzeitbezeichner empfängt, der die Legende in der Filter-Engine identifiziert. Der Legendentreiber übergibt diesen Bezeichner an die Funktion FwpsCalloutUnregisterById0 , wenn die Registrierung der Legende aus der Filter-Engine aufgehoben wird. Wenn ein Legendentreiber einen Datenfluss filtert, übergibt er diesen Bezeichner auch an die Funktionen FwpsFlowAssociateContext0 und FwpsFlowRemoveContext0 . Wenn ein Legendentreiber Daten in Datenströme einschleust, übergibt er diesen Bezeichner auch an die Funktion FwpsStreamInjectAsync0 . Das Filtermodul übergibt diesen Bezeichner auch an die callout-Treiberfunktion flowDeleteFn . Dieser Parameter ist optional und kann NULL sein.
Rückgabewert
Die FwpsCalloutRegister2-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.
Rückgabecode | Beschreibung |
---|---|
|
Die Legende wurde erfolgreich bei der Filter-Engine registriert. |
|
Die Legende konnte nicht bei der Filter-Engine registriert werden. Eine Legende ist bereits in der Filter-Engine registriert, deren Bezeichner mit der GUID identisch ist, die im member calloutKey der FWPS_CALLOUT2 Struktur angegeben ist, auf die der Legendenparameter verweist. |
|
Ein Fehler ist aufgetreten. |
Hinweise
Ein Legendentreiber ruft die Funktion FwpsCalloutRegister2 auf, um eine Legende beim Filtermodul zu registrieren. Ein Legendentreiber kann eine Legende jederzeit bei der Filter-Engine registrieren, auch wenn das Filtermodul derzeit nicht ausgeführt wird.
Eine Legende und Filter, die die Beschriftung für die Aktion des Filters angeben, können der Filter-Engine hinzugefügt werden, bevor ein Legendentreiber die Legende bei der Filter-Engine registriert. In dieser Situation werden Filter mit einem Aktionstyp von FWP_ACTION_CALLOUT_TERMINATING oder FWP_ACTION_CALLOUT_UNKNOWN als FWP_ACTION_BLOCK behandelt, und Filter mit einem Aktionstyp von FWP_ACTION_CALLOUT_INSPECTION werden ignoriert, bis die Legende beim Filtermodul registriert ist.
Ein Legendentreiber hebt die Registrierung einer Legende aus dem Filtermodul auf, indem er entweder die FwpsCalloutUnregisterById0-Funktion oder die FwpsCalloutUnregisterByKey0-Funktion . Ein Legendentreiber kann erst entladen werden, wenn alle Legenden, die zuvor beim Filtermodul registriert wurden, die Registrierung erfolgreich aufgehoben wurden.
Diese Funktion ist im Wesentlichen mit der vorherigen Version fwpsCalloutRegister1 identisch. Der einzige Unterschied besteht in der aktualisierten FWPS_CALLOUT2 Struktur, auf die der Legendenparameter verweist.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 8. |
Zielplattform | Universell |
Header | fwpsk.h (include fwpsk.h) |
Bibliothek | Fwpkclnt.lib |
IRQL | PASSIVE_LEVEL |