Вы не можете напрямую переопределить адрес, если он используется.
Чтобы использовать тот же адрес (mappedAddress
), вам нужно позвонить UnmapViewOfFile
перед повторным отображением.Как то так:
HANDLE targetFile = CreateFile(L"target.txt", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
HANDLE fileMap = CreateFileMapping(targetFile, 0, PAGE_READWRITE, 0, 10, L"myTestMap");
LPVOID mappedAddress = MapViewOfFileEx(fileMap, FILE_MAP_ALL_ACCESS, 0, 0, 0, 0);
BOOL result = UnmapViewOfFile(mappedAddress); // Get the address.
HANDLE targetFile2 = CreateFile(L"target2.txt", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
HANDLE fileMap2 = CreateFileMapping(targetFile2, 0, PAGE_READWRITE, 0, 10, L"myTestMap2");
LPVOID mappedAddress2 = MapViewOfFileEx(fileMap2, FILE_MAP_ALL_ACCESS, 0, 0, 0, mappedAddress); // Use the same address.