diff --git a/reactos/lib/kernel32/file/lfile.c b/reactos/lib/kernel32/file/lfile.c index 3bd391bf392..2335ac6399a 100644 --- a/reactos/lib/kernel32/file/lfile.c +++ b/reactos/lib/kernel32/file/lfile.c @@ -28,15 +28,14 @@ _hread( { DWORD NumberOfBytesRead; - if (ReadFile( + if ( !ReadFile( (HANDLE) hFile, (LPVOID) lpBuffer, (DWORD) lBytes, & NumberOfBytesRead, - NULL - ) == FALSE) + NULL) ) { - return -1; + return HFILE_ERROR; } return NumberOfBytesRead; } @@ -57,21 +56,20 @@ _hwrite ( if (lBytes == 0) { - if ( SetEndOfFile((HANDLE) hFile ) == FALSE ) + if ( !SetEndOfFile((HANDLE) hFile ) ) { - return -1; + return HFILE_ERROR; } return 0; } - if ( WriteFile( + if ( !WriteFile( (HANDLE) hFile, (LPVOID) lpBuffer, (DWORD) lBytes, & NumberOfBytesWritten, - NULL - ) == FALSE ) + NULL) ) { - return -1; + return HFILE_ERROR; } return NumberOfBytesWritten; } @@ -97,16 +95,15 @@ _lopen ( else if ( (iReadWrite & OF_WRITE ) == OF_WRITE ) dwAccessMask = GENERIC_WRITE; - if ((iReadWrite & OF_SHARE_COMPAT) == OF_SHARE_COMPAT ) - dwShareMode = FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE; - else if ((iReadWrite & OF_SHARE_DENY_NONE) == OF_SHARE_DENY_NONE) - dwShareMode = FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE; - else if ((iReadWrite & OF_SHARE_DENY_READ) == OF_SHARE_DENY_READ) - dwShareMode = FILE_SHARE_WRITE | FILE_SHARE_DELETE; + if ((iReadWrite & OF_SHARE_DENY_READ) == OF_SHARE_DENY_READ) + dwShareMode = FILE_SHARE_WRITE; else if ((iReadWrite & OF_SHARE_DENY_WRITE) == OF_SHARE_DENY_WRITE ) - dwShareMode = FILE_SHARE_READ | FILE_SHARE_DELETE; + dwShareMode = FILE_SHARE_READ; else if ((iReadWrite & OF_SHARE_EXCLUSIVE) == OF_SHARE_EXCLUSIVE) dwShareMode = 0; + else + /* OF_SHARE_DENY_NONE, OF_SHARE_COMPAT and everything else */ + dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE; return (HFILE) CreateFileA( lpPathName, @@ -129,13 +126,14 @@ _lcreat ( int iAttribute ) { + iAttribute &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM; return (HFILE) CreateFileA( lpPathName, - GENERIC_ALL, + GENERIC_READ | GENERIC_WRITE, (FILE_SHARE_READ | FILE_SHARE_WRITE), NULL, CREATE_ALWAYS, - iAttribute & FILE_ATTRIBUTE_VALID_FLAGS, + iAttribute, NULL); } @@ -153,7 +151,7 @@ _lclose ( { return 0; } - return -1; + return HFILE_ERROR; }