FwpsPendOperation0-Funktion (fwpsk.h)
Die Funktion FwpsPendOperation0 wird von einer Legende aufgerufen, um die Paketverarbeitung bis zum Abschluss eines anderen Vorgangs anzusetzen.
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 |
---|---|
|
Die Paketverarbeitung wurde erfolgreich erstellt. |
|
FwpsPendOperation0 wurde in einem Reauthorization-Klassifizierungsvorgang aufgerufen. Weitere Informationen finden Sie in den Hinweisen. |
|
Mindestens einer der Parameter ist ungültig. |
|
Der TCP/IP-Netzwerkstapel ist nicht bereit, diesen Vorgang zuzulassen. |
|
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 |