- Timestamp:
- Aug 14, 2000, 10:10:16 AM (25 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmfile.cpp
r4001 r4008 1 /* $Id: hmfile.cpp,v 1.1 7 2000-08-12 09:51:54sandervl Exp $ */1 /* $Id: hmfile.cpp,v 1.18 2000-08-14 08:10:10 sandervl Exp $ */ 2 2 3 3 /* … … 6 6 * Copyright 1999-2000 Sander van Leeuwen 7 7 * 8 * Notes: (#define SHARE_WORKAROUND)9 * - Temporary workaround for differences in share mode between10 * OS/2 & NT (for opening the same file multiple times):11 * NT: CreateFile with FILE_SHARE_READ12 * CreateFile with FILE_SHARE_READ | FILE_SHARE_WRITE13 * -> 2nd CreateFile overrides share flags of first one14 * -> CreateFile with GENERIC_WRITE is now allowed15 * OS2: DosOpen with OPEN_SHARE_DENYWRITE16 * DosOpen with OPEN_SHARE_DENYNONE17 * -> sharing violation; can't change share flags while18 * handle returned by 1st DosOpen isn't closed19 * --> 'Solution': always open files in FILE_SHARE_DENYNONE mode20 * (several installation programs depend on this behaviour)21 *22 * - Only for CreateFile; might also be necessary for OpenFile, but I haven't23 * seen any apps that require it (yet).24 8 * 25 9 * Project Odin Software License can be found in LICENSE.TXT -
trunk/src/kernel32/oslibdos.cpp
r3999 r4008 1 /* $Id: oslibdos.cpp,v 1.3 8 2000-08-12 07:32:19sandervl Exp $ */1 /* $Id: oslibdos.cpp,v 1.39 2000-08-14 08:10:16 sandervl Exp $ */ 2 2 /* 3 3 * Wrappers for OS/2 Dos* API … … 761 761 // FILE_FLAG_POSIX_SEMANTICS_W are not supported 762 762 763 if(fuShare == 0) 763 //TODO: FILE_SHARE_DELETE 764 if((fuShare & (FILE_SHARE_READ_W | FILE_SHARE_WRITE_W)) == 0 ) 764 765 openMode |= OPEN_SHARE_DENYREADWRITE; 765 766 else 766 if( fuShare== (FILE_SHARE_READ_W | FILE_SHARE_WRITE_W))767 if((fuShare & (FILE_SHARE_READ_W | FILE_SHARE_WRITE_W)) == (FILE_SHARE_READ_W | FILE_SHARE_WRITE_W)) 767 768 openMode |= OPEN_SHARE_DENYNONE; 768 769 else … … 799 800 while(retry < 2) 800 801 { 802 dprintf(("DosOpen %s openFlag=%x openMode=%x", lpszFile, openFlag, openMode)); 801 803 rc = DosOpen((PSZ)lpszFile, 802 804 &hFile,
Note:
See TracChangeset
for help on using the changeset viewer.