Compartir a través de


estructura FWPS_CALLOUT3 (fwpsk.h)

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

Sintaxis

typedef struct FWPS_CALLOUT3_ {
  GUID                                calloutKey;
  UINT32                              flags;
  FWPS_CALLOUT_CLASSIFY_FN3           classifyFn;
  FWPS_CALLOUT_NOTIFY_FN3             notifyFn;
  FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT3;

Miembros

calloutKey

Una llamada definida por el controlador GUID 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 del controlador de llamada clasifiqueFn3 función de llamada solo si hay un contexto asociado al flujo de datos. Un controlador de llamada asocia un contexto a un flujo de datos llamando 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 clasifiqueFn3 función 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 del 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 filtro 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 una inspección dinámica de flujos de datos en el nivel de flujo. Consulte inspección de flujos.
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 paquetes grandes 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 clasificarFn3 función de llamada puede clasificar varias estructuras NET_BUFFER_LIST encadenadas. Para obtener más información, consulta Using Layer 2 Filtering.

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

fwpsReferenceNetBufferList0
fwpsDereferenceNetBufferList0
fwpsAllocateCloneNetBufferList0
fwpsFreeCloneNetBufferList0

Con este conjunto de marcas, fwpsAllocateCloneNetBufferList0 siempre devolverá un error 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 000. 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 volver a expulsar paquetes URO de entrada.

classifyFn

Puntero a la función de llamada clasifiqueFn3 función 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 de notifyFn3 del controlador de llamada. El motor de filtro 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 filtro 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 a los flujos de datos que procesa la llamada, este miembro debe establecerse en NULL.

Observaciones

Un controlador de llamada pasa un puntero a una estructura de FWPS_CALLOUT3 inicializada al FwpsCalloutRegister3 función cuando registra una llamada con el motor de filtro.

Una llamada puede establecer la marca 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. El rendimiento se mejorará y el controlador no tendrá que mantener datos de estado innecesarios.

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

FWPS_CALLOUT3 es la versión específica de FWPS_CALLOUT. Consulta nombres Version-Independent DEL PMA y destinatarios de versiones específicas de Windows para obtener más información.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 8.
encabezado de fwpsk.h

Consulte también