BOOL CreateSharedMem(int size) { // handle to file mapping hMapObject = CreateFileMapping( (HANDLE)0xFFFFFFFF, // use paging file NULL, // no security attributes PAGE_READWRITE, // read/write access 0, // size: high 32-bits size, // size: low 32-bits BBLEANSKIN_SHMEMID // name of map object ); if (hMapObject && GetLastError() != ERROR_ALREADY_EXISTS) { // Get a pointer to the file-mapped shared memory. lpvMem = (SkinStruct *)MapViewOfFile( hMapObject, // object to map view of FILE_MAP_WRITE, // read/write access 0, // high offset: map from 0, // low offset: beginning 0); // default: map entire file if (lpvMem) { ZeroMemory(lpvMem, size); return TRUE; } } DestroySharedMem(); return FALSE; }
void free_exclusion_list(void) { DestroySharedMem(); }
int DestroyServer() { int res = (DestroySystemEvents() || DestroySharedMem()); return res; }
int DestroyClient() { int res = (DestroySystemEvents() || DestroyMutexes() || DestroySharedMem()); return res; }