[release/6.0-preview6] [FileStream] handle UNC and device paths #54595
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport of #54483 to release/6.0-preview6
/cc @adamsitnik
Customer Impact
FileStream
can not open files located on network shares (UNC paths starting with//
or\\
) and Windows devices (paths starting with\\.\
). This is a regression from previous release that impacted many customers (#54337, #54474, #54475) including the WinForms Team (cc @Lydia-Shi).Testing
I've verified locally that the UNC and device paths work fine now. I've also added tests to ensure that this bug is never coming back #54545.
Risk
The risk is low as we have basically switched back to higher level syscall (what we were doing for .NET 5) that does not require us to handle the DOS to NT paths mapping on our own (from
CreateFileW
toNtCreateFile
), which was the source of the problems.