FwpsPendOperation0-Funktion (fwpsk.h)

Die Funktion FwpsPendOperation0 wird von einer Legende aufgerufen, um die Paketverarbeitung bis zum Abschluss eines anderen Vorgangs anzusetzen.

HinweisFwpsPendOperation0 ist eine bestimmte Version von FwpsPendOperation. Weitere Informationen finden Sie unter WFP-Version-Independent Namen und Spezifische Windows-Versionen .
 

Syntax

NTSTATUS FwpsPendOperation0(
  [in]  HANDLE completionHandle,
  [out] HANDLE *completionContext
);

Parameter

[in] completionHandle

Ein Vervollständigungshandle, das zum Stiften des aktuellen Filtervorgangs erforderlich ist. Dieser Parameter wird aus dem completionHandle-Member der FWPS_INCOMING_METADATA_VALUES0-Struktur abgerufen, die an die klassifizierungFn-Funktion des Legendentreibers übergeben wird.

[out] completionContext

Das Handle zum Vervollständigungskontext dieses Stiftvorgangs. Wenn die Legende bereit ist, die Paketverarbeitung fortzusetzen, ruft sie die Funktion FwpsCompleteOperation0 mit dem Wert dieses Parameters als eingabe completionContext-Parameter auf.

Rückgabewert

Die FwpsPendOperation0-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Paketverarbeitung wurde erfolgreich erstellt.
STATUS_FWP_CANNOT_PEND
FwpsPendOperation0 wurde in einem Reauthorization-Klassifizierungsvorgang aufgerufen. Weitere Informationen finden Sie in den Hinweisen.
STATUS_FWP_NULL_POINTER
Mindestens einer der Parameter ist ungültig.
STATUS_FWP_TCPIP_NOT_READY
Der TCP/IP-Netzwerkstapel ist nicht bereit, diesen Vorgang zuzulassen.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

Die Legende sollte den Wert des completionContext-Parameters beibehalten, bis die Paketverarbeitung fortgesetzt wird. Wenn der Vorgang, der zum Aufruf dieser Funktion aufgefordert wurde, abgeschlossen ist, sollte die Legende die Funktion FwpsCompleteOperation0 aufrufen und ihr den completionContext-Parameterwert übergeben.

Eine Legende kann diese Funktion nur aufrufen, um ein Paket zu stiften, das aus den FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_ Xxx-, FWPM_LAYER_ALE_AUTH_LISTEN_ Xxx- oder FWPM_LAYER_ALE_AUTH_CONNECT_ Xxx-Filterebenen stammt. Eine Legende kann den aktuellen Verarbeitungsvorgang in ein Paket einfügen, wenn die Legende eine Verarbeitung auf einer dieser Ebenen ausführen muss, die ein langes Intervall dauern kann, oder die bei IRQL = PASSIVE_LEVEL auftreten sollte, wenn die aktuelle IRQL > PASSIVE_LEVEL.

Um eine Verbindung abzuschließen, die zuvor auf der FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx-Ebene ausgeführt wurde, muss der Legendentreiber das auf dieser Ebene geklonte Paket erneut einfügen und die Funktion FwpsCompleteOperation0 aufrufen.

Um die Paketverarbeitung durchführen zu können, sollte die KlassifizierungFn-Funktion des Legendentreibers den member actionType der FWPS_CLASSIFY_OUT0-Struktur auf FWP_ACTION_BLOCK und das Flags-Element auf FWPS_CLASSIFY_OUT_FLAG_ABSORB festlegen.

Stiftverbindungen werden erneut authentifiziert, nachdem die Funktion FwpsCompleteOperation0 ausgeführt wurde. TCP-Verbindungen werden, sofern zulässig, durch Abschließen des Handshakevorgangs erstellt, aber Nicht-TCP-Verbindungen erstellen nur Zustandseinträge. Wenn die FwpsPendOperation0-Funktion abgeschlossen ist, werden alle pendierten Paketdaten aus dem Arbeitsspeicher geleert, sodass Anwendungen diese Pakete nach der Ausführung von FwpsCompleteOperation0 erneut übertragen müssen. Legenden könnten solche Daten puffern und die Daten in ihrem Namen erneut auswerfen.

Nur eine anfängliche ALE-Flussautorisierung (Application Layer Enforcement) kann durch Aufrufen von FwpsPendOperation0 und FwpsCompleteOperation0 verschoben werden. Wenn ein ALE-Flow erneut authentifiziert wird, wird das flag FWP_CONDITION_FLAG_IS_REAUTHORIZE festgelegt. Ein Aufruf von FwpsPendOperation0 von den FWPM_LAYER_ALE_AUTH_CONNECT_ Xxx- oder FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx-Filterebenen schlägt fehl, wenn das flag FWP_CONDITION_FLAG_IS_REAUTHORIZE festgelegt ist, und der STATUS_FWP_CANNOT_PEND status Code wird zurückgegeben. Weitere Informationen finden Sie unter ALE-Neuautorisierung im Windows SDK.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Vista.
Zielplattform Universell
Header fwpsk.h (include Fwpsk.h)
Bibliothek Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

Weitere Informationen

FWPS_CLASSIFY_OUT0

FWPS_INCOMING_METADATA_VALUES0

FwpsCompleteOperation0

klassifizierenFn