DragonNest/Common/Utility/MemoryMap.h

82 lines
2 KiB
C
Raw Normal View History

2024-12-19 09:48:26 +08:00
/*//===============================================================
<< MEMORY MAP >>
FILE : MEMORYMAP.H, MEMORYMAP.CPP
DESC : Memory Map <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INIT BUILT DATE : 2005. 12. 11
LAST BUILT DATE : 2005. 12. 11
P.S.>
- <EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <EFBFBD>б <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD> ũ<EFBFBD> 0<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> CMemoryMap::Open <EFBFBD><EFBFBD> ::CreateFileMapping <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߻<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
Copyright<EFBFBD><EFBFBD> 2002~2009 B4nFter (b4nfter@gmail.com) and Co-Writers. All Rights Reserved.
*///===============================================================
#pragma once
///////////////////////////////////////////////////////////////////
// INCLUDE
///////////////////////////////////////////////////////////////////
#include <WINDOWS.H>
///////////////////////////////////////////////////////////////////
// DEFINE
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
// DECLARATION
///////////////////////////////////////////////////////////////////
//*---------------------------------------------------------------
// TYPE : CLASS
// NAME : CMemoryMap
//*---------------------------------------------------------------
// DESC : Memory Map <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD>
// PRGM : B4nFter
//*---------------------------------------------------------------
class CMemoryMap
{
public:
CMemoryMap();
~CMemoryMap();
BOOL Open(
LPCTSTR lpszFileName,
DWORD dwFileOffsetHigh = 0,
DWORD dwFileOffsetLow = 0,
SIZE_T dwNumberOfBytesToMap = 0,
LPCTSTR lpszMemoryMapName = NULL,
DWORD dwDesiredAccess = GENERIC_READ,
DWORD dwCreationDisposition = OPEN_EXISTING
);
VOID Close();
BOOL ChangeMapView(
DWORD dwFileOffsetHigh = 0,
DWORD dwFileOffsetLow = 0,
SIZE_T dwNumberOfBytesToMap = 0
);
BOOL Flush();
LPVOID GetBaseAddress();
UINT64 GetSize();
private:
HANDLE m_hFile;
HANDLE m_hMemoryMap;
LPVOID m_lpBaseAddr;
DWORD m_dwSizeLow;
DWORD m_dwSizeHigh;
};