Il modello I / O in Windows si basa su una pila di componenti. I dati devono fluire attraverso i vari componenti di quello stack esistente tra la scheda di rete fisica e l'applicazione che consumerà i dati. A volte questi vari componenti ispezionano i dati (ad esempio un pacchetto TCP) mentre fluiscono attraverso lo stack e, in base al contenuto di quel pacchetto, i dati possono essere modificati o il pacchetto può essere scartato del tutto.
Questo è un modello semplificato dello "stack di rete" che attraversa i pacchetti per passare dall'applicazione al filo e viceversa.
Uno dei componenti più interessanti mostrati nello screenshot sopra è l'API Callout WFP (Windows Filtering Platform). Se lo ingrandissimo, potrebbe essere simile a questo:
Gli sviluppatori sono liberi di collegare i propri moduli nelle posizioni appropriate in questo stack. Ad esempio, i prodotti antivirus in genere utilizzano un "driver filtro" che si collega a questo modello e controlla il traffico di rete o fornisce funzionalità firewall. Ovviamente anche il servizio Windows Firewall si adatta a questo modello.
Se si desidera scrivere un'applicazione che registra il traffico di rete, come Wireshark, il modo appropriato per farlo sarebbe quello di utilizzare un proprio driver e inserirlo nello stack il più basso possibile in modo che possa rilevare i pacchetti di rete prima che il modulo del firewall abbia la possibilità di eliminarli.
Quindi ci sono molti "driver" coinvolti in questo processo. Anche molti tipi diversi di driver. Inoltre, altre forme di input / output sul sistema, come le letture e le scritture del disco rigido, seguono modelli molto simili.
Un'altra nota: i callout del WFP non sono l'unico modo per insinuarsi nello stack di rete. WinPCap, ad esempio, si interfaccia con NDIS direttamente con un driver, il che significa che ha la possibilità di intercettare il traffico prima che abbia avuto luogo qualsiasi filtro.
Driver NDIS
WinPCap
Riferimenti:
Stack TCP / IP di nuova generazione in Vista +
Architettura della piattaforma di filtro di Windows