Skip to content

Commit d31721e

Browse files
committed
Merge bitcoin#17: Fixed file sharing errors
fecd449 Fixed file sharing error in Win32Env::GetFileSize(), Win32SequentialFile::_Init(), Win32RandomAccessFile::_Init() Fixed error checking in Win32SequentialFile::_Init() (pi) Tree-SHA512: d97ee419e6aa519260589ed5db04b013b87090daee1b14f054a2125ebd8f6bfd7fb069aeb2455a622dcfabad1a210e7c68c3ce43f000760aa1ae689b0129e599
2 parents 5b7510f + fecd449 commit d31721e

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

util/env_win.cc

+6-4
Original file line numberDiff line numberDiff line change
@@ -355,11 +355,13 @@ BOOL Win32SequentialFile::_Init()
355355
ToWidePath(_filename, path);
356356
_hFile = CreateFileW(path.c_str(),
357357
GENERIC_READ,
358-
FILE_SHARE_READ,
358+
FILE_SHARE_READ | FILE_SHARE_WRITE,
359359
NULL,
360360
OPEN_EXISTING,
361-
FILE_ATTRIBUTE_NORMAL,
361+
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,
362362
NULL);
363+
if (_hFile == INVALID_HANDLE_VALUE)
364+
_hFile = NULL;
363365
return _hFile ? TRUE : FALSE;
364366
}
365367

@@ -403,7 +405,7 @@ BOOL Win32RandomAccessFile::_Init( LPCWSTR path )
403405
{
404406
BOOL bRet = FALSE;
405407
if(!_hFile)
406-
_hFile = ::CreateFileW(path,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,
408+
_hFile = ::CreateFileW(path,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,
407409
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS,NULL);
408410
if(!_hFile || _hFile == INVALID_HANDLE_VALUE )
409411
_hFile = NULL;
@@ -669,7 +671,7 @@ Status Win32Env::GetFileSize( const std::string& fname, uint64_t* file_size )
669671
ToWidePath(ModifyPath(path), wpath);
670672

671673
HANDLE file = ::CreateFileW(wpath.c_str(),
672-
GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
674+
GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
673675
LARGE_INTEGER li;
674676
if(::GetFileSizeEx(file,&li)){
675677
*file_size = (uint64_t)li.QuadPart;

0 commit comments

Comments
 (0)