Поторопился закрыть свою предыдущую тему. Возникла проблема. В главном процессе создаю файл отображаемый в память:
hFile = CreateFile("page.swp", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
hMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, NULL, sizeof(CLIENT_CONTEXT), "FastJobSwap");
lpContext = (LPCLIENT_CONTEXT) MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
---
Заполняю его нужными мне данными, и далее пытаюсь открыть этот файл в дочернем процессе:
hMap = OpenFileMapping(PAGE_READWRITE, FALSE, "FastJobSwap");
lpContext = (LPCLIENT_CONTEXT) MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
---
MapViewOfFile возвращает ошибку номер 5 (отказано в доступе). Если поменять флаг FILE_MAP_ALL_ACCESS на FILE_MAP_READ, то всё работает, все данные передаются в том виде, в каком мне надо (FILE_MAP_WRITE, как и следовало ожидать тоже не работает).
Как сделать так, чтобы был доступ к отображённому файлу также и на запись, а не только на чтение?
|