mirror of
https://github.com/reactos/reactos.git
synced 2025-04-25 16:10:29 +00:00
- Fix 2 winetests
svn path=/trunk/; revision=38191
This commit is contained in:
parent
b412cbd236
commit
6fadfd9daf
1 changed files with 52 additions and 46 deletions
|
@ -28,8 +28,8 @@ _hread(
|
|||
DWORD NumberOfBytesRead;
|
||||
|
||||
if ( !ReadFile(
|
||||
(HANDLE) hFile,
|
||||
(LPVOID) lpBuffer,
|
||||
LongToHandle(hFile),
|
||||
lpBuffer,
|
||||
(DWORD) lBytes,
|
||||
& NumberOfBytesRead,
|
||||
NULL) )
|
||||
|
@ -84,34 +84,42 @@ _lopen (
|
|||
int iReadWrite
|
||||
)
|
||||
{
|
||||
DWORD dwAccessMask = 0;
|
||||
DWORD dwShareMode = 0;
|
||||
DWORD dwAccess, dwSharing, dwCreation;
|
||||
|
||||
if ( (iReadWrite & OF_READWRITE ) == OF_READWRITE )
|
||||
dwAccessMask = GENERIC_READ | GENERIC_WRITE;
|
||||
else if ( (iReadWrite & OF_READ ) == OF_READ )
|
||||
dwAccessMask = GENERIC_READ;
|
||||
else if ( (iReadWrite & OF_WRITE ) == OF_WRITE )
|
||||
dwAccessMask = GENERIC_WRITE;
|
||||
if (iReadWrite & OF_CREATE)
|
||||
{
|
||||
dwCreation = CREATE_ALWAYS;
|
||||
dwAccess = GENERIC_READ | GENERIC_WRITE;
|
||||
}
|
||||
else
|
||||
{
|
||||
dwCreation = OPEN_EXISTING;
|
||||
switch(iReadWrite & 0x03)
|
||||
{
|
||||
case OF_READ: dwAccess = GENERIC_READ; break;
|
||||
case OF_WRITE: dwAccess = GENERIC_WRITE; break;
|
||||
case OF_READWRITE: dwAccess = GENERIC_READ | GENERIC_WRITE; break;
|
||||
default: dwAccess = 0; break;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
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;
|
||||
switch(iReadWrite & 0x70)
|
||||
{
|
||||
case OF_SHARE_EXCLUSIVE: dwSharing = 0; break;
|
||||
case OF_SHARE_DENY_WRITE: dwSharing = FILE_SHARE_READ; break;
|
||||
case OF_SHARE_DENY_READ: dwSharing = FILE_SHARE_WRITE; break;
|
||||
case OF_SHARE_DENY_NONE:
|
||||
case OF_SHARE_COMPAT:
|
||||
default: dwSharing = FILE_SHARE_READ | FILE_SHARE_WRITE; break;
|
||||
}
|
||||
|
||||
return (HFILE) CreateFileA(
|
||||
lpPathName,
|
||||
dwAccessMask,
|
||||
dwShareMode,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
FILE_ATTRIBUTE_NORMAL,
|
||||
NULL);
|
||||
return (HFILE) CreateFileA(lpPathName,
|
||||
dwAccess,
|
||||
dwSharing,
|
||||
NULL,
|
||||
dwCreation,
|
||||
FILE_ATTRIBUTE_NORMAL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -125,15 +133,18 @@ _lcreat (
|
|||
int iAttribute
|
||||
)
|
||||
{
|
||||
iAttribute &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
|
||||
return (HFILE) CreateFileA(
|
||||
lpPathName,
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
(FILE_SHARE_READ | FILE_SHARE_WRITE),
|
||||
NULL,
|
||||
CREATE_ALWAYS,
|
||||
iAttribute,
|
||||
NULL);
|
||||
HANDLE hFile;
|
||||
|
||||
iAttribute &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
|
||||
hFile = CreateFileA(lpPathName,
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
(FILE_SHARE_READ | FILE_SHARE_WRITE),
|
||||
NULL,
|
||||
CREATE_ALWAYS,
|
||||
iAttribute,
|
||||
NULL);
|
||||
|
||||
return HandleToLong(hFile);
|
||||
}
|
||||
|
||||
|
||||
|
@ -146,11 +157,7 @@ _lclose (
|
|||
HFILE hFile
|
||||
)
|
||||
{
|
||||
if (CloseHandle ((HANDLE)hFile))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return HFILE_ERROR;
|
||||
return CloseHandle(LongToHandle(hFile)) ? 0 : HFILE_ERROR;
|
||||
}
|
||||
|
||||
|
||||
|
@ -165,11 +172,10 @@ _llseek(
|
|||
int iOrigin
|
||||
)
|
||||
{
|
||||
return SetFilePointer (
|
||||
(HANDLE) hFile,
|
||||
lOffset,
|
||||
NULL,
|
||||
(DWORD) iOrigin);
|
||||
return SetFilePointer(LongToHandle(hFile),
|
||||
lOffset,
|
||||
NULL,
|
||||
(DWORD) iOrigin);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
Loading…
Reference in a new issue