55using System . IO ;
66using System . Runtime . InteropServices ;
77using Microsoft . Win32 . SafeHandles ;
8- using static PInvoke . Kernel32 ;
9- using FileShare = PInvoke . Kernel32 . FileShare ;
8+ using Microsoft . Windows . Sdk ;
109
1110namespace Nerdbank . GitVersioning . ManagedGit
1211{
@@ -24,7 +23,7 @@ internal static bool TryOpen(string path, out FileStream? stream)
2423 {
2524 if ( IsWindows )
2625 {
27- var handle = CreateFile ( path , ACCESS_MASK . GenericRight . GENERIC_READ , FileShare . FILE_SHARE_READ , ( SECURITY_ATTRIBUTES ? ) null , CreationDisposition . OPEN_EXISTING , CreateFileFlags . FILE_ATTRIBUTE_NORMAL , SafeObjectHandle . Null ) ;
26+ var handle = PInvoke . CreateFile ( path , FILE_ACCESS_FLAGS . FILE_GENERIC_READ , FILE_SHARE_FLAGS . FILE_SHARE_READ , lpSecurityAttributes : null , FILE_CREATE_FLAGS . OPEN_EXISTING , FILE_FLAGS_AND_ATTRIBUTES . FILE_ATTRIBUTE_NORMAL , null ) ;
2827
2928 if ( ! handle . IsInvalid )
3029 {
@@ -62,12 +61,15 @@ internal static unsafe bool TryOpen(ReadOnlySpan<char> path, [NotNullWhen(true)]
6261 {
6362 if ( IsWindows )
6463 {
65- var handle = CreateFile ( path , ACCESS_MASK . GenericRight . GENERIC_READ , FileShare . FILE_SHARE_READ , null , CreationDisposition . OPEN_EXISTING , CreateFileFlags . FILE_ATTRIBUTE_NORMAL , SafeObjectHandle . Null ) ;
64+ HANDLE handle ;
65+ fixed ( char * pPath = & path [ 0 ] )
66+ {
67+ handle = PInvoke . CreateFile ( pPath , FILE_ACCESS_FLAGS . FILE_GENERIC_READ , FILE_SHARE_FLAGS . FILE_SHARE_READ , null , FILE_CREATE_FLAGS . OPEN_EXISTING , FILE_FLAGS_AND_ATTRIBUTES . FILE_ATTRIBUTE_NORMAL , default ) ;
68+ }
6669
67- if ( ! handle . IsInvalid )
70+ if ( ! handle . Equals ( Constants . INVALID_HANDLE_VALUE ) )
6871 {
69- var fileHandle = new SafeFileHandle ( handle . DangerousGetHandle ( ) , ownsHandle : true ) ;
70- handle . SetHandleAsInvalid ( ) ;
72+ var fileHandle = new SafeFileHandle ( handle , ownsHandle : true ) ;
7173 stream = new FileStream ( fileHandle , System . IO . FileAccess . Read ) ;
7274 return true ;
7375 }
0 commit comments