Compartir a través de


API DE PMA

La API de la Plataforma de filtrado de Windows (PMA) se divide en los siguientes componentes.

Componente Descripción Archivos de encabezado
API de llamada (FWPS)${REMOVE}$
tipos de datos usados por las llamadas.Nota Estos tipos de datos se documentan en el Kit de desarrollo de controladores de Microsoft Windows (DDK).
fwpstypes.h
fwpstypes.idl
funciones y tipos enumerados que se usan para implementar llamadas.Nota Estas funciones y tipos enumerados se documentan en DDK.
fwpsu.h
fwpsk.h
API de IKE/AuthIP (IKEEXT)${REMOVE}$
Tipos enumerados y estructuras de que se usan para administrar asociaciones de seguridad y directivas de modo principal (MM) de IKE y AuthIP.
iketypes.h
iketypes.idl
Functions se usa para administrar asociaciones de seguridad y directivas mm de IKE y AuthIP.
fwpmu.h
fwpmk.h
API de IPsec (IPSEC)${REMOVE}$
tipos enumerados y estructuras de que se usan para administrar las directivas de IPsec y las asociaciones de seguridad.
ipsectypes.h
ipsectypes.idl
Functions se usa para administrar las directivas de IPsec y las asociaciones de seguridad.
fwpmu.h
fwpmk.h
API de administración (FWPM)${REMOVE}$
tipos enumerados y estructuras de que se usan para administrar el motor de filtros.
fwpmtypes.h
fwpmtypes.idl
Functions se usa para administrar el motor de filtro. Estas funciones se usan para realizar las siguientes tareas:
  • Establezca y consulte filtros, proveedores y llamadas.
  • Recuperar estadísticas de IPsec.
  • Configure la Plataforma de filtrado de Windows.
fwpmu.h
fwpmk.h
API compartida (FWP) tipos enumerados fundamentales y estructuras de compartidas en la Plataforma de filtrado de Windows.
fwptypes.h
fwptypes.idl

Los nombres de tipo de datos están todos en mayúsculas y delimitados por caracteres de subrayado. El nombre siempre comienza con un prefijo que identifica su grupo de componentes, como FWPM_PROVIDER0.

Los nombres de función son entre mayúsculas y minúsculas y están delimitados por mayúsculas y minúsculas. El nombre siempre comienza con un prefijo que identifica su grupo de componentes, como FwpmProviderContextAdd0.

La mayoría de los nombres de datos y funciones terminan con un número de versión. El archivo de encabezado fwpvi.h asigna los nombres de función y datos independientes de la versión a la versión adecuada para su uso con un sistema operativo determinado. Para obtener más información, vea nombres de Version-Independent PMA y versiones específicas de destinatarios de Windows.

Cada componente no es independiente. Por ejemplo, las directivas de modo principal de IKE (MM) se definen en el componente IKEEXT, pero se almacenan en un contexto de proveedor y están asociadas a un filtro que se encuentran en el componente de LA API FWPM.

User-Mode y Kernel-Mode archivos de encabezado públicos

Se puede llamar a la mayoría de las funciones DEL PMA desde el modo de usuario o el modo kernel. Sin embargo, las funciones en modo de usuario devuelven un DWORD valor que representa un código de error win32, mientras que las funciones en modo kernel devuelven un valor de NTSTATUS que representa un código de estado NT. Como resultado, los nombres de función y la semántica son idénticos entre el modo de usuario y el modo kernel, pero no las firmas de función. Esto requiere encabezados específicos del modo de usuario y del modo kernel independientes para los prototipos de función. Los nombres de archivo de encabezado en modo de usuario terminan en "u" y los nombres de archivo de encabezado en modo kernel terminan en "k".

En la tabla siguiente se enumeran los archivos de encabezado win32 que definen las funciones DEL PMA.

Archivos de encabezado Descripción
fwpmk.h Prototipos de función en modo kernel para los componentes FWPM, IPsec y IKEEXT. Solo está disponible en DDK.
fwpmu.h Prototipos de función en modo de usuario para los componentes FWPM, IPsec y IKEEXT. Solo está disponible en el Kit de desarrollo de software (SDK) de Microsoft Windows.
fwpsk.h Prototipos de función en modo kernel y tipos enumerados para el componente FWPS. Solo está disponible en DDK.
fwpsu.h Prototipos de función en modo de usuario y tipos enumerados para el componente FWPS. Solo está disponible en Windows SDK.Nota Los tipos enumerados FWPS en modo de usuario son idénticos a los tipos enumerados fwPS en modo kernel. En consecuencia, estos tipos solo se documentan en el DDK.
Nota Los prototipos de función FWPS en modo de usuario son idénticos a los prototipos de función FWPS en modo kernel con la excepción del código de retorno. Las funciones FWPS en modo de usuario devuelven un DWORD, mientras que las funciones FWPS en modo kernel devuelven un NTSTATUS. En consecuencia, estas funciones solo se documentan en el DDK.

Todas las funciones en modo de usuario se exportan desde fwpuclnt.dll. Todas las funciones en modo kernel se exportan desde fwpkclnt.sys.

Tipos de datos de administración (FWPM) y llamada (FWPS)

La mayoría de los tipos de datos FWPM, que se usan para tareas de administración, como agregar filtros o llamadas desde una aplicación o controlador, tienen homólogos de FWPS. Los tipos de datos FWPS se usan durante el filtrado real del tráfico de red, en el contexto de una rutina de llamada para la clasificación.

Por ejemplo, para agregar un filtro a una determinada capa del motor de filtrado, el programador debe usar un tipo FWPM, como: filter.layerKey = FWPM_LAYER_INBOUND_IPPACKET. Para comprobar desde qué capa se llama a una llamada, el programador debe usar el tipo FWPS correspondiente: if (inFixedValues->layerId == FWPS_LAYER_INBOUND_IPPACKET).

Algunos homólogos de FWPS para los tipos de datos FWPM están expandiendo los tipos de datos de FWPM originales. Por ejemplo, para agregar una condición de filtro en muchas capas del motor de filtrado, el programador especifica el filterCondition.fieldKey = FWPM_CONDITION_IP_PROTOCOL independientemente de la capa del motor de filtrado. Para buscar un valor de condición de filtro, el programador especifica un tipo FWPS específico de capa, como: inFixedValues->incomingValue[FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_PROTOCOL].

Los tipos de datos FWPS suelen ser más pequeños que sus homólogos de FWPM. Por ejemplo, los identificadores de capa de filtrado de FWPM son GUIDs (16 bytes), mientras que los identificadores de capa de filtrado FWPS son UINT16 (16 bits). El tamaño más pequeño para los tipos de datos FWPS mejora el rendimiento del sistema, ya que las comparaciones de enteros superan guid comparaciones para el tráfico en tiempo real. Además, la memoria del kernel se usa de forma eficaz, ya que todos los tipos FWPS se usan en el kernel para administrar los filtros, mientras que los tipos FWPM se almacenan en modo de usuario para administrar las distintas capas.

modelo de objetos de API DE PMA

de administración de objetos de API DE PMA