Editor: WinpkFilter is more than just a firewall development kit for Windows. With WinpkFilter you can make an application that inserts itself into the Windows network stream: custom firewall solution, internet connection sharing (NAT), IP Shaper, VPN and many other low-level network solutions completely in user-mode using your favorite development environment: Visual C++, Visual C#, Delphi, Visual Basic, C++ Builder and etc.
Using WinpkFilter requires no experience in kernel mode programming on your behalf since WinpkFilter provides you with powerful user level API. However, if you need to implement your solution (to achieve better performance) in kernel mode you can use well-documented raw IOCTL interface as well.
The easiEST way to develop and debug packet filtering/modifying Communication Applications such as firewalls, sniffers, internet connection sharing, VPN, etc.
SMP safe.
Full portability to all Windows platforms due to the common API.
Operates on RAS/PPP adapters
Complete source code for sample applications (projects for MS Visual C++, MS Visual Basic, Borland Delphi and C++ Builder) and wrapper API DLL is available. Source code for helper drivers supplied when you purchase Source Code License ONLY.
Passive network listening and active filtering (with possible packet modification) modes
Interface for sending RAW Ethernet packets to network interface (originated by MSTCP) or to MSTCP
Supports MTU decrement (allows you to set system-wide MTU decrement). This option is required if you plan to add additional headers to IP packets (implement IP in IP packet tunneling, IPSEC based VPN and so on).
Helper routines in ndisapi.dll for converting internal (NDIS level) network interface names to the user friendly ones (the names you see in Network connections properties)
Helper drivers are based on NDIS-hooking technology. You can read more about this technology here. Windows x64 driver and Vista/2008 drivers are based on NDIS intermediate driver.