Función FwpsPendOperation0 (fwpsk.h)
Se llama a la función FwpsPendOperation0 para suspender el procesamiento de paquetes pendiente de otra operación.
NTSTATUS FwpsPendOperation0(
[in] HANDLE completionHandle,
[out] HANDLE *completionContext
);
[in] completionHandle
Identificador de finalización necesario para pendir la operación de filtrado actual. Este parámetro se obtiene del miembro completionHandle de la estructura de FWPS_INCOMING_METADATA_VALUES0 que se pasa a la función clasifiqueFn del controlador de llamada.
[out] completionContext
Identificador del contexto de finalización de esta operación de lápiz. Cuando la llamada está lista para reanudar el procesamiento de paquetes, llama a la función FwpsCompleteOperation0 con el valor de este parámetro como el parámetro input completionContext.
La función FwpsPendOperation0 devuelve uno de los siguientes códigos NTSTATUS.
Código devuelto | Descripción |
---|---|
|
El procesamiento de paquetes se ha activado correctamente. |
|
Se realizó una llamada a fwpsPendOperation0 en una operación de clasificación de reauthorización. Para obtener más información, vea Comentarios. |
|
Uno o varios de los parámetros no son válidos. |
|
La pila de red TCP/IP no está lista para permitir esta operación. |
|
Error. |
La llamada debe conservar el valor del parámetro completionContext hasta que reanude el procesamiento de paquetes. Cuando se haya completado la operación que solicita la llamada a esta función, la llamada debe llamar a la función fwpsCompleteOperation0, pasando el valor del parámetro completionContext.
Una llamada solo puede llamar a esta función para escribir un paquete que se origina en la FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_ Xxx, FWPM_LAYER_ALE_AUTH_LISTEN_ Xxxo FWPM_LAYER_ALE_AUTH_CONNECT_ capas de filtrado xxx. Una llamada puede plumar la operación de procesamiento actual en un paquete cuando la llamada debe realizar el procesamiento en una de estas capas que puede tardar un largo intervalo en completarse o que debe producirse en IRQL = PASSIVE_LEVEL si el IRQL actual > PASSIVE_LEVEL.
Para completar una conexión que se ha insertado previamente en la capa de FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx, el controlador de llamada debe volver a expulsar el paquete clonado en esa capa, así como llamar a la función FwpsCompleteOperation0.
Para poder procesar paquetes en lápiz, la función de clasifiqueFn del controlador de llamada debe establecer el miembro actionType de la estructura FWPS_CLASSIFY_OUT0 en FWP_ACTION_BLOCK y el miembro Flags en FWPS_CLASSIFY_OUT_FLAG_ABSORB.
Las conexiones con lápiz se vuelven a autenticar después de que se ejecute la función FwpsCompleteOperation0. Las conexiones TCP, si se permiten, se crean completando la operación de protocolo de enlace, pero las conexiones que no son TCP solo crean entradas de estado. Los datos de paquetes en lápiz se vacían de la memoria cuando se completa la función FwpsPendOperation0, por lo que las aplicaciones deben retransmitir esos paquetes después de que se ejecute FwpsCompleteOperation0. Las llamadas podrían almacenar dichos datos en búfer y volver a expulsar los datos en su nombre.
Solo se puede posponer una autorización inicial de flujo de aplicación (ALE) llamando a fwpsPendOperation0 y FwpsCompleteOperation0. Si se vuelve a autorizar un flujo de ALE, se establece la marca FWP_CONDITION_FLAG_IS_REAUTHORIZE. Se producirá un error en una llamada a fwpsPendOperation 0 desde la FWPM_LAYER_ALE_AUTH_CONNECT_ Xxx o FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_ capas de filtrado xxx si se establece la marca de FWP_CONDITION_FLAG_IS_REAUTHORIZE y se devolverá el código de estado STATUS_FWP_CANNOT_PEND. Para obtener más información, consulte Reauthorization de ALE en Windows SDK.
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows Vista. |
de la plataforma de destino de | Universal |
encabezado de | fwpsk.h (incluya Fwpsk.h) |
biblioteca de | Fwpkclnt.lib |
irQL | <= DISPATCH_LEVEL |