1 /* $Id: lfile.c 48475 2010-08-07 05:02:58Z sir_richard $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/kernel32/file/lfile.c
6 * PURPOSE: Find functions
7 * PROGRAMMER: Ariadne ( ariadne@xs4all.nl)
21 _hread(HFILE hFile
, LPVOID lpBuffer
, long lBytes
)
23 DWORD NumberOfBytesRead
;
25 if (!ReadFile(LongToHandle(hFile
),
33 return NumberOfBytesRead
;
42 _hwrite(HFILE hFile
, LPCSTR lpBuffer
, long lBytes
)
44 DWORD NumberOfBytesWritten
;
48 if (!SetEndOfFile((HANDLE
) hFile
))
54 if (!WriteFile(LongToHandle(hFile
),
57 &NumberOfBytesWritten
,
62 return NumberOfBytesWritten
;
71 _lopen(LPCSTR lpPathName
, int iReadWrite
)
73 DWORD dwAccess
, dwSharing
, dwCreation
;
75 if (iReadWrite
& OF_CREATE
)
77 dwCreation
= CREATE_ALWAYS
;
78 dwAccess
= GENERIC_READ
| GENERIC_WRITE
;
82 dwCreation
= OPEN_EXISTING
;
83 switch(iReadWrite
& 0x03)
85 case OF_READ
: dwAccess
= GENERIC_READ
; break;
86 case OF_WRITE
: dwAccess
= GENERIC_WRITE
; break;
87 case OF_READWRITE
: dwAccess
= GENERIC_READ
| GENERIC_WRITE
; break;
88 default: dwAccess
= 0; break;
92 switch(iReadWrite
& 0x70)
94 case OF_SHARE_EXCLUSIVE
: dwSharing
= 0; break;
95 case OF_SHARE_DENY_WRITE
: dwSharing
= FILE_SHARE_READ
; break;
96 case OF_SHARE_DENY_READ
: dwSharing
= FILE_SHARE_WRITE
; break;
97 case OF_SHARE_DENY_NONE
:
99 default: dwSharing
= FILE_SHARE_READ
| FILE_SHARE_WRITE
; break;
102 return (HFILE
) CreateFileA(lpPathName
,
107 FILE_ATTRIBUTE_NORMAL
,
117 _lcreat(LPCSTR lpPathName
, int iAttribute
)
121 iAttribute
&= FILE_ATTRIBUTE_READONLY
| FILE_ATTRIBUTE_HIDDEN
| FILE_ATTRIBUTE_SYSTEM
;
122 hFile
= CreateFileA(lpPathName
,
123 GENERIC_READ
| GENERIC_WRITE
,
124 (FILE_SHARE_READ
| FILE_SHARE_WRITE
),
130 return HandleToLong(hFile
);
141 return CloseHandle(LongToHandle(hFile
)) ? 0 : HFILE_ERROR
;
150 _llseek(HFILE hFile
, LONG lOffset
, int iOrigin
)
152 return SetFilePointer(LongToHandle(hFile
),