Здравствуйте, MuPoB, Вы писали:
MPB>FILE_SYNCHRONOUS_IO_NONALERT — этот флаг помог, спасибо!
На всяк случай уточню, OBJ_CASE_INSENSITIVE тоже надо. А то можно создать файл с POSIX семантикой имеги, где "filename" и "FILENAME" — разные файлы. Я, кстати, не проверял, что будет, емли попытаться создать такой файл на системе, их не поддерживающей.
Вообще, если совсем чтоб без глупостей, то посмотреть через procmon, что именно CreateFile делает, и сделать ровно то же самое.
Можно ли использовать хендл, который возвращает NtCreateFile в функции WriteFile?
WriteFile возвращает ERROR_INVALID_PARAMETER, если же попытаться записать через NtWriteFile — то всё ок. Как будто хендл NtCreateFile просто не может быть использован в WriteFile
NtCreateFile использую, чтобы решить проблему с ошибкой, когда существует папка с таким именем
Здравствуйте, reversecode, Вы писали:
R>при проблемах гланд, обращаются к лору а не к проктологу R>ваши потуги сломать систему намекают на создание зловреда
Где вы увидели попытку сломать систему? Если WinAPI не позволяет понять, что происходит конфликт с именем папки, то это просто оно спроектировано неудачно, и единственный способ, это использовать NativeAPI
Здравствуйте, Alexander G, Вы писали:
AG>На всяк случай уточню, OBJ_CASE_INSENSITIVE тоже надо. А то можно создать файл с POSIX семантикой имеги, где "filename" и "FILENAME" — разные файлы. Я, кстати, не проверял, что будет, емли попытаться создать такой файл на системе, их не поддерживающей.
AG>Вообще, если совсем чтоб без глупостей, то посмотреть через procmon, что именно CreateFile делает, и сделать ровно то же самое.
Да, OBJ_CASE_INSENSITIVE тоже буду использовать, спасибо) На своей винде пробовал создать без этого атрибута файлы AAA и aaa — второй файл не создался, ошибка STATUS_OBJECT_NAME_COLLISION. Но лучше чтобы всё правильно было.
Да, под отладчиком тоже надо пройтись для гарантии)