Adds original error info to NotSupportedException during FileStream initialization...
authorAlfred Myers <git@alfredmyers.com>
Thu, 14 Jun 2018 15:09:20 +0000 (12:09 -0300)
committerJan Kotas <jkotas@microsoft.com>
Thu, 14 Jun 2018 15:09:20 +0000 (08:09 -0700)
Commit migrated from https://github.com/dotnet/coreclr/commit/74c5abd7409b207f95d7e726cf0b888412f25eac

src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Windows.cs

index 7ca6a8f..257e853 100644 (file)
@@ -61,7 +61,14 @@ namespace System.IO
             int fileType = Interop.Kernel32.GetFileType(_fileHandle);
             if (fileType != Interop.Kernel32.FileTypes.FILE_TYPE_DISK)
             {
+                int errorCode = fileType == Interop.Kernel32.FileTypes.FILE_TYPE_UNKNOWN ? Marshal.GetLastWin32Error() : Interop.Errors.ERROR_SUCCESS;
+
                 _fileHandle.Dispose();
+
+                if (errorCode != Interop.Errors.ERROR_SUCCESS)
+                {
+                    throw Win32Marshal.GetExceptionForWin32Error(errorCode);
+                }
                 throw new NotSupportedException(SR.NotSupported_FileStreamOnNonFiles);
             }