Я хочу иметь возможность заблокировать файл в Win32, чтобы он мог использоваться только моим текущим процессом.Наиболее очевидный способ сделать это, по-видимому, через CreateFile
:
HANDLE file = ::CreateFile("c:\\foo.txt",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
Однако, как только этот вызов завершился успешно, файл также, очевидно, заблокирован моим собственным процессом, т.е.Я получаю «нарушение совместного доступа», как только MFC Framework пытается открыть его.
Есть ли удобный способ предотвратить доступ к файлу другими процессами, но все же разрешить его моему?Я бы предпочел не заменять весь код инфраструктуры загрузки / сохранения ... Что-то не так с параметрами, которые я передаю в CreateFile?