Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A lista a seguir contém as práticas recomendadas para o desenvolvimento de aplicativos usando a API da Plataforma de Filtragem do Windows (WFP).
Use sessões dinâmicas.
Muitos aplicativos adicionam objetos de política de filtragem no início e, em seguida, excluem esses objetos na parada. Ao usar uma sessão dinâmica, você garante que esses objetos sejam excluídos mesmo se o aplicativo falhar. Além disso, simplesmente fechar a alça do motor na parada é mais eficiente do que fazer chamadas individuais para excluir cada objeto.
Trate os timeouts de transação de forma adequada ou defina o tempo de espera da transação txnWaitTimeoutInMSec como infinito para evitar timeouts.
Mesmo que você não use transações explícitas, a maioria das chamadas ainda é executada sob uma transação implícita e, portanto, pode atingir o tempo limite.
Use transações explícitas para combinar operações de adição ou exclusão relacionadas em uma única transação.
Isso é mais eficiente e facilita a eliminação de resultados parciais em trajetos de erro.
Use cadeias de caracteres compatíveis com MUI.
Todas as cadeias de caracteres localizáveis são armazenadas em uma estrutura de dados comum: FWPM_DISPLAY_DATA0. As cadeias de caracteres dentro dessa estrutura podem ser cadeias de caracteres indiretas do tipo suportado por SHLoadIndirectString. Antes de uma estrutura FWPM_DISPLAY_DATA0 ser retornada por qualquer uma das funções, as cadeias indiretas são convertidas no recurso de cadeia de caracteres especificado, usando a localização do chamador.
Associe todos os objetos a um provedor.
Quando vários provedores são instalados no sistema, isso torna mais fácil para as ferramentas de diagnóstico determinar quem adicionou o quê.
Adicione filtros à sua própria subcamada.
Quando um filtro de terminação em uma subcamada é atingido, não são avaliados mais filtros nessa subcamada. Assim, se você adicionar seus filtros à mesma subcamada que outro provedor, poderá impedir que os filtros uns dos outros sejam invocados, resultando em resultados inesperados.
Use a imposição da camada de aplicativo (ALE) em vez da filtragem orientada a pacotes.
A filtragem na camada de pacotes é lenta.
Filtre erros ICMP e eventos RST antes que eles sejam gerados.
Isso é mais eficiente do que filtrar esses eventos depois que eles são gerados.
Execute a inspeção de pacotes na camada de dados de fluxo/datagrama em vez de na camada de transporte.
Isso se aplica ao desenvolvimento de textos explicativos. Para obter mais informações, consulte Considerações sobre programação de driver de texto explicativo no Kit de Driver do Windows (WDK).
Considere as implicações de desempenho ao usar filtros complexos.
A partir do Windows 7 e do Windows Server 2008 R2, os filtros podem ser criados com várias condições que usam a mesma chave de campo. Isso permite que políticas complexas sejam criadas com menos filtros. No entanto, esses filtros complexos podem sofrer de um desempenho mais lento para que o mecanismo de filtro WFP os classifique. Uma avaliação deve ser feita para determinar se o uso desses filtros causa um efeito adverso no desempenho geral da sua solução.