Передача неверных аргументов CreateFile , как для dwDesiredAccess , так и для dwShareMode .Первый запрашивает больше прав доступа, чем необходимо.Последнее, однако, фатально, если запрашивать режим общего доступа, который конфликтует с режимом доступа (он использует символическую константу, которая не предназначена для использования здесь).
Чтобы открыть файл для чтения / записидоступ при одновременном предоставлении другим абонентам доступа к файлу с такими же правами, вместо этого используйте следующий код:
CreateFile(FileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
В записи MSDN в Создание и открытие файлов перечислены совместимые режимы доступа и общего доступа.