โมเดล I / O ใน Windows ขึ้นอยู่กับสแต็กของส่วนประกอบ ข้อมูลต้องไหลผ่านส่วนประกอบต่าง ๆ ของสแต็กนั้นที่มีอยู่ระหว่างการ์ดเครือข่ายจริงและแอปพลิเคชันที่จะใช้ข้อมูล บางครั้งองค์ประกอบต่าง ๆ เหล่านั้นตรวจสอบข้อมูล (ตัวอย่างเช่นแพ็คเก็ต TCP) ขณะที่ไหลผ่านสแต็กและขึ้นอยู่กับเนื้อหาของแพ็คเก็ตนั้นข้อมูลอาจมีการเปลี่ยนแปลงหรือแพ็คเก็ตอาจถูกทิ้งทั้งหมด
นี่เป็นรูปแบบที่เรียบง่ายของ "network stack" ที่แพ็กเก็ตไหลผ่านเพื่อรับจากแอพพลิเคชั่นไปยัง wire และในทางกลับกัน
หนึ่งในองค์ประกอบที่น่าสนใจที่สุดที่แสดงในภาพด้านบนคือ API Callout API ของ WFP (แพลตฟอร์มการกรอง Windows) หากเราขยายเข้าไปอาจมีลักษณะเช่นนี้:
นักพัฒนามีอิสระที่จะเสียบโมดูลของพวกเขาเองในที่ที่เหมาะสมในกองซ้อนนี้ ตัวอย่างเช่นผลิตภัณฑ์แอนติไวรัสมักใช้ "ฟิลเตอร์ไดรเวอร์" ที่เชื่อมต่อกับโมเดลนี้และตรวจสอบปริมาณการใช้เครือข่ายหรือให้ความสามารถของไฟร์วอลล์ บริการ Windows Firewall ก็เหมาะกับรุ่นนี้เช่นกัน
หากคุณต้องการเขียนแอปพลิเคชันที่บันทึกปริมาณการใช้งานเครือข่ายเช่น Wireshark วิธีที่เหมาะสมในการใช้ไดรเวอร์ของคุณเองและใส่ลงในสแต็กให้น้อยที่สุดเท่าที่จะเป็นไปได้เพื่อตรวจจับแพ็กเก็ตเครือข่าย ก่อนที่โมดูลไฟร์วอลล์ของคุณจะมีโอกาสดรอป
ดังนั้นจึงมี "ไดรเวอร์" จำนวนมากที่เกี่ยวข้องในกระบวนการนี้ ไดรเวอร์ประเภทต่าง ๆ มากมายเช่นกัน นอกจากนี้รูปแบบอื่น ๆ ของอินพุต / เอาท์พุตบนระบบเช่นฮาร์ดดิสก์ไดรฟ์อ่านและเขียนตามรุ่นที่คล้ายกันมาก
อีกหมายเหตุหนึ่ง - ข้อความเสริม WFP ไม่ใช่วิธีเดียวที่จะแทรกซึมเข้าไปในเครือข่ายสแต็ก WinPCap เป็นตัวอย่างอินเตอร์เฟสกับ NDIS โดยตรงกับไดรเวอร์หมายความว่ามันมีโอกาสที่จะสกัดกั้นทราฟฟิกก่อนที่การกรองใด ๆ จะเกิดขึ้นเลย
ไดรเวอร์ NDIS
winPcap
อ้างอิง:
TCP / IP Stack รุ่นต่อไปใน Vista +
สถาปัตยกรรมแพลตฟอร์มการกรอง Windows