Procedimientos recomendados (plataforma de filtrado de Windows)
La siguiente lista contiene procedimientos recomendados para desarrollar aplicaciones mediante la API de la Plataforma de filtrado de Windows (PMA).
Use sesiones dinámicas.
Muchas aplicaciones agregan objetos de directiva de filtrado al principio y, a continuación, eliminan estos objetos en detención. Al usar una sesión dinámica, se garantiza que estos objetos se eliminan incluso si la aplicación se bloquea. Además, simplemente cerrar el controlador del motor en detención es más eficaz que realizar llamadas individuales para eliminar cada objeto.
Controle los tiempos de espera de transacción correctamente o establezca la sesión txnWaitTimeoutInMSec en infinita para evitar tiempos de espera.
Incluso si no usa transacciones explícitas, la mayoría de las llamadas se siguen ejecutando en una transacción implícita y, por tanto, pueden expirar.
Use transacciones explícitas para combinar operaciones de adición o eliminación relacionadas en una sola transacción.
Esto es más eficaz y facilita la limpieza de resultados parciales en rutas de acceso de error.
Use cadenas compatibles con MUI.
Todas las cadenas localizables se almacenan en una estructura de datos común: FWPM_DISPLAY_DATA0. Las cadenas de esta estructura pueden ser cadenas indirectas del tipo admitido por SHLoadIndirectString. Antes de que cualquiera de las funciones devuelva una estructura de FWPM_DISPLAY_DATA0 , las cadenas indirectas se resuelven en el recurso de cadena especificado mediante la configuración regional del autor de la llamada.
Asocie todos los objetos a un proveedor.
Cuando se instalan varios proveedores en el sistema, esto facilita que las herramientas de diagnóstico determinen quién agregó qué.
Agregue filtros a su propia subcapa.
Una vez que se alcanza un filtro de terminación en una subcapa, no se evalúan más filtros de esa subcapa. Por lo tanto, si agrega los filtros a la misma subcapa que otro proveedor, puede impedir que se invoquen los filtros de los demás, lo que da lugar a resultados inesperados.
Use el cumplimiento de la capa de aplicación (ALE) en lugar del filtrado orientado a paquetes.
El filtrado en la capa de paquetes es lento.
Filtre los errores icMP y los eventos RST antes de que se generen.
Esto es más eficaz que el filtrado de estos eventos después de generarlos.
Realice la inspección de paquetes en la capa de datos Stream/Datagram en lugar de en la capa de transporte.
Esto se aplica al desarrollo de llamadas. Para obtener más información, vea Consideraciones de programación de controladores de llamada en el Kit de controladores de Windows (WDK).
Considere las implicaciones de rendimiento al usar filtros complejos.
A partir de Windows 7 y Windows Server 2008 R2, los filtros se pueden crear con varias condiciones que usan la misma clave de campo. Esto permite crear directivas complejas con menos filtros. Sin embargo, estos filtros complejos podrían suponer un rendimiento más lento para que el motor de filtros DE PMA clasifique. Se debe realizar una evaluación para determinar si el uso de estos filtros provoca un efecto adverso en el rendimiento general de la solución.