NFSDK 1.7.0.2 (October 16, 2024)

WFP driver 1.7.0.2
- Fixed a compatibility issue with latest versions of WTD (Windows Defender) on Windows 11.
- Fixed a possible deadlock during initialization of callouts.
- Fixed an incompatibility with IP packet level filters on TCP level.
- Fixed an issue with dual stack UDP sockets, when the same IPv6 socket is used for transmitting both IPv4 and IPv6 datagrams.

NFSDK 1.6.9.4 (August 9, 2024)

WFP driver 1.6.9.4
- All TCP context are deleted only during driver unloading.
- Removed possibly long delays during detaching from the driver.
- Fixed a compatibility issue with older versions of WFP driver and special order of filters for some other drivers. It allows to avoid wrong order of packets for TCP connections when two instances of NFSDK driver are working together with antivirus or other application, which requires a special order of WFP filters.

NFSDK 1.6.9.1 (June 20, 2024)

WFP driver 1.6.9.1
- Fixed compatibility issues with latest versions of BitDefender and Sophos.

NFSDK 1.6.8.9 (May 14, 2024)

WFP driver 1.6.8.9
- Fixed delays during filtering small TCP packets.

NFSDK 1.6.8.8 (April 25, 2024)

WFP driver 1.6.8.8
- Added a workaround for compatibility with recent Windows updates and other network filters.

NFSDK 1.6.8.5 (March 13, 2024)

WFP driver 1.6.8.5
- Fixed a compatibility issue with latest versions of Kaspersky.

NFSDK 1.6.8.4 (February 06, 2024)

WFP driver 1.6.8.4
- Fixed possible compatibility issues with Sophos, NOD32.
- Fixed a compatibility issue with AhnLab product.
- Fixed possible BSOD after unhandled exception in WFP injection functions.

NFSDK 1.6.8.0 (September 21, 2023)

WFP driver 1.6.8.0
- Fixed the order of WFP filters for compatibility with Microsoft Defender for Business.
- Fixed a compatibility issue with NOD32.
- Fixed a compatibility issue with GlobalProtect.
- Fixed a hang of driver loading when an old build of netkvm.sys is installed.

NFSDK 1.6.7.2 (July 21, 2023)

WFP driver 1.6.7.2
- Fixed a compatibility issue with other WFP level UDP filtering drivers.
- Fixed blocking packets during driver unloading.

NFSDK 1.6.6.8 (June 16, 2023)

WFP driver 1.6.6.8
- Fixed a compatibility issue with other UDP filtering drivers.
- Fixed detaching from process procedure to avoid issues with starting/stopping the driver.
- Fixed an issue with flow control contexts for UDP protocol.
- The driver is unloaded faster.

NFSDK 1.6.6.1 (April 26, 2023)

WFP driver 1.6.6.1
- Security and compatibility fixes in driver code.

NFSDK 1.6.6.0 (March 6, 2023)

WFP driver 1.6.6.0
- Fixed a compatibility issue with BullGuard.
- Fixed a compatibility issue with Symantec.

nfapi 1.5.2.3
- Fixed a possible error during handling TCP connect request.

NFSDK 1.6.5.7 (December 1, 2022)

WFP driver 1.6.5.7
- Fixed a compatibility issue with Cisco AnyConnect, related to filtering UDP protocol.
- Added NF_BYPASS_IP_PACKETS flag for rules, which instructs the driver to bypass IP packet filtering when the flag NF_FILTER_AS_IP_PACKETS is also enabled.

NFSDK 1.6.5.5 (November 8, 2022)

WFP driver 1.6.5.5
- Fixed a possible issue with releasing driver shared memory in case if the filtering process closes unexpectedly.
- Fixed a compatibility issue with Sophos Intercept X product.

TDI driver 1.5.0.1
- Fixed a possible issue with releasing driver shared memory in case if the filtering process closes unexpectedly.

NFSDK 1.6.5.3 (October 20, 2022)

WFP driver 1.6.5.3
- The driver closes TCP connections more correctly when filtering process is detaching.
- Added proper handling of traffic suspend requests for UDP sockets.

NFSDK 1.6.5.2 (October 13, 2022)

WFP driver 1.6.5.2
- Fixed a possible issue in case if other process is trying to attach to driver while a previous instance is detaching.
- Fixed an issue with TCP and UDP checksums for injected outgoing IPv6 packets.

Gateway driver nfsrvapi 1.0.1.5
- Fixed an issue with handling TCP disconnects.

NFSDK 1.6.4.9 (September 19, 2022)

WFP driver 1.6.4.9
- Fixed the mask for bypassing UDP Teredo IPv6 traffic.

Gateway driver 1.0.1.1
- Fixed an issue with setting real source address for UDP datagrams sent back to client on multihomed machines.

NFSDK 1.6.4.8 (August 21, 2022)

WFP driver 1.6.4.8
- Fixed an issue with closing TCP contexts.
- Fixed a compatibility issue with latest UserGate drivers.
- Fixed a bug in nf_modifyFlowCtl kernel mode code on x86.
- Fixed the order of filters for better compatibility.

