- Fixed definition of assert macro.

- Fixed few DPRINTs to compile.
- Handle OF_CREATE flag of OpenFile.

svn path=/trunk/; revision=9492
This commit is contained in:
Filip Navara 2004-05-25 20:04:14 +00:00
parent f11893f56e
commit 5a22e5bcf0
3 changed files with 49 additions and 24 deletions

View file

@ -1,4 +1,4 @@
/* $Id: file.c,v 1.53 2004/03/18 18:29:18 weiden Exp $
/* $Id: file.c,v 1.54 2004/05/25 20:04:13 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -89,19 +89,22 @@ OpenFile(LPCSTR lpFileName,
RtlAnsiStringToUnicodeString (&FileNameU, &FileName, TRUE);
else
RtlOemStringToUnicodeString (&FileNameU, &FileName, TRUE);
Len = SearchPathW (NULL,
FileNameU.Buffer,
NULL,
OFS_MAXPATHNAME,
PathNameW,
&FilePart);
RtlFreeUnicodeString(&FileNameU);
if (Len == 0 || Len > OFS_MAXPATHNAME)
if ((uStyle & OF_CREATE) == 0)
{
return (HFILE)INVALID_HANDLE_VALUE;
Len = SearchPathW (NULL,
FileNameU.Buffer,
NULL,
OFS_MAXPATHNAME,
PathNameW,
&FilePart);
RtlFreeUnicodeString(&FileNameU);
if (Len == 0 || Len > OFS_MAXPATHNAME)
{
return (HFILE)INVALID_HANDLE_VALUE;
}
}
FileName.Buffer = lpReOpenBuff->szPathName;
@ -124,13 +127,6 @@ OpenFile(LPCSTR lpFileName,
return (HFILE)INVALID_HANDLE_VALUE;
}
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
ObjectAttributes.RootDirectory = NULL;
ObjectAttributes.ObjectName = &FileNameString;
ObjectAttributes.Attributes = OBJ_CASE_INSENSITIVE| OBJ_INHERIT;
ObjectAttributes.SecurityDescriptor = NULL;
ObjectAttributes.SecurityQualityOfService = NULL;
// FILE_SHARE_READ
// FILE_NO_INTERMEDIATE_BUFFERING
@ -140,6 +136,35 @@ OpenFile(LPCSTR lpFileName,
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.RootDirectory = NULL;
ObjectAttributes.ObjectName = &FileNameString;
ObjectAttributes.Attributes = OBJ_CASE_INSENSITIVE| OBJ_INHERIT;
ObjectAttributes.SecurityDescriptor = NULL;
ObjectAttributes.SecurityQualityOfService = NULL;
errCode = NtOpenFile (&FileHandle,
GENERIC_READ|SYNCHRONIZE,
&ObjectAttributes,

View file

@ -16,7 +16,7 @@
#ifdef assert
#undef assert
#endif
#define assert(x) do { if(!x) RtlAssert(x, __FILE__,__LINE__, ""); } while(0);
#define assert(x) do { if(!x) RtlAssert("#x", __FILE__,__LINE__, ""); } while(0);
#endif
#define DPRINT1(args...) do { DbgPrint("(KERNEL32:%s:%d) ",__FILE__,__LINE__); DbgPrint(args); } while(0);

View file

@ -1,4 +1,4 @@
/* $Id: section.c,v 1.24 2004/02/08 10:42:15 jfilby Exp $
/* $Id: section.c,v 1.25 2004/05/25 20:04:14 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -66,7 +66,7 @@ CreateFileMappingA(HANDLE hFile,
FileStandardInformation);
if (!NT_SUCCESS(Status))
{
DPRINT("Status 0x%08x obtaining FileStandardInformation for source\n", errCode);
DPRINT("Status 0x%08x obtaining FileStandardInformation for source\n", Status);
SetLastErrorByStatus(Status);
return NULL;
}
@ -149,7 +149,7 @@ CreateFileMappingW(HANDLE hFile,
FileStandardInformation);
if (!NT_SUCCESS(Status))
{
DPRINT("Status 0x%08x obtaining FileStandardInformation for source\n", errCode);
DPRINT("Status 0x%08x obtaining FileStandardInformation for source\n", Status);
SetLastErrorByStatus(Status);
return NULL;
}