FwpsPendOperation0-Funktion (fwpsk.h)
Die FwpsPendOperation0-Funktion wird von einer Legende aufgerufen, um die Paketverarbeitung ausstehendem Abschluss eines anderen Vorgangs anzuhalten.
Syntax
NTSTATUS FwpsPendOperation0(
[in] HANDLE completionHandle,
[out] HANDLE *completionContext
);
Parameter
[in] completionHandle
Ein Abschlusshandle, 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 klassifizierenFn-Funktion des Popuptreibers übergeben wird.
[out] completionContext
Das Handle zum Abschlusskontext dieses Stiftvorgangs. Wenn die Legende bereit ist, die Paketverarbeitung fortzusetzen, ruft sie die FwpsCompleteOperation0--Funktion 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 |
---|---|
|
Die Paketverarbeitung wurde erfolgreich bearbeitet. |
|
Es wurde ein Aufruf an FwpsPendOperation0 in einem Erneutautorisierungsklassifizierungsvorgang ausgeführt. Weitere Informationen finden Sie in den Hinweisen. |
|
Mindestens ein Parameter ist ungültig. |
|
Der TCP/IP-Netzwerkstapel ist nicht bereit, um diesen Vorgang zuzulassen. |
|
Fehler. |
Bemerkungen
Die Legende sollte den completionContext Parameterwert beibehalten, bis die Paketverarbeitung fortgesetzt wird. Wenn der Vorgang, der den Aufruf dieser Funktion angefragt hat, abgeschlossen ist, sollte die Legende die FwpsCompleteOperation0--Funktion aufrufen und den completionContext Parameterwert übergeben.
Eine Legende kann diese Funktion nur aufrufen, um ein Paket zu stiften, das aus dem FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_ Xxx-, FWPM_LAYER_ALE_AUTH_LISTEN_ Xxx-oder FWPM_LAYER_ALE_AUTH_CONNECT_ XxxFilterebenenstammt. Eine Legende kann den aktuellen Verarbeitungsvorgang in einem Paket einfügen, wenn die Legende eine Verarbeitung auf einer dieser Ebenen ausführen muss, die ein langes Intervall bis zum Abschluss 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 bereitgestellt wurde, muss der Popuptreiber das Paket erneut auswerfen, das auf dieser Ebene geklont wurde, und die FwpsCompleteOperation0--Funktion aufrufen.
Um die Verarbeitung von Stiftpaketen ermöglichen zu können, sollte die klassifizierenFn-Funktion des Popuptreibers das actionType-Element der FWPS_CLASSIFY_OUT0 Struktur auf FWP_ACTION_BLOCK und das Flags Member auf FWPS_CLASSIFY_OUT_FLAG_ABSORB festlegen.
Pended connections are reauthenticated after the FwpsCompleteOperation0 function executes. TCP-Verbindungen, sofern zulässig, werden durch Abschließen des Handshake-Vorgangs erstellt, aber nicht-TCP-Verbindungen erstellen nur Zustandseinträge. Alle eingestifteten Paketdaten werden aus dem Arbeitsspeicher geleert, wenn die FwpsPendOperation0-Funktion abgeschlossen ist, sodass Anwendungen diese Pakete nach FwpsCompleteOperation0- erneut übertragen müssen. Legenden könnten solche Daten puffern und die Daten in ihrem Auftrag erneut auswerfen.
Nur eine anfängliche ALE-Flussautorisierung (Application Layer Enforcement) kann durch Aufrufen von FwpsPendOperation0 und FwpsCompleteOperation0verschoben werden. Wenn ein ALE-Fluss erneut autorisiert wird, wird das FWP_CONDITION_FLAG_IS_REAUTHORIZE Flag festgelegt. Ein Aufruf von FwpsPendOperation0 aus dem FWPM_LAYER_ALE_AUTH_CONNECT_ Xxx oder FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_ XxxFilter ebenen schlägt fehl, wenn das FWP_CONDITION_FLAG_IS_REAUTHORIZE Flag festgelegt ist, und der STATUS_FWP_CANNOT_PEND Statuscode wird zurückgegeben. Weitere Informationen finden Sie unter ALE Reauthorization im Windows SDK.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows Vista. |
Zielplattform- | Universal |
Header- | fwpsk.h (include Fwpsk.h) |
Library | Fwpkclnt.lib |
IRQL- | <= DISPATCH_LEVEL |