Gateway driver 1.0.1.0
- Fixed a bug in nf_modifyFlowCtl kernel mode code on x86.

NFSDK 1.6.4.5 (July 15, 2022)

WFP driver 1.6.4.5
- The order of WFP filters allows to start more than 2 driver instances without compatibility issues on TLS filtering level.
- Fixed the order of WFP filters when Cisco Anyconnect is installed.
- Fixed closing of TCP connections without NF_FILTER flag during detaching the filtering process from driver.
- Fixed an issue with closing the contexts of hanging TCP connection.

NFSDK 1.6.4.0 (June 7, 2022)

WFP driver 1.6.4.0
- Fixed a compatibility issue in TCP/UDP redirection and closing code.

NFSDK 1.6.3.8 (May 27, 2022)

nfapi 1.5.2.0
- Removed the memory pools code.

NFSDK 1.6.3.7 (May 21, 2022)

WFP driver 1.6.3.7
- Fixed the order of filters for compatibility with old builds of WFP driver.
- Added a workaround for a situation when TCP injection completion routine is incorrectly called with zero NET_BUFFER_LIST parameter in latest builds of Windows 10.
- Fixed a compatibility issue with Dell Optimizer.
- Fixed compilation errors with WDK 10.

nfapi 1.5.1.9
- Fixed a memory leak with some linking flags.

NFSDK 1.6.3.0 (March 2, 2022)

WFP driver 1.6.3.0
- Fixed a compatibility issue with NOD32.

NFSDK 1.6.2.9 (February 7, 2022)

WFP driver 1.6.2.9
- Fixed compatibility issues with Sophos, GlobalProtect, InfoWatch, Forcepoint, Kaspersky, Symantec.
- Fixed an issue of WFP with wrong values in localRedirectContext and localRedirectContextSize of FWPS_CONNECT_REQUEST structure.
- The filtering of Teredo UDP IPv6 packets is disabled, and UDP filtering layer weight is changed for compatibility with Teredo.
- Fixed an issue with local addresses of UDP sockets, sending datagrams to several remote IPs.

NFSDK 1.6.2.0 (October 21, 2021)

WFP driver 1.6.2.0
- The order of filters is modified for compatibility with new versions of Bitdefender.

NFSDK 1.6.1.9 (October 10, 2021)

WFP driver 1.6.1.9
- Fixed several issues in TCP contexts handling code.
- The order of filters is modified for compatibility with Kaspersky on SSL layer.

NFSDK 1.6.1.7 (September 16, 2021)

WFP driver 1.6.1.7
- Several bugfixes.
- The patch of NETIO is disabled for compatibility.

NFSDK 1.6.1.6 (August 8, 2021)

WFP driver 1.6.1.6
- Fixed leaks of callout contexts in netio.sys after TCP redirection.
- Several fixes in TCP context handling code.

Gateway nfsrvapi 1.0.1.4
- TCP offloading is disabled in system registry during driver registration to avoid compatibility issues. Windows reboot is required to apply the changes.

NFSDK 1.6.1.1 (July 9, 2021)

WFP driver 1.6.1.1
- Fixed issues with TCP contexts of IPv6 connections when there is no IPv6 connectivity.

nfapi 1.5.1.7
- nfapi completes pended TCP connect requests automatically after exceeding 20 seconds timeout.

NFSDK 1.6.0.8 (June 3, 2021)

Gateway driver 1.0.0.9
- Implemented a different method of filtering UDP datagrams using a pool of pre-allocated sockets.

Gateway nfsrvapi 1.0.1.3
- Implemented a different method of filtering UDP datagrams using a pool of pre-allocated sockets.
- Fixed bugs in UDP filtering code.

NFSDK 1.6.0.7 (March 1, 2021)

WFP driver 1.6.0.7
- The same 32 and 64 bit driver binaries built using MSVC and WDK 8/10 can be used on Windows 7/8/10 and their server versions.
- The driver is compatible with Microsoft HLK/HCK tests.
- Fixed a compatibility issue with http.sys on Windows Server versions.
- Fixed a possible race condition in TCP context handling code.

TDI driver 1.5.0.0
- Security fix in handling control requests.

Gateway nfsrvapi 1.0.1.0
- UDP filtering uses a single socket port for each client port, to keep the original NAT type for devices using NAT traversal protocols.
- Added SOCKS5 proxy support for UDP.
- SOCKS5 redirection for TCP and UDP supports proxy authentication.
- Added function nf_srv_getUDPRemoteAddress, allowing to get UDP packet destination address in udpCreated event.

NFSDK 1.6.0.2 (January 10, 2021)

WFP driver 1.6.0.2
- Fixed a compatibility issue in tcpConnectRequest handler.

NFSDK 1.6.0.1 (December 29, 2020)

