FwpsCalloutRegister3-Funktion (fwpsk.h)

Die FwpsCalloutRegister3--Funktion registriert die Funktionszeiger für eine Version 3 der FWPS_CALLOUT3-Struktur.

Syntax

NTSTATUS FwpsCalloutRegister3(
  [in, out]       void                *deviceObject,
  [in]            const FWPS_CALLOUT3 *callout,
  [out, optional] UINT32              *calloutId
);

Parameter

[in, out] deviceObject

Ein Zeiger auf ein Geräteobjekt, das zuvor vom Popuptreiber erstellt wurde. Weitere Informationen dazu, wie ein Popuptreiber ein Geräteobjekt erstellt, finden Sie unter Erstellen eines Geräteobjekts.

[in] callout

Ein Zeiger auf eine Konstante FWPS_CALLOUT3 Struktur, die die Daten enthält, die zum Registrieren der Legende mit dem Filtermodul erforderlich sind.

[out, optional] calloutId

Ein Zeiger auf eine UINT32-Typvariable, die einen Laufzeitbezeichner empfängt, der die Legende im Filtermodul identifiziert. Der Beschriftungstreiber übergibt diesen Bezeichner an die FwpsCalloutUnregisterById0 Funktion, wenn die Registrierung der Legende vom Filtermodul aufgehoben wird. Wenn ein Beschriftungstreiber einen Datenfluss filtert, übergibt er diesen Bezeichner auch an die FwpsFlowAssociateContext0 und FwpsFlowRemoveContext0 Funktionen. Wenn ein Popuptreiber Daten in Datenströme einführt, übergibt er diesen Bezeichner auch an die FwpsStreamInjectAsync0-Funktion. Das Filtermodul übergibt diesen Bezeichner auch an die FwpsCalloutFlowDeleteNotifyFn0 Legendenfunktion des Popuptreibers. Dieser Parameter ist optional und kann NULL-werden.

Rückgabewert

Die funktion FwpsCalloutRegister3 gibt einen der folgenden NTSTATUS- codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS Die Legende wurde erfolgreich beim Filtermodul registriert.
STATUS_FWP_ALREADY_EXISTS Die Legende konnte nicht beim Filtermodul registriert werden. Eine Legende ist bereits im Filtermodul mit einem Bezeichner registriert, der mit der GUID identisch ist, die im calloutKey Member der FWPS_CALLOUT3 Struktur durch den Legendenparameter-Parameter verweist.
Andere NTSTATUS-Codes Fehler.

Bemerkungen

Der Legendentreiber muss FwpsCalloutUnregisterById0 aufrufen, bevor er entladen wird.

Ein Popuptreiber ruft die FwpsCalloutRegister3--Funktion auf, um eine Legende mit dem Filtermodul zu registrieren. Ein Beschriftungstreiber kann jederzeit eine Legende mit dem Filtermodul registrieren, auch wenn das Filtermodul derzeit nicht ausgeführt wird.

Eine Legende und Filter, die die Legende für die Aktion des Filters angeben, können dem Filtermodul hinzugefügt werden, bevor ein Popuptreiber die Legende mit dem Filtermodul registriert. In diesem Fall werden Filter mit einem Aktionstyp FWP_ACTION_CALLOUT_TERMINATING oder FWP_ACTION_CALLOUT_UNKNOWN als FWP_ACTION_BLOCKbehandelt, und Filter mit einem Aktionstyp von FWP_ACTION_CALLOUT_INSPECTION werden ignoriert, bis die Legende beim Filtermodul registriert ist.

Ein Popuptreiber hebt die Registrierung einer Legende vom Filtermodul auf, indem entweder die Funktion FwpsCalloutUnregisterById0 oder die funktion FwpsCalloutUnregisterByKey0 aufgerufen wird. Ein Beschriftungstreiber kann erst entladen werden, wenn alle Legenden, die zuvor beim Filtermodul registriert wurden, die Registrierung erfolgreich aufgehoben wurden.

Diese Funktion ist im Wesentlichen identisch mit der vorherigen Version, FwpsCalloutRegister2. Der einzige Unterschied ist die aktualisierte FWPS_CALLOUT3 Struktur, auf die der Legendenparameter verweist.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8.
Zielplattform- Universal
Header- fwpsk.h
Library Fwpkclnt.lib
IRQL- PASSIVE_LEVEL

Siehe auch