From 60d0fe307cde2d8ff21e307d63ddefb657231555 Mon Sep 17 00:00:00 2001 From: Krzysztof Wicher Date: Wed, 3 Jan 2018 12:20:40 -0800 Subject: [PATCH] Update DeflateStream compatibility doc (#591) * Update DeflateStream compatibility doc * fix typo * Apply feedback --- .../deflatestream-uses-native-apis-for-decompression.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/compatibility/deflatestream-uses-native-apis-for-decompression.md b/Documentation/compatibility/deflatestream-uses-native-apis-for-decompression.md index c6b82ee..66d69a1 100644 --- a/Documentation/compatibility/deflatestream-uses-native-apis-for-decompression.md +++ b/Documentation/compatibility/deflatestream-uses-native-apis-for-decompression.md @@ -11,13 +11,15 @@ NotPlanned ### Change Description -Starting with the .NET Framework 4.7.2, the implementation of decompression in the `T:System.IO.Compression.DeflateStream` class has changed to use native Windows APIs by default. Typically, this results in a substantial performance improvement. All .NET applications running on machines with versions of the .NET Framework starting with version 4.7.2 will now use the native implementation. +Starting with the .NET Framework 4.7.2, the implementation of decompression in the `T:System.IO.Compression.DeflateStream` class has changed to use native Windows APIs by default. Typically, this results in a substantial performance improvement. All .NET applications targeting the .NET Framework version 4.7.2 or higher use the native implementation. This change might result in some differences in behavior, which include: - Exception messages may be different. However, the type of exception thrown remains the same. - - Some special situations, such as not having enough memory to complete an operation, may be handled differently. +- There are known differences for parsing gzip header (note: only `GZipStream` set for decompression is affected): + - Exceptions when parsing invalid headers may be thrown at different times. + - The native implementation enforces that values for some reserved flags inside the gzip header (i.e. [FLG](http://www.zlib.org/rfc-gzip.html#header-trailer)) are set according to the specification, which may cause it to throw an exception where previously invalid values were ignored. - [X] Quirked - [ ] Build-time break