WFP driver 1.6.0.1
- Added NF_REDIRECT flag, allowing to redirect outgoing TCP connections inline in driver. The new fileds redirectTo and localProxyProcessId in NF_RULE_EX are added to specify the redirection address and local proxy process id.
- Added localPortRange, remotePortRange fields in NF_RULE_EX, allowing to specify port ranges.
- Fixed a possible race condition in TCP close code.
- Fixed BSOD when API functions are called during nf_init.

TDI driver 1.4.9.9
- Added localPortRange, remotePortRange fields in NF_RULE_EX, allowing to specify port ranges.

nfapi 1.5.1.5
- The correct local IP address is assigned for UDP sockets, available in udpSend/udpReceive via nf_getUDPConnInfo.

Gateway driver 1.0.0.8
- Implemented a fix for the case when UDP socket sends multiple datagrams to different host:port pairs.

NFSDK 1.5.9.7 (September 15, 2020)

WFP driver 1.5.9.7
- Fixed an issue with closing TCP connections redirected or blocked by firewall.
- Fixed a compatibility issue with old versions of WFP driver.

NFSDK 1.5.9.4 (July 15, 2020)

WFP driver 1.5.9.4
- Added a compatibility workaround for a situation when Sophos and Cisco AnyConnect are installed simultaneously.

NFSDK 1.5.9.3 (June 29, 2020)

WFP driver 1.5.9.3
- Fixed an issue in a procedure updating IP packet checksum.
- Updated a workaround for compatibility with BitDefender.

Gateway driver 1.0.0.6
- Fixed an issue in NAT for UDP sockets, communicating with several host:port pairs.
- The new flag NSF_USE_REAL_UDP_RECV_ADDRESS can be specified in NF_SRV_OPTIONS::flags to make the driver use real remote address for received UDP packets, when it differs from original destination.
- Fixed a buffering issue in TCP filtering proxy with attached event handler.

NFSDK 1.5.9.1 (April 24, 2020)

WFP driver 1.5.9.1
- Fixed a compatibility issue with Kaspersky on UDP layer.
- Win8 folder is renamed to msvc, and added a project file Win78.vcxproj allowing to build the driver for Windows 7 and Windows 8/10 in MSVC 2012-2019.

NFSDK 1.5.9.0 (March 11, 2020)

WFP driver 1.5.9.0
- Fixed an issue with blocking TCP connections on Windows 7 without updates.

NFSDK 1.5.8.9 (March 10, 2020)

WFP driver 1.5.8.9
- Outgoing TCP connections are blocked by driver rules before establishing.
- It is possible to specify in field processName of NF_RULE_EX and NF_BINDING_RULE a string representation of SID for AppContainer application instead of process name.

TDI driver 1.4.9.8
- Enabled large buffers support for better performance.

nfapi 1.5.1.1
- Large buffers support is enabled for TDI driver.
- Added the missing preprocessing of processName field in nf_setRulesEx.
- Removed /MP switch from make/msvc.mak to avoid errors.

NFSDK 1.5.8.7 (January 30, 2020)

WFP driver 1.5.8.7
- Fixed an issue with TCP contexts during establishing connections.

NFSDK 1.5.8.6 (January 16, 2020)

WFP driver 1.5.8.6
- Added a workaround to avoid leaking contexts for some IPv6 TCP connections when NF_INDICATE_CONNECT_REQUESTS is used, and for aborted IPv4/IPv6 TCP connections.

TDI driver 1.4.9.7
- Fixed a compatibility issue with some antiviruses.

nfapi 1.5.0.9
- The filtering performance is increased for high speed TCP connections.
- Removed disabling TCP/UDP offloading option.

NFSDK 1.5.8.4 (October 24, 2019)

WFP driver 1.5.8.4
- Raised a buffer limit for UDP datagrams.

TDI driver 1.4.9.6
- Added some more details to debug output of WPP build.

nfapi 1.5.0.8
- Added necessary fixes to compile the project with Unicode support option.

NFSDK 1.5.8.3 (October 2, 2019)

WFP driver 1.5.8.3
- Fixed an issue with redirecting TCP connections to a local proxy by several driver instances.
- Fixed BSOD occurred in rare cases during detaching from driver.
- NX memory pools are used on WIndows 8/10.

NFSDK 1.5.8.1 (August 28, 2019)

WFP driver 1.5.7.9
- Added a workaround for the case when TCP stack sends RST packet instead of FIN for outgoing TCP connections having no outgoing data packets. For example the issue occurred for FTP data connections.

NFSDK 1.5.8.0 (June 19, 2019)

Gateway driver 1.0.0.3
- Fixed an issue with calculating checksums in driver.
- Fixed the code for comparing IPv6 addresses.

WFP driver 1.5.7.8
- Fixed the code for comparing IPv6 addresses.
- Compatibility fixes.

TDI driver 1.4.9.5
- Fixed the code for comparing IPv6 addresses.
- Compatibility fixes.

nfapi 1.5.0.7
- Added make file make\msvc.mak for building the component using nmake.exe.
- Disabled the default 2 hours timeout for TCP connections.
- Compatibility fixes.

NFSDK 1.5.7.3 (September 22, 2018)

