Вы должны сначала позвонить CreateFile , чтобы узнать, используется ли файл.
Чтобы проверить, используется ли файл:
Если вы получили действительный дескриптор файла, то вы знаете, что у файла нет конфликтующих разрешений на совместное использование с процессом, у которого этот файл уже открыт.
Если вы укажете отсутствие общего доступа (0 для параметра dwShareMode вызова CreateFile), вы не получите дескриптор файла, если какой-либо другой процесс в данный момент использует этот файл. GetLastError в этом случае вернет: ERROR_SHARING_VIOLATION (32)
Чтобы узнать, есть ли проблемы с доступом к файлу:
Чтобы увидеть, есть ли проблема с правами доступа к этому файлу, вызов CreateFile также завершится ошибкой, но с другим GetLastError. Вы получите: ERROR_ACCESS_DENIED (5)