Files
basil00_WinDivert/CHANGELOG
T
basil00 bbf6a34aa6 Add Loopback and Timestamp fields to addresses.
- Loopback=1 for loopback packets, 0 otherwise.
- Timestamp is the time when packet captured.
2017-11-05 12:12:19 +08:00

103 lines
5.1 KiB
Plaintext

WinDivert 1.0.0
- First release of WinDivert 1.0
WinDivert 1.0.1
- Fixed stack overflow bug in 32bit versions of the driver.
WinDivert 1.0.2
- WinDivert now requires Administrator privileges in order to access
(as opposed to just install) the WinDivert device.
WinDivert 1.0.3
- Fix bug(s) relating to the parsing of IPv6 addresses.
- DivertOpen() now returns more meaningful error codes on failure.
- Two new helper API functions: DivertHelperParseIPvXAddress(..), X=4,6.
- Renamed DivertHelperParse(..) to DivertHelperParsePacket(..).
WinDivert 1.0.4
- Same as WinDivert 1.0.3 except:
* Released with signed drivers.
* MinGW compiled gcc-4.6
* Minor documentation changes.
WinDivert 1.0.5
- Fix the DIVERT_NETWORK_FORWARD_LAYER implementation.
- Upgrade Visual Studio support to 2012.
WinDivert 1.1.0-rc
- Re-brand "DIVERT" to "WINDIVERT" throughout the code-base.
- New flag:
* WINDIVERT_FLAG_NO_CHECKSUM: Do not guarantee that diverted packets
have a correct checksum.
- New default values and limits for various WinDivert parameters,
including WINDIVERT_PARAM_QUEUE_LEN, WINDIVERT_PARAM_QUEUE_TIME, and
the maximum filter length.
- New extended WinDivert functions that support asynchronous I/O:
* WinDivertRecvEx(..)
* WinDivertSendEx(..)
- The WinDivert driver now services reads (WinDivertRecv()) out-of-band.
- The WinDivert driver now protects packet data from modification by
other callout drivers and the user program.
- The WinDivert service is no longer created when the driver fails to
load.
WinDivert 1.1.1
- Fixed a BSOD that sometimes occurs when the driver is unloaded.
WinDivert 1.1.2-rc
- Renamed drivers to "WinDivert32.sys" and "WinDivert64.sys". Both can
exist in the same directory, and WinDivert.dll automatically loads the
correct version.
- Deprecate both the WinDivert.inf and WdfCoInstaller*.dll files.
WinDivert 1.1.3
- Fixed a bug that causes some outbound TCP packets to be lost.
WinDivert 1.1.4
- Fixed a BSOD that occurs when NULL is passed as the address parameter to
WinDivertRecv(..) or WinDivertSend(..).
WinDivert 1.1.5
- Insert WinDivert as the highest priority WFP sublayer.
WinDivert 1.1.6
- WinDivert now searches for the driver files in the application's
directory (as opposed to the current directory).
WinDivert 1.1.7
- Improved IPv6 support:
* Fixed incorrect IPV6 TCP/UDP checksum calculation in
WinDivertHelperCalcChecksums().
* WinDivert driver now calculates checksums for IPV6 packets.
* WinDivert can now handle IPV6 extension headers.
* Fixed WinDivertHelperParseIPv6Address().
WinDivert 1.1.8
- Fix ip.TOS handling bug.
- Fix IPv6 comparison bug.
WinDivert 1.2.0-rc
- The WinDivert filter language now supports C-style "(F1? F2: F3)"
expressions, where {F1,F2,F3} are themselves filter expressions.
- New WinDivert helper functions:
* WinDivertHelperCheckFilter() checks if a filter string is valid.
* WinDivertHelperEvalFilter() evaluates a filter on a packet.
- Some packets (specifically outbound or loopback packets) returned by
WinDivertRecv() or WinDivertRecvEx() are no longer required to have
correct checksums. Absent checksum fields will be set to zero. If need
be the checksums can be recovered by WinDivertHelperCalcChecksums().
- The WINDIVERT_FLAG_NO_CHECKSUM flag has been deprecated.
- The WinDivertHelperCalcChecksums() function now accepts a new
WINDIVERT_HELPER_NO_REPLACE flag, which indicates that non-zero checksum
fields should not be replaced.
- Support for the old WinDivert1.0 API has been removed.
WinDivert 1.2.1
- Identical to WinDivert 1.2.0-rc.
WinDivert 1.3.0
- Fix BSOD that sometimes occurs after abnormal user application exit.
- Fix BSOD that sometimes occurs when WinDivert is combined with other
callout drivers.
- WinDivertSend() has been optimized. However, it may not detect as
many packet injection errors as it could before.
WinDivert 1.4.0-rc
- Add a new WINDIVERT_PARAM_QUEUE_SIZE parameter that can be used to
control the maximum number of bytes used by the packet queue.
- Add a new WINDIVERT_FLAG_DEBUG flag that causes WinDivertSend() to
block until the packet exits the Windows TCP/IP stack. This is slower
but provides better error messages, so is useful for debugging.
- Internally queued packets are now reinjected on WinDivertClose().
- WinDivertRecv() will eventually fail with ERROR_HOST_UNREACHABLE
if a packet loops indefinitely between WinDivert and another driver.
- WINDIVERT_ADDRESS now includes a Timestamp field that indicates when
the packet was first captured by WinDivert. The timestamp uses the
same clock as QueryPerformanceCounter().
- WINDIVERT_ADDRESS now includes a Loopback field that indicates whether
the packet is a loopback packet or not.
- The filter language has been extended to include a loopback field that
matches loopback packets.