Das E / A-Modell in Windows basiert auf einem Stapel von Komponenten. Die Daten müssen durch die verschiedenen Komponenten des Stapels zwischen der physischen Netzwerkkarte und der Anwendung, die die Daten verbraucht, fließen. Manchmal überprüfen diese verschiedenen Komponenten die Daten (beispielsweise ein TCP-Paket), während sie durch den Stapel fließen, und basierend auf dem Inhalt dieses Pakets können die Daten geändert oder das Paket vollständig verworfen werden.
Dies ist ein vereinfachtes Modell des "Netzwerkstapels", durch den Pakete fließen, um von der Anwendung zur Leitung und umgekehrt zu gelangen.
Eine der interessantesten Komponenten im obigen Screenshot ist die WFP-Callout-API (Windows Filtering Platform). Wenn wir das vergrößern, könnte es ungefähr so aussehen:
Entwickler können ihre eigenen Module an die entsprechenden Stellen in diesem Stapel stecken. Beispielsweise verwenden Antivirenprodukte in der Regel einen "Filtertreiber", der an dieses Modell angeschlossen wird und den Netzwerkverkehr überprüft oder Firewall-Funktionen bereitstellt. Auch der Windows-Firewall-Dienst passt offensichtlich zu diesem Modell.
Wenn Sie eine Anwendung schreiben möchten, die den Netzwerkverkehr aufzeichnet, wie z. B. Wireshark, sollten Sie einen eigenen Treiber verwenden und ihn so niedrig wie möglich in den Stapel einfügen, damit er Netzwerkpakete erkennen kann bevor Ihr Firewall-Modul eine Chance hat, sie fallen zu lassen.
Es gibt also viele "Treiber", die an diesem Prozess beteiligt sind. Viele verschiedene Arten von Fahrern. Andere Arten der Eingabe / Ausgabe auf dem System, wie z. B. das Lesen und Schreiben von Festplatten, folgen sehr ähnlichen Modellen.
Ein weiterer Hinweis: WFP-Callouts sind nicht die einzige Möglichkeit, sich in den Netzwerkstapel einzufügen. WinPCap als Beispiel kommuniziert mit NDIS direkt mit einem Treiber, was bedeutet, dass es die Möglichkeit hat, den Datenverkehr abzufangen, bevor überhaupt gefiltert wurde.
NDIS-Treiber
WinPCap
Verweise:
TCP / IP-Stack der nächsten Generation in Vista +
Windows-Filterplattformarchitektur