Added VIRTUAL_MapFileW to map file to memory in one function call.

This commit is contained in:
Turchanov Sergey 1998-10-18 13:31:43 +00:00 committed by Alexandre Julliard
parent 656eb96577
commit 19aa3a793d
2 changed files with 28 additions and 0 deletions

View File

@ -33,6 +33,7 @@ extern WORD WINAPI GlobalHandleToSel( HGLOBAL16 handle );
extern BOOL32 VIRTUAL_Init( void );
extern DWORD VIRTUAL_GetPageSize(void);
extern DWORD VIRTUAL_GetGranularity(void);
extern LPVOID VIRTUAL_MapFileW( LPCWSTR name );
typedef BOOL32 (*HANDLERPROC)(LPVOID, LPVOID);
extern BOOL32 VIRTUAL_SetFaultHandler(LPVOID addr, HANDLERPROC proc, LPVOID arg);

View File

@ -1447,3 +1447,30 @@ BOOL32 WINAPI UnmapViewOfFile(
VIRTUAL_DeleteView( view );
return TRUE;
}
/***********************************************************************
* VIRTUAL_MapFileW
*
* Helper function to map a file to memory:
* name - file name
* [RETURN] ptr - pointer to mapped file
*/
LPVOID VIRTUAL_MapFileW( LPCWSTR name )
{
HANDLE32 hFile, hMapping;
LPVOID ptr = NULL;
hFile = CreateFile32W( name, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, 0);
if (hFile != INVALID_HANDLE_VALUE32)
{
hMapping = CreateFileMapping32A( hFile, NULL, PAGE_READONLY, 0, 0, NULL );
CloseHandle( hFile );
if (hMapping)
{
ptr = MapViewOfFile( hMapping, FILE_MAP_READ, 0, 0, 0 );
CloseHandle( hMapping );
}
}
return ptr;
}