O modelo de E / S no Windows é baseado em uma pilha de componentes. Os dados devem fluir através dos vários componentes dessa pilha existentes entre a placa de rede física e o aplicativo que consumirá os dados. Às vezes, esses vários componentes inspecionam os dados (um pacote TCP, por exemplo) à medida que fluem pela pilha e, com base no conteúdo desse pacote, os dados podem ser alterados ou o pacote pode ser descartado completamente.
Este é um modelo simplificado da "pilha de rede" pela qual os pacotes fluem, a fim de passar do aplicativo ao fio e vice-versa.
Um dos componentes mais interessantes mostrados na captura de tela acima é a API de texto explicativo do WFP (Windows Filtering Platform). Se aproximarmos isso, pode ser algo como isto:
Os desenvolvedores são livres para conectar seus próprios módulos nos locais apropriados nesta pilha. Por exemplo, produtos antivírus geralmente usam um "driver de filtro" que se conecta a esse modelo e inspeciona o tráfego de rede ou fornece recursos de firewall. O serviço Firewall do Windows também obviamente se encaixa nesse modelo.
Se você quiser escrever um aplicativo que registre o tráfego de rede, como o Wireshark, a maneira apropriada de fazer isso seria usar um driver próprio e inseri-lo na pilha o mais baixo possível para que ele possa detectar pacotes de rede antes que seu módulo de firewall tenha a chance de eliminá-los.
Portanto, existem muitos "drivers" envolvidos nesse processo. Muitos tipos diferentes de drivers também. Além disso, outras formas de entrada / saída no sistema, como leituras e gravações de unidades de disco rígido, seguem modelos muito semelhantes.
Outra observação: as frases de destaque do WFP não são a única maneira de se insinuar na pilha de rede. O WinPCap, por exemplo, faz interface com o NDIS diretamente com um driver, o que significa que ele tem a chance de interceptar o tráfego antes que qualquer filtragem ocorra.
Drivers NDIS
WinPCap
Referências:
Pilha TCP / IP de próxima geração no Vista +
Arquitetura da plataforma de filtragem do Windows