Compartir a través de


estructura FWPS_FILTER3 (fwpstypes.h)

Define un filtro en tiempo de ejecución en el motor de filtros. FWPS_FILTER0, FWPS_FILTER1 y FWPS_FILTER2 están disponibles.

Sintaxis

typedef struct FWPS_FILTER3_ {
  UINT64                 filterId;
  FWP_VALUE0             weight;
  UINT16                 subLayerWeight;
  UINT16                 flags;
  UINT32                 numFilterConditions;
  FWPS_FILTER_CONDITION0 *filterCondition;
  FWPS_ACTION0           action;
  UINT64                 context;
  FWPM_PROVIDER_CONTEXT3 *providerContext;
} FWPS_FILTER3;

Miembros

filterId

Tipo: UINT64

Identificador en tiempo de ejecución que identifica el filtro en el motor de filtros.

weight

Tipo: FWP_VALUE0

Valor que especifica la importancia del filtro en relación con otros filtros del motor de filtros. Los filtros con un valor de peso mayor se invocan primero. El tipo de datos especificado en la estructura FWP_VALUE0 es FWP_UINT64 o FWP_EMPTY. Si el tipo de datos especificado en la estructura de FWP_VALUE0 es FWP_EMPTY, el motor de filtros asigna automáticamente un peso al filtro en función de cómo especifica el filtro comprueba los datos en comparación con los otros filtros del motor de filtros.

subLayerWeight

Tipo: UINT16

Valor que especifica la importancia de la subcapa del filtro en relación con las otras subcapas del motor de filtros. Los filtros que se encuentran en una subcapa con un valor de subLayerWeight superior se invocan primero.

flags

Tipo: UINT16

Marcas que especifican acciones que la función de llamada classifyFn2 de una llamada debe realizar al procesar los datos de red. Las marcas posibles son:

Valor Significado
FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT Esta marca indica a la función de llamada classifyFn2 de una llamada que siempre debe borrar la marca FWPS_RIGHT_ACTION_WRITE cuando devuelve FWP_ACTION_BLOCK o FWP_ACTION_PERMIT para la acción sugerida.
FWPS_FILTER_FLAG_PERMIT_IF_CALLOUT_UNREGISTERED Esta marca indica a la función de llamada classifyFn2 de una llamada que, si la llamada no está registrada, la llamada debe tratarse como un filtro de permiso.

numFilterConditions

Tipo: UINT32

El número de estructuras de FWPS_FILTER_CONDITION0 de la matriz a la que apunta filterCondition. El número puede ser cero.

filterCondition

Tipo: FWPS_FILTER_CONDITION0*

Puntero a una matriz de estructuras de FWPS_FILTER_CONDITION0 . Estas estructuras definen las condiciones de filtrado en tiempo de ejecución para el filtro. Si numFilterConditions es cero, este puntero será NULL.

action

Tipo: FWPS_ACTION0

Especifica la acción que debe realizar el filtro si se cumplen todas las condiciones de filtrado del filtro.

context

Tipo: UINT64

Valor de contexto asociado al filtro. Una llamada puede establecer este miembro para que apunte a una estructura de contexto proporcionada por el controlador de llamada desde dentro de la función de llamada classifyFn2 del controlador de llamada cuando se agrega el filtro al motor de filtros. Esta estructura de contexto, que es opaca para el motor de filtro, se puede usar mediante la función de llamada classifyFn2 del controlador de llamada para conservar cualquier información de estado o datos específicos del controlador entre llamadas por el motor de filtro a la función de llamada classifyFn2 del controlador de llamada.

providerContext

Tipo: FWPM_PROVIDER_CONTEXT3*

Puntero al contexto del proveedor, que tiene el formato de estructura FWPM_PROVIDER_CONTEXT3 . Si el filtro usa una llamada y la llamada tiene establecida la marca FWPM_CALLOUT_FLAG_USES_PROVIDER_CONTEXT , este miembro contendrá el contexto del proveedor de la estructura de FWPM_FILTER0 correspondiente. De lo contrario, este miembro es NULL.

Comentarios

El motor de filtros pasa un puntero a una estructura de FWPS_FILTER3 a las funciones de llamada notifyFn3 y classifyFn3 .

La acción de un filtro solo se realiza si se cumplen todas las condiciones de filtrado del filtro. Si no se especifica ninguna condición de filtrado en el filtro, siempre se realiza la acción especificada.

El miembro providerContext proporciona un mecanismo para que un controlador de llamada recupere contextos de proveedor sin llamar al motor de filtrado base (BFE).

Esta estructura es esencialmente idéntica a la versión anterior, FWPM_PROVIDER_CONTEXT3 estructura en el miembro providerContext .

Requisitos

Requisito Valor
Header fwpstypes.h