- Convert the user mode dwDesiredAccess flags in CreateFile to the kernel mode ones that are used by NtCreateFile.

svn path=/trunk/; revision=10200
This commit is contained in:
Filip Navara 2004-07-18 17:08:29 +00:00
parent 6a7a2b5854
commit cf649ce107

View file

@ -1,4 +1,4 @@
/* $Id: create.c,v 1.36 2004/07/01 22:36:16 gvg Exp $
/* $Id: create.c,v 1.37 2004/07/18 17:08:29 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -86,6 +86,7 @@ HANDLE STDCALL CreateFileW (LPCWSTR lpFileName,
HANDLE FileHandle;
NTSTATUS Status;
ULONG Flags = 0;
ULONG DesiredAccess = 0;
CSRSS_API_REQUEST Request;
CSRSS_API_REPLY Reply;
@ -178,11 +179,23 @@ HANDLE STDCALL CreateFileW (LPCWSTR lpFileName,
}
}
else
{
Flags |= FILE_NON_DIRECTORY_FILE;
}
if(dwDesiredAccess & GENERIC_ALL)
DesiredAccess |= FILE_READ_DATA | FILE_WRITE_DATA;
else
{
if(dwDesiredAccess & GENERIC_READ)
DesiredAccess |= FILE_READ_DATA;
if(dwDesiredAccess & GENERIC_WRITE)
DesiredAccess |= FILE_WRITE_DATA;
}
/* handle may allways be waited on and querying attributes are allways allowed */
dwDesiredAccess |= SYNCHRONIZE|FILE_READ_ATTRIBUTES;
/* handle may allways be waited on and querying attributes are allways allowed */
DesiredAccess |= SYNCHRONIZE|FILE_READ_ATTRIBUTES;
/* FILE_FLAG_POSIX_SEMANTICS is handled later */
@ -257,7 +270,7 @@ HANDLE STDCALL CreateFileW (LPCWSTR lpFileName,
/* perform the call */
Status = NtCreateFile (&FileHandle,
dwDesiredAccess,
DesiredAccess,
&ObjectAttributes,
&IoStatusBlock,
NULL,