
Windows Packet Filter Kit (WinpkFilter) is a high performance packet filtering framework for Windows 9x/ME/NT/2000/XP/2003/Vista/2008/7/2008R2/8/2012/8.1/2012R2 that allows developers to transparently filter (i.e. view and modify) raw network packets on NDIS level with minimal impact on network activity & without having to write low level TDI or NDIS driver code.
With WinpkFilter, you can make an application that inserts itself into the Windows network packets flow: 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++, 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 do that as well on the base of WinpkFilter driver's code.
WinpkFilter supports Dial-Up connections (Analog modem, ISDN modem), Ethernet (LAN and WLAN) connections, Cable/DSL modem using DHCP or "PPP over Ethernet" (EnterNet, RasPPPoE, WinPoET), Mobile Broadband.
v3.2 [May 11, 2014]
Ver 3.0 to Ver 3.0.1
==============
Few improvements/bugfixes in legacy Windows 9x/ME driver.
Slightly changed driver API structures. Please refer WinpkFilter online documentation for the details.
All sample applications and API DLL now include Visual Studio 2005 projects. This greatly simplifies development under Windows XP/2003 x64.
Ver 3.0.1 to Ver 3.0.3
================
Few changes in API DLL required for Windows Vista support
Installation scripts are updated to properly install drivers on Windows Vista
Ver 3.0.3 to Ver 3.0.4
================
Compatibility fixes in WinpkFilter API DLL and drivers
x64 driver support for 32 bit code running in WOW64. This feature should be useful for developers whose development tools does not include x64 native compiler. An example, Delphi 32-bit application can work with WinpkFilter driver on Windows x64.
Kernel level filters. You can load a filter table into WinpkFilter driver which defines rules for packet pass, block or redirect_and_ process by your application. This may seriously improve performance.
C# interface and samples
Ver 3.0.4 to Ver 3.0.5
================
Fixed compatibility issue with Kaspersky software
Added API for getting active WAN connections information
Added API for sending/receiving bulk of packets
Ver 3.0.5 to Ver 3.0.6
================
WinpkFilter 3.0.6 released. This service release includes the bugfix for WinpkFilter NDIS IM driver (BSOD on restoring from Hibernate state on Windows Vista).
Ver 3.0.6 to Ver 3.0.7
================
WinpkFilter 3.0.7 released. This service release includes the bugfix for WinpkFilter NDIS IM driver on power state changes.
Ver 3.0.7 to Ver 3.0.9
================
This update introduces NDIS 6.0 LightWeight Filter driver to be replace NDIS 5.0 IM driver for Windows Vista/7.
Ver 3.0.9 to Ver 3.1
==============
LWF driver updated according Windows 8 requirements
Added VLAN tagging 802.1Q
Added IPv6 support for built-in filters
Bug fixes:
Incorrect spinlock acquire in LWF driver
Adapter list changed event in LWF driver
Unload LWF NDIS hang
Ver 3.1 to Ver 3.1.1
==============
Updated C# samples and interface header
Bug fixes:
Unload LWF driver hang problem fixed. It has also caused network lock with Windows Hardware Certification Kit on some systems.
Ver 3.1.1 to Ver 3.1.2
================
Added Filter ID for the packets redirected by built-in filters
Updated C# samples
Ver 3.1.2 to Ver 3.1.3
================
Changed approach to disable TCP task offload in NDIS LWF. Previous method had some known issues.
Ver 3.1.3 to Ver 3.2.0
================
Fixed compatibility issues (covers but not limited to) with Cisco AnyConnect VPN, Yes Go 4G USB modem, Vodafone/HUAWEI USB modems
Extended built-in filters compatibility:
Added counters for incoming/outgoing packets/bytes
Added TCP flags
Ver 3.2.0 to Ver 3.2.2
================
Fixed an MTU issue for RAS connections