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.
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 |
---|---|
|
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 . |
|
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. |
|
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. |
|
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. |
|
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. |
|
Reservado para uso del sistema. Los controladores de llamada deben omitir esta marca. |
|
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. |
|
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. |
|
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. |
|
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) |