| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // Windows/FileMapping.h
- #ifndef __WINDOWS_FILEMAPPING_H
- #define __WINDOWS_FILEMAPPING_H
- #include "Windows/Handle.h"
- #include "Windows/Defs.h"
- namespace NWindows {
- // namespace NFile {
- // namespace NMapping {
- class CFileMapping: public CHandle
- {
- public:
- bool Create(HANDLE file, LPSECURITY_ATTRIBUTES attributes,
- DWORD protect, UINT64 maximumSize, LPCTSTR name)
- {
- _handle = ::CreateFileMapping(file, attributes,
- protect, DWORD(maximumSize >> 32), DWORD(maximumSize), name);
- return (_handle != NULL);
- }
- bool Open(DWORD desiredAccess, bool inheritHandle, LPCTSTR name)
- {
- _handle = ::OpenFileMapping(desiredAccess, BoolToBOOL(inheritHandle), name);
- return (_handle != NULL);
- }
- LPVOID MapViewOfFile(DWORD desiredAccess, UINT64 fileOffset,
- SIZE_T numberOfBytesToMap)
- {
- return ::MapViewOfFile(_handle, desiredAccess,
- DWORD(fileOffset >> 32), DWORD(fileOffset), numberOfBytesToMap);
- }
- LPVOID MapViewOfFileEx(DWORD desiredAccess, UINT64 fileOffset,
- SIZE_T numberOfBytesToMap, LPVOID baseAddress)
- {
- return ::MapViewOfFileEx(_handle, desiredAccess,
- DWORD(fileOffset >> 32), DWORD(fileOffset),
- numberOfBytesToMap, baseAddress);
- }
-
- };
- }
- #endif
|