BOOL KProcessPerfCacheMgr::VerifyCacheFile(HANDLE hFile) { BOOL bRes = FALSE; HANDLE hFileMap = NULL; hFileMap = ::CreateFileMapping(hFile, NULL, PAGE_READWRITE | SEC_COMMIT, 0, ::GetFileSize(hFile, NULL), NULL); if (NULL == hFileMap) { kws_log(TEXT("CreateFileMapping failed: %d"), ::GetLastError()); goto exit0; } DWORD nFileSize = ::GetFileSize(hFile, NULL); BYTE* pMapBuf = (BYTE*)::MapViewOfFile(hFileMap, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0); if (!VerifyCacheFile(pMapBuf, nFileSize)) { kws_log(TEXT("VerifyCacheFile failed")); goto exit0; } bRes = InitMapData(pMapBuf, nFileSize); exit0: if (pMapBuf) { UnmapViewOfFile(pMapBuf); pMapBuf = NULL; } if (hFileMap) { ::CloseHandle(hFileMap); hFileMap = NULL; } return bRes; }
CPlayerManager::CPlayerManager(void) : m_PlayerAllocator(10) { InitMapData(); }