estructura FWPS_CALLOUT2 (fwpsk.h)

La estructura FWPS_CALLOUT2 define los datos necesarios para que un controlador de llamada registre una llamada con el motor de filtro.

NotaFWPS_CALLOUT2 es la versión específica de FWPS_CALLOUT usada en Windows 8 y versiones posteriores. Para obtener más información, consulte NOMBRES de PMA Version-Independent y versiones específicas de destino de Windows . Para Windows 7, FWPS_CALLOUT1 está disponible. Para Windows Vista, FWPS_CALLOUT0 está disponible.

 

Sintaxis

typedef struct FWPS_CALLOUT2_ {
  GUID                                calloutKey;
  UINT32                              flags;
  FWPS_CALLOUT_CLASSIFY_FN2           classifyFn;
  FWPS_CALLOUT_NOTIFY_FN2             notifyFn;
  FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT2;

Miembros

calloutKey

GUID definido por el controlador de llamada que identifica de forma única la llamada.

flags

Marcas que especifican parámetros específicos de la llamada. Las marcas posibles son:

Valor Significado
FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW
0x00000001
Un controlador de llamada puede especificar esta marca al registrar una llamada que se agregará en una capa que admita flujos de datos. Si se especifica esta marca, el motor de filtro llama a la función de llamada classifyFn2 del controlador de llamada solo si hay un contexto asociado al flujo de datos. Un controlador de llamada asocia un contexto a un flujo de datos mediante una llamada a la función FwpsFlowAssociateContext0 .
FWP_CALLOUT_FLAG_ALLOW_OFFLOAD
0x00000002
Un controlador de llamada especifica esta marca para indicar que la función de llamada classifyFn2 del controlador de llamada no se ve afectada al descargar el procesamiento de datos de red para descargar tarjetas de interfaz de red (NIC) compatibles con la descarga. Si no se especifica esta marca, la descarga de procesamiento de datos de red está deshabilitada para todo el tráfico procesado por los filtros que especifican la llamada para la acción del filtro.
FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY
0x00000004
Un controlador de llamada especifica esta marca para indicar que puede recibir notificaciones sobre objetos y filtros que se agregan dentro de una transacción. El motor de filtros envía la notificación después de confirmar la transacción.
FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION
0x00000008
Un controlador de llamada especifica esta marca para indicar que puede realizar la inspección dinámica de flujos de datos en el nivel de flujo. Consulte inspección de Stream.
FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY
0x00000010
Un controlador de llamada especifica esta marca para que se registre a sí misma cuando se vuelva a clasificar una operación de socket existente.
FWP_CALLOUT_FLAG_RESERVED1
0x00000020
Reservado para uso del sistema. Los controladores de llamada deben omitir esta marca.
FWP_CALLOUT_FLAG_ALLOW_RSC
0x00000040
Un controlador de llamada especifica esta marca para indicar que la llamada admite la fusión de segmentos de recepción TCP (RSC) con grandes paquetes de hasta 64 K. Si no se especifica esta marca y se registra una llamada, RSC se deshabilita para todo el tráfico procesado por los filtros que especifican la llamada para la acción del filtro.
FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY
0x00000080
Un controlador de llamada especifica esta marca al registrar una llamada que se agregará en la capa 2, para indicar que su función de llamada classifyFn2 puede clasificar varias estructuras de NET_BUFFER_LIST encadenadas. Para obtener más información, consulta Uso del filtrado de capa 2.
Precaución  

Si un controlador de llamada establece esta marca, no puede usar las siguientes funciones para modificar NET_BUFFER_LISTs.

Con este conjunto de marcas, FwpsAllocateCloneNetBufferList0 siempre devolverá un error de INVALID_PARAMETER . Esto puede provocar que un controlador de llamada de terceros no administre el recuento de referencias de NET_BUFFER_LISTs, lo que hace que las operaciones de envío y recepción se detengan.

FWP_CALLOUT_FLAG_ALLOW_USO
0x00000100
Un controlador de llamada especifica esta marca para indicar que la llamada admite la descarga de segmentación UDP (USO) con paquetes mayores que el MTU del medio de red. Si no se especifica esta marca y se registra una llamada, USO se deshabilita para todo el tráfico procesado por los filtros que especifican la llamada para la acción del filtro. Nota: La versión más antigua en la que se admite esta marca es Windows Insider Preview, versión 10.0.25876.
FWP_CALLOUT_FLAG_ALLOW_URO
0x00000200
Un controlador de llamada especifica esta marca para indicar que la llamada admite la descarga de recepción udp (URO) con paquetes grandes de hasta 64 K. Si no se especifica esta marca y se registra una llamada, URO se deshabilita para todo el tráfico procesado por los filtros que especifican la llamada para la acción del filtro. Nota: Si se especifica esta marca, las llamadas no deben clonar ni reinjetar paquetes de URO entrantes.

classifyFn

Puntero a la función de llamada classifyFn2 del controlador de llamada. El motor de filtro llama a esta función siempre que la llamada procese los datos de red.

notifyFn

Puntero a la función notifyFn2 del controlador de llamada. El motor de filtros llama a esta función para notificar al controlador de llamada los eventos asociados a la llamada.

flowDeleteFn

Puntero a la función de llamada flowDeleteFn del controlador de llamada. El motor de filtros llama a esta función cada vez que finaliza un flujo de datos que está procesando la llamada.

Si un controlador de llamada no asocia un contexto con los flujos de datos que procesa la llamada, este miembro debe establecerse en NULL.

Comentarios

Un controlador de llamada pasa un puntero a una estructura de FWPS_CALLOUT2 inicializada a la función FwpsCalloutRegister2 cuando registra una llamada con el motor de filtro.

Una llamada puede establecer la marca de FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW solo para las conexiones en las que el controlador está interesado en realizar inspecciones de flujo. Esta llamada se omitirá en todas las demás conexiones. Se mejorará el rendimiento y el controlador no tendrá que mantener datos de estado innecesarios.

Esta estructura es esencialmente idéntica a la versión anterior, FWPS_CALLOUT1. Las únicas diferencias son que los miembros de esta versión almacenan las versiones actualizadas de los punteros de función de llamada y las marcas adicionales están disponibles para que los controladores de llamada se establezcan.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 8.
Encabezado fwpsk.h (incluya Fwpsk.h)

Consulte también

FWPS_CALLOUT0

FWPS_CALLOUT1

FwpsCalloutRegister2

Uso del filtrado de capa 2

classifyFn2

flowDeleteFn

notifyFn2