FwpsCalloutRegister2-Funktion (fwpsk.h)

Die Funktion fwpsCalloutRegister2 registriert eine Legende bei der Filter-Engine.

HinweisFwpsCalloutRegister2 ist die spezifische Version von FwpsCalloutRegister, die in Windows 8 und höher verwendet wird. Weitere Informationen finden Sie unter WFP Version-Independent Namen und Zielgruppenspezifische Windows-Versionen . Für Windows 7 ist FwpsCalloutRegister1 verfügbar. Für Windows Vista ist FwpsCalloutRegister0 verfügbar.

 

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
STATUS_SUCCESS
Die Legende wurde erfolgreich bei der Filter-Engine registriert.
STATUS_FWP_ALREADY_EXISTS
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.
Andere status Codes
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

Weitere Informationen

Erstellen eines Geräteobjekts

FWPS_CALLOUT2

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutUnregisterById0

FwpsCalloutUnregisterByKey0

FwpsFlowAssociateContext0

FwpsFlowRemoveContext0

FwpsStreamInjectAsync0

IoCreateDevice

Typen von Legenden

flowDeleteFn