Gateway driver 1.0.0.1
- Added a server side driver with API for filtering and monitoring the traffic on gateways (see server folder inside NFSDK package).

WFP driver 1.5.7.2
- Fixed a compatibility issue with Avast related to filtering UDP.

TDI driver 1.4.9.3
- Added NF_RULE_EX support with process name masks.

nfapi 1.5.0.2
- Optimized the filtering on TCP send path to avoid client timeouts.
- The CPU usage reducing algorithm is modified for better filtering performance.

NFSDK 1.5.7.1 (August 1, 2018)

WFP driver 1.5.7.1
- Added support for bind redirection.
- Added NF_RULE_EX support with process name masks.
- Implemented registry settings for disabling specific callouts.
- Fixed a compatibility issue with Kaspersky related to redirecting TCP connections.
- Fixed an issue with orphan TCP contexts after detaching the filtering process.
- Fixed an issue with filtering IPSEC packets.
- Added a workaround for Cisco AnyConnect.

nfapi 1.5.0.0
- CPU usage and speed enhancement for TCP receives with WFP driver.
- Added support for bind redirection: NF_BINDING_RULE, nf_addBindingRule, nf_deleteBindingRules.
- Added NF_RULE_EX support with process name masks: NF_RULE_EX, nf_addRuleEx, nf_setRulesEx.
- Added the function nf_getDriverType.

Samples
- Fixed bugs in nfapinet.cs.
- Added BindRedirect sample demonstrating redirection of routing for TCP/UDP sockets.

NFSDK 1.5.6.3

WFP driver 1.5.6.3
- Fixed a conflict with Sophos antivirus.
- Fixed an issue with routing in UDP filtering code.
- Fixed an issue in UDP filtering code on unloading the driver.

nfapi 1.4.9.5
- Changed the driver loading order for compatibility with Symantec and 360 Total Security.
- Minor performance enhancement for synchronization objects.

NFSDK 1.5.5.8

WFP driver 1.5.5.7
- Added functions nf_getTCPStat and nf_getUDPStat allowing to get the socket statistics in tcpClosed/udpClosed events.

TDI driver 1.4.9.2
- Fixed a minor bug in function ctrl_create.

nfapi 1.4.9.3
- The loading order is changed for TDI driver on Windows Vista/2008.
- Added functions nf_getTCPStat and nf_getUDPStat allowing to get the socket statistics in tcpClosed/udpClosed events.

NFSDK 1.5.5.6

WFP driver 1.5.5.6
- Fixed a premature release of TCP contexts in connecting state on heavy load of network.
- The bytes transmitted before associating a flow context with TCP/UDP endpoint were not properly counted in statistics.
- Fixed an issue related to handling multiple TCP disconnect requests.
- Added support for access control flag seclevel in driver registry key.
- Added support for nf_setRules function.
- Fixed an issue with handling TCP contexts.
- The limit on the number of flow control contexts is raised to 1048576.
- Fixed a delay during closing TCP connections using nf_tcpClose.

TDI driver 1.4.9.1
- Fixed a race condition on premature closing TCP connections.
- Added support for access control flag seclevel in driver registry key.
- Added support for nf_setRules function.
- Changed the optimization flags in build files to avoid antivirus false positives.

nfapi 1.4.9.1
- Fixed a race condition for closed TCP contexts, occured on receiving events after NF_TCP_CLOSE.
- The loading order is changed for TDI driver on Windows 7 and lower to avoid conflicts with antiviruses.
- _SECURE_SCL flag is commented out in stdafx.h
- Added a workaround for an issue with CreateServiceA on Windows 10 RS3.
- Added support for nf_setRules function.
- The bufferred on user mode UDP packets were indicated after calling nf_udpDisableFiltering.

samples
- Added samples SocksProxyServer and SocksRedirector.
- C# projects nfapinet and pfapinet are removed. The API files are moved to include folder, and included to projects by link.

NFSDK 1.5.4.3

WFP driver 1.5.4.3
- NX flag for memory pools is disabled by default to avoid BSOD in some cases.

NFSDK 1.5.4.1

WFP driver 1.5.4.1
- Fixed compatibility issues with Kaspersky, NOD32, Avast, F-Secure.
- Fixed parsing IP headers for outbound path.
- Implemented support of flow control contexts for limiting and counting the traffic.
- Modified TCP buffer limits for better performance.
- Added a workaround for WFP issue blocking injecting TCP packets to the callouts before they classify first packets.
- Implemented support for faster aborting TCP connections using nf_tcpClose.
- Fixed a filter for UDP IPv6 flow establishing layer.

nfapi 1.4.8.7
- Increased the buffer limits for better performance.
- nf_tcpClose aborts TCP connections faster using additional call to WFP driver.
- Added flow control contexts support routines for limiting and counting traffic.

Samples
- Added TrafficShaperWFP samples demonstrating limiting and counting traffic using flow control contexts with WFP driver.

NFSDK 1.5.2.8

WFP driver 1.5.2.8
- Fixed a security violation of verifier in getProcessName.
- Fixed warnings C4127, C4100, C4189 in 32-bit debug build.
- Added calculation of IP, TCP, UDP checksums on IP filtering path to avoid issues with some network adapters.
- Added a modification to avoid delays on closing TCP connections, in code for handling inbound disconnects after receiving a FIN packet with data.

TDI driver 1.4.8.6
- Fixed a security violation of verifier in getProcessName.

nfapi 1.4.8.6
- Modified the required access rights for service handles.

NFSDK 1.5.2.5

WFP driver 1.5.2.4
- The order of filters modified for compatibility with Kaspersky local redirections of own TCP connections.
- Removed compatibility workarounds for Kaspersky and NOD32.

nfapi 1.4.8.5
- Fixed a leak of TCP contexts of incorrectly redirected connections.

NFSDK 1.5.2.1

WFP driver 1.5.2.1
- The filtering for loopback IPv6 TCP connections works only when [::1] address is specified in rules explicitly.
- Added a workaround for the case when UDP socket closes immediately after sending a datagram.

TDI driver 1.4.8.5
- The driver disables filtering for TCP connections to ports 445, 135, 137, 139, but blocking rules are able to block them.
- The filtering for loopback IPv6 TCP connections works only when [::1] address is specified in rules explicitly.
- Added a workaround for the case when UDP socket closes immediately after sending a datagram.

nfapi 1.4.8.4
- Added a registry value for preference loopback IPv4 instead of IPv6.

NFSDK 1.5.1.8

WFP driver 1.5.1.9
- Added minor changes to avoid antivirus false positives.

NFSDK 1.5.1.7

WFP driver 1.5.1.8
- Added IP filtering layers and support for new rule filtering flags NF_FILTER_AS_IP_PACKETS and NF_READONLY.
- DPC routines are replaced with a kernel thread.
- TCP connections were not blocked immediately after assigning NF_BLOCK in tcpConnectRequest API event.

nfapi 1.4.8.3
- Added functions for filtering IP traffic.
- Performance optimization.

Samples
- HTTP filtering samples block QUIC and SPDY protocols.
- Fixed an issue in TcpRedirector sample with WFP driver. TCP WFP layer doesn't allow injecting outgoing packets until the socket owner process sends a first packet via connection. It is necessary to take this into account in case if a filter needs to send something before other packets.
- Added PassThroughIP sample demonstrating IP filtering.

NFSDK 1.5.1.4

WFP driver 1.5.1.0
- Fixed memory leaks after unloading the driver.
- Added a workaround for compatibility with Sophos antivirus.
- Applied block-reinject method for all packets at TCP layers.
- Disabled the filtering for local IPv6 connections.
- Added a workaround for situations when inbound TCP disconnects are not passed to down level filters.

TDI driver 1.4.8.2
- The driver didn't block TCP sends when a connection is disconnected.
- Fixed BSOD on indicating TCP receives when several TDI level filters are installed in system.
- Disabled the filtering for local IPv6 connections.

NFSDK 1.5.0.8

WFP driver 1.5.0.5
- Fixed an issue with premature close of TCP connections with Windows Defender.

NFSDK 1.5.0.7

WFP driver 1.5.0.4
- The synchronization functions are changed for better performance.
- Added a workaround for compatibility with Windows Defender.
- Fixed an issue in TCP filtering code in case of assigning NF_ALLOW flag to a TCP connection in tcpConnectRequest.
- Fixed BSOD occured in UDP filtering code.
- A workaround for compatibility with NOD32 is enabled only when antivirus drivers are present in system.
- Fixed a compatibility issue with F-Secure.

nfapi 1.4.7.9
- Minor optimization for TCP receive path.
- Fixed an issue occured when nf_unRegisterDriver is called several times without reboot.

NFSDK 1.4.9.5

WFP driver 1.4.7.9
- Fixed compatibility issues with Symantec antivirus in UDP filtering code.

NFSDK 1.4.9.4

nfapi 1.4.7.3
- Fixed an issue with hanging TCP connections waiting for remote disconnect.

NFSDK 1.4.9.3

WFP driver 1.4.7.8
- Fixed a race condition on detaching from driver.

NFSDK 1.4.9.1

nfapi 1.4.7.2
- Fixed an issue occured during filtering fast connections.

NFSDK 1.4.8.9

WFP driver 1.4.7.6
- Added a fix to avoid filtering UDP traffic of the attached process.

WFP driver 1.4.7.5
- Fixed a compatibility issue with Anhlab WFP filter.
- Fixed several issues in UDP filtering code.
- Fixed a compatibility issue with Quick Heal antivirus.

TDI driver 1.4.8.0
- Fixed an issue in code for processing TCP packets.

nfapi 1.4.7.0
- Fixed filtering loops during handling incoming packets.

TDI driver 1.4.7.9
- Fixed an issue with TCP disconnects on Windows 10.

WFP driver 1.4.7.1
- Fixed a compatibility issue with Anhlab WFP filter.

TDI driver 1.4.7.8
- Fixed a reference counting error for file objects of UDP sockets.
- Fixed an issue with object reference counting in TCP filtering code.
- Fixed a deadlock in TCP filtering code.
- Fixed compatibility issues with latest versions of Avast.

WFP driver 1.4.7.0
- Fixed a BSOD, occured on attempt to send IPv4 UDP datagram via IPv6 socket.
- Added missing scope id field for IPv6 UDP remote addresses.
- Fixed an issue with filtering IPv6 UDP.

nfapi 1.4.6.9
- Added a fix for correct work of TCP reinject requests from TDI driver.

nfapi 1.4.6.8
- Added a separate thread for handling outgoing packets, for better performance with both drivers, and for better compatibility of WFP driver with other WFP filters.
- Fixed possible race condition in tcpConnectRequest and udpConnectRequest events.

WFP driver 1.4.6.8
- Fixed several minor bugs.
- Added a fix to allow sending the generated UDP responses as demonstrated in DnsRedirector.

TDI driver 1.4.7.4
- Fixed a race condition in UDP filtering code.
- Fixed a memory override bug in nf_packet_alloc.

WFP driver 1.4.6.6
- Added a workaround to avoid blocking by firewalls the redirected UDP traffic.
- Fixed a compatibility issue with VipNet Client.

TDI driver 1.4.7.1
- Fixed an issue with TCP sends.
- Fixed a reference counting error for file objects of UDP sockets.

nfapi 1.4.6.6
- nf_tcpClose didn't close connections from tcpConnected.

WFP driver 1.4.6.4
- Fixed an issue with redirecting UDP DNS traffic.

TDI driver 1.4.6.8
- The code for preventing issues with closed UDP sockets is changed to avoid hangs of Google Chrome.
- Fixed an incompatibility with F5 VPN.
- Fixed an issue occured when UDP socket closes prematurely.

nfapi 1.4.6.5
- Added function nf_getProcessNameFromKernel - analogue of nf_getProcessNameW, which doesn't require administrative privileges.
- nf_tcpDisableFiltering disables only indicating packets via events.
- nf_disableFiltering is removed.
- Fixed an issue with pending data packets.
- Fixed an issue in thread pool code.

WFP driver 1.4.6.3
- Added support for function nf_getProcessNameFromKernel.
- The order of filters is changed for compatibility of SSL filtering with latest versions of Bitdefender and Avast.

TDI driver 1.4.4.7
- Added support for function nf_getProcessNameFromKernel.

WFP driver 1.4.6.1
- Fixed a bug in TCP context handling code.

WFP driver 1.4.5.9
- Added a workaround for an issue with breaking TCP connections prematurely when a server sends RST packet immediately after FIN.
- Added a workaround for a case when TCP connections hang after disabling the filtering for them.

nfapi 1.4.5.2
- Fixed an issue with corrupted packets when WFP driver and other WFP filters are installed.

WFP driver 1.4.5.2
- Fixed a double release of TCP context in some cases.

nfapi 1.4.5.0
- Fixed a hang of TCP connection occured in some cases when the filtering is disabled.

WFP driver 1.4.4.9
- Improved the filtering performance.
- Fixed an issue with blocking fast TCP connections.

nfapi 1.4.4.9
- Added a flag NF_PEND_CONNECT_REQUEST allowing to defer the processing of tcpConnectRequest/udpConnectRequest events. The deferred requests must be resumed later using the functions nf_completeTCPConnectRequest/nf_completeUDPConnectRequest.
- Added new functions:
/**
* Set the number of worker threads and initialization flags.
* The function should be called before nf_init.
* By default nThreads = 1 and flags = 0
* @param nThreads Number of worker threads for NF_EventHandler events
* @param flags A combination of flags from NF_FLAGS
**/
NFAPI_API void NFAPI_CC
nf_setOptions(DWORD nThreads, DWORD flags);

/**
* Complete TCP connect request pended using flag NF_PEND_CONNECT_REQUEST.
**/
NFAPI_API NF_STATUS NFAPI_CC
nf_completeTCPConnectRequest(ENDPOINT_ID id, PNF_TCP_CONN_INFO pConnInfo);

/**
* Complete UDP connect request pended using flag NF_PEND_CONNECT_REQUEST.
**/
NFAPI_API NF_STATUS NFAPI_CC
nf_completeUDPConnectRequest(ENDPOINT_ID id, PNF_UDP_CONN_REQUEST pConnInfo);

/**
* Returns in pConnInfo the properties of TCP connection with specified id.
**/
NFAPI_API NF_STATUS NFAPI_CC
nf_getTCPConnInfo(ENDPOINT_ID id, PNF_TCP_CONN_INFO pConnInfo);

/**
* Returns in pConnInfo the properties of UDP socket with specified id.
**/
NFAPI_API NF_STATUS NFAPI_CC
nf_getUDPConnInfo(ENDPOINT_ID id, PNF_UDP_CONN_INFO pConnInfo);

TDI driver 1.4.4.6
- Added a new flag NF_DISABLE_REDIRECT_PROTECTION, allowing to disable blocking indicating connect requests for outgoing connections of local proxies.
- Added a function nf_tcpIsProxy to nfapi. It returns TRUE if the specified process acts as a local proxy, accepting the redirected TCP connections.
- Implemented more correct handling of cancelled IRPs.
- Fixed a bug with blocking some F5 VPN connections.
- Fixed a random BSOD in case of low memory.
- Fixed an issue in nf_init function of nfapi code.

WFP driver 1.4.4.6
- Added a new flag NF_DISABLE_REDIRECT_PROTECTION, allowing to disable blocking indicating connect requests for outgoing connections of local proxies.
- Added a function nf_tcpIsProxy to nfapi. It returns TRUE if the specified process acts as a local proxy, accepting the redirected TCP connections.
- Scope id field is specified for IPv6 addresses.
- Fixed a compatibility issue with the latest versions of NOD32.
- Fixed a random BSOD in case of low memory.
- Added an exception in driver for compatibility with Avast.
- Fixed an issue related to suspending TCP receives for compatibility with some antiviruses.

WFP driver 1.4.3.9
- Fixed an issue with filtering received broadcast UDP datagrams.
- Windows 7 and Windows 8 versions of WFP driver are now located in different folders. Windows 8 version requires the latest WDK with Windows 8 headers, and must be built using MSVC 2012/2013. The project file is driver_wfp\Win8\Win8.vcxproj.
- Fixed blocking of TCP connections redirected to local proxy in the same process with filter on Windows 8.

WFP driver 1.4.3.6
- Implemented support for nfapi functions nf_disableFiltering, nf_tcpDisableFiltering, nf_udpDisableFiltering.

WFP driver 1.4.3.5
- Fixed an incompatibility with Kaspersky 2014 on Windows 8.1.
- If remote address and port are not changed in tcpConnectRequest, the driver doesn't update the connection properties to avoid blocking local connections on Windows 8. When a connection is redirected to local address Windows 8 requires process id of local proxy.

WFP driver 1.4.3.4
- WFP driver doesn't call tcpConnectRequest for local proxy processes.

WFP driver 1.4.3.3
- To redirect TCP connections to a local proxy using WFP it is necessary to specify process id of the proxy in NF_TCP_CONN_INFO.processId field from tcpConnectRequest event. The samples TcpRedirector and TcpRedirectorCS are updated accordingly.

WFP driver 1.4.3.2
- It is possible to redirect TCP connections in tcpConnectRequest event, in the same way as with TDI driver.

WFP driver 1.4.3.1
- Fixed an incompatibility with the latest versions of Symantec Endpoint.
- Fixed an issue in nf_init function of nfapi code.

WFP driver 1.4.3.0
- Fixed an incompatibility with NOD32 and Symantec. SSL filtering must be turned off when it is enabled in NOD32. It is possible to detect NOD32 by searching for the registry key: HKLM\SYSTEM\ControlSet\services\epfwwfp

TDI driver 1.4.2.8
- Fixed an issue with filtering OOB packets.

WFP driver 1.4.2.8
- Teredo is disabled on registering or attaching to the driver. The API code updates system registry and the change is applied after reboot.

WFP driver 1.4.2.6
- Reduced memory usage on outgoing TCP data path.
- Fixed a minor issue in packet level filter.
- The weight of a packet level filter is updated to fix issues with Teredo traffic.
- Fixed an incompatibility with NOD32 on Windows 8.

WFP driver 1.4.2.2
- The weights of sublayers are updated for compatibility with Bitdefender and other antiviruses during filtering SSL.
- Fixed a memory leak in UDP filtering code.
- Added protection from unexpected TCP packets.
- Fixed an incompatibility with Avira on Windows 8.
- Fixed BSOD occured in tcpip.sys after trying to send packets via disconnected flow.
- The driver closes filtered connections more correctly when a filtering process detaches.

WFP driver 1.4.1.5
- Implemented a workaround for WFP bug disallowing filtering SSL when several drivers are used to filter TCP simultaneously.
- Fixed an infinite loop occured during filtering UDP when several drivers are used to filter TCP simultaneously.

WFP driver 1.4.1.4
- Implemented a workaround for WFP bug related to deferring inbound traffic. The filtering for NetBios connections is returned back.

build 1.4.1.2
- WFP level driver is added for using on Windows 7 and higher. It has better performance and compatibility with Windows 8.
- The driver uses shared memory for communications with user, for better performance. The new API (nfapi) doesn't work with older drivers, i.e. it is necessary to replace both API and driver, then reboot.
- Fixed an issue with filtering heavy UDP traffic.

build 1.4.1.0
- Fixed crashes on aborting TCP connections.
- Fixed an incompatibility with VIPRE antivirus.

build 1.4.0.7
- Fixed issues with filtering incoming RDP connections.
- Fixed issues with UDP sockets after close of filtering application.
- Fixed hangs in nfapi on server family operating systems.

build 1.4.0.3
- Fixed a race condition occured during closing sockets.
- Fixed incompatibility with Kaspersky during handling incoming TCP connections in driver code.
- Added API function nf_tcpSetSockOpt, allowing to turn off Nagle and set other options for active TCP sockets.
- Real local address, assigned after routing, is indicated in tcpConnected event.
- Fixed a race condition in event handlers in driver code.

build 1.3.9.8
- Fixed issues in driver registration code in nfapi.
- Optimized IO code to reduce the usage of stack in driver.
- Fixed issues in the algorithm that disables filtering for TCP and UDP sockets.
- Added new API function nf_disableFiltering(). If this function is called before nf_free(), the driver tries to detach from filtered connections and avoid breaking them after closing the filtering application. If the packets are filtered asynchronously in a separate thread, make sure that the queue is flushed before a call to nf_disableFiltering().

build 1.3.9.6
- Bugfixes in nfapi code.
- nf_getProcessName uses QueryFullProcessImageName on Vista and later versions of Windows.

build 1.3.9.5
- Fixed a race condition during indicating TCP receives to network applications.
- Optimized the performance of communications between user mode and kernel mode.

build 1.3.9.4
- Fixed a deadlock during removing DPC from queue.

build 1.3.9.2
- Fixed one more incompatibility with AVG.

build 1.3.9.1
- Driver blocks TDI_RECEIVE requests issued for aborted connections.

build 1.3.9.0
- Fixed a race condition in code that executes DPC routines.

build 1.3.8.8
- Fixed an incompatibility with AVG and possibly some other antiviruses.

build 1.3.8.7
[-] Fixes to avoid memory align issues on some x64 systems.

build 1.3.8.5
[*] Added an additional parameter to UDP events and functions.

build 1.3.8.3
[*] The driver loading order is specified explicitly in nfapi code to avoid conflicts.
[-] Fixed an incompatibility with AVG.

build 1.3.7.9
[*] The size of internal buffer for UDP IRPs is increased in driver.

 

build 1.3.7.7

[-] Fixed a race condition in UDP filtering code in driver.
[-] Fixed a problem in driver with closing some TCP connections due to automatic suspending the data flow.
[*] The usage of non-paged memory pool is optimized in driver.

build 1.3.7.4

[*] The driver supports the undocumented TDI flags TDI_SEND_AND_DISCONNECT and TDI_RECEIVE_NO_PUSH, and allows filtering server-side sockets with non-standard behavior, e.g. IIS v6.0+.
[*] Filtering the packets transmitted by NetBT (Netbios) is disabled on the driver level.
[*] Other minor fixes for better compatibility and performance.

build 1.3.3

[+] It is possible to detach from the filtered sockets using new API functions nf_tcpDisableFiltering and nf_udpDisableFiltering.
[-] Fixed an incompatibility with ZoneAlarm.
[+] Added new C++ sample - TrafficShaper.
[*] Minor bugfixes and optimization.

build 1.3.1

[-] Several fixes in driver for compatibility with Windows 7.
[*] The driver detects local proxies and avoids filtering loops by disabling indicating tcpConnectRequest events for proxy process. The protection requires reboot after installing and registering the driver.
[-] The driver ignores zero length TCP sends.
[+] Added ETW tracing to driver (use the switch C_DEFINES=-D_WPPTRACE=1 to turn it on in SOURCES).

build 1.2.5

[+] Added new event udpConnectRequest to allow redirecting UDP traffic, transmitted via connected UDP sockets. The event is called when NF_INDICATE_CONNECT_REQUESTS flag is specified in an appropriate rule. DnsRedirector sample is updated to demonstrate using the event.
[*] Added a parameter for nf_addRule function, allowing to specify where to add new rule in driver rules list.
[-] Minor bugfixes.
[*] All samples are updated according to API changes.
[+] Added a new Delphi sample NetRedirector.

build 1.2.3

[+] It is possible to redirect outgoing TCP connections and change the filtering flags for them dynamically in the new event tcpConnectRequest. The event is called before establishing a new outgoing connection, when NF_INDICATE_CONNECT_REQUESTS flag is specified in an appropriate rule.
[+] Added new C++/C# sample TcpRedirector.
[-] Several bugs are fixed in driver and nfapi.

build 1.2.1

[-] The driver didn't filter some outgoing UDP packets.
[-] UDP packets were not blocked by rules.
[*] The filtering performance and memory usage are optimized.
[-] The driver issues own TDI_SEND and TDI_SEND_DATAGRAM requests from PASSIVE IRQL to avoid compatibility problems.

build 1.1.8

[*] Filtering TCP/UDP outgoing data is optimized.
[-] The driver API client attaches/detaches from driver more correctly.
[-] Fixed a problem with handling TCP inbound packets in driver.
[-] Reduced the size of nfapi internal buffers to avoid the delays during sending large amount of TCP data.
[-] nfapi blocked the filtered UDP packets for the sockets created before API initialization.
[-] Fixed a problem with closing TCP filtered connections.
[-] Minor bugfixes and optimization.

build 1.1

[-] Fixed a problem in UDP filtering driver code to avoid memory leaks in afd.sys.
[*] The memory usage in driver is optimized.