mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 16:03:00 +00:00
- Fix OpenFile for OF_CREATE case.
svn path=/trunk/; revision=10270
This commit is contained in:
parent
8033e5b560
commit
05f0512081
1 changed files with 34 additions and 37 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: file.c,v 1.55 2004/05/28 13:17:32 weiden Exp $
|
/* $Id: file.c,v 1.56 2004/07/24 01:27:54 navaraf Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
|
@ -82,6 +82,28 @@ OpenFile(LPCSTR lpFileName,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((uStyle & OF_CREATE) == OF_CREATE)
|
||||||
|
{
|
||||||
|
DWORD Sharing;
|
||||||
|
switch (uStyle & 0x70)
|
||||||
|
{
|
||||||
|
case OF_SHARE_EXCLUSIVE: Sharing = 0; break;
|
||||||
|
case OF_SHARE_DENY_WRITE: Sharing = FILE_SHARE_READ; break;
|
||||||
|
case OF_SHARE_DENY_READ: Sharing = FILE_SHARE_WRITE; break;
|
||||||
|
case OF_SHARE_DENY_NONE:
|
||||||
|
case OF_SHARE_COMPAT:
|
||||||
|
default:
|
||||||
|
Sharing = FILE_SHARE_READ | FILE_SHARE_WRITE;
|
||||||
|
}
|
||||||
|
return (HFILE) CreateFileA (lpFileName,
|
||||||
|
GENERIC_READ | GENERIC_WRITE,
|
||||||
|
Sharing,
|
||||||
|
NULL,
|
||||||
|
CREATE_ALWAYS,
|
||||||
|
FILE_ATTRIBUTE_NORMAL,
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
|
||||||
RtlInitAnsiString (&FileName, (LPSTR)lpFileName);
|
RtlInitAnsiString (&FileName, (LPSTR)lpFileName);
|
||||||
|
|
||||||
/* convert ansi (or oem) string to unicode */
|
/* convert ansi (or oem) string to unicode */
|
||||||
|
@ -90,8 +112,6 @@ OpenFile(LPCSTR lpFileName,
|
||||||
else
|
else
|
||||||
RtlOemStringToUnicodeString (&FileNameU, &FileName, TRUE);
|
RtlOemStringToUnicodeString (&FileNameU, &FileName, TRUE);
|
||||||
|
|
||||||
if ((uStyle & OF_CREATE) == 0)
|
|
||||||
{
|
|
||||||
Len = SearchPathW (NULL,
|
Len = SearchPathW (NULL,
|
||||||
FileNameU.Buffer,
|
FileNameU.Buffer,
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -105,7 +125,6 @@ OpenFile(LPCSTR lpFileName,
|
||||||
{
|
{
|
||||||
return (HFILE)INVALID_HANDLE_VALUE;
|
return (HFILE)INVALID_HANDLE_VALUE;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
FileName.Buffer = lpReOpenBuff->szPathName;
|
FileName.Buffer = lpReOpenBuff->szPathName;
|
||||||
FileName.Length = 0;
|
FileName.Length = 0;
|
||||||
|
@ -136,28 +155,6 @@ OpenFile(LPCSTR lpFileName,
|
||||||
return (HFILE)NULL;
|
return (HFILE)NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((uStyle & OF_CREATE) == OF_CREATE)
|
|
||||||
{
|
|
||||||
DWORD Sharing;
|
|
||||||
switch (uStyle & 0x70)
|
|
||||||
{
|
|
||||||
case OF_SHARE_EXCLUSIVE: Sharing = 0; break;
|
|
||||||
case OF_SHARE_DENY_WRITE: Sharing = FILE_SHARE_READ; break;
|
|
||||||
case OF_SHARE_DENY_READ: Sharing = FILE_SHARE_WRITE; break;
|
|
||||||
case OF_SHARE_DENY_NONE:
|
|
||||||
case OF_SHARE_COMPAT:
|
|
||||||
default:
|
|
||||||
Sharing = FILE_SHARE_READ | FILE_SHARE_WRITE;
|
|
||||||
}
|
|
||||||
return (HFILE) CreateFileA (lpFileName,
|
|
||||||
GENERIC_READ | GENERIC_WRITE,
|
|
||||||
Sharing,
|
|
||||||
NULL,
|
|
||||||
CREATE_ALWAYS,
|
|
||||||
FILE_ATTRIBUTE_NORMAL,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
|
|
||||||
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
|
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
|
||||||
ObjectAttributes.RootDirectory = NULL;
|
ObjectAttributes.RootDirectory = NULL;
|
||||||
ObjectAttributes.ObjectName = &FileNameString;
|
ObjectAttributes.ObjectName = &FileNameString;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue