Función FwpsPendOperation0 (fwpsk.h)
Una llamada llama a la función FwpsPendOperation0 para suspender el procesamiento de paquetes pendiente de finalización de otra operación.
NTSTATUS FwpsPendOperation0(
[in] HANDLE completionHandle,
[out] HANDLE *completionContext
);
[in] completionHandle
Identificador de finalización necesario para lápiz de 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 classifyFn del controlador de llamada.
[out] completionContext
Identificador del contexto de finalización de esta operación en 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 completionContext de entrada.
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 reautorización. Para obtener más información, vea la sección 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. |
|
Se produjo un 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 y pasarla el valor del parámetro completionContext .
Una llamada solo puede llamar a esta función para lápiz de un paquete que se origina en la FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_ Xxx, FWPM_LAYER_ALE_AUTH_LISTEN_ Xxx o FWPM_LAYER_ALE_AUTH_CONNECT_ capas de filtradoXxx. Una llamada puede basar la operación de procesamiento actual en un paquete cuando la llamada debe realizar el procesamiento en una de estas capas que pueden tardar un largo intervalo en completarse o que deben producirse en IRQL = PASSIVE_LEVEL si el IRQL > actual PASSIVE_LEVEL.
Para completar una conexión que se había insertado previamente en la capa 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 classifyFn del controlador de llamada debe establecer el miembro actionType de la estructura de FWPS_CLASSIFY_OUT0 en FWP_ACTION_BLOCK y el miembro Flags en FWPS_CLASSIFY_OUT_FLAG_ABSORB.
Las conexiones manuscritas 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 en búfer estos datos y volver a expulsarlos en su nombre.
Solo se puede posponer una autorización de flujo de aplicación de aplicación (ALE) inicial 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 FwpsPendOperation0 desde las capas de filtrado FWPM_LAYER_ALE_AUTH_CONNECT_ Xxx o FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx si se establece la marca FWP_CONDITION_FLAG_IS_REAUTHORIZE y se devolverá el código de estado de STATUS_FWP_CANNOT_PEND. Para obtener más información, consulte Reauthorization de ALE en Windows SDK.
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows Vista. |
Plataforma de destino | Universal |
Encabezado | fwpsk.h (incluya Fwpsk.h) |
Library | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |