Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ULONG CreateAndOverwrite(PHANDLE FileHandle, PCWSTR FileName)
- {
- ULONG err;
- do
- {
- HANDLE hFile = CreateFile(FileName, FILE_APPEND_DATA, FILE_SHARE_VALID_FLAGS, 0,
- CREATE_ALWAYS, FILE_FLAG_BACKUP_SEMANTICS, 0);
- if (hFile != INVALID_HANDLE_VALUE)
- {
- *FileHandle = hFile;
- return NOERROR;
- }
- if ((err = GetLastError()) != ERROR_ACCESS_DENIED)
- {
- return err;
- }
- hFile = CreateFile(FileName, FILE_WRITE_ATTRIBUTES , FILE_SHARE_VALID_FLAGS, 0,
- OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_OPEN_REPARSE_POINT, 0);
- if (hFile == INVALID_HANDLE_VALUE)
- {
- return GetLastError();
- }
- static FILE_BASIC_INFO fbi = { {}, {}, {}, {}, FILE_ATTRIBUTE_NORMAL };
- err = SetFileInformationByHandle(hFile, FileBasicInfo, &fbi, sizeof(fbi)) ? NOERROR : GetLastError();
- CloseHandle(hFile);
- } while (err == NOERROR);
- return err;
- }
- HANDLE hFile;
- if (NOERROR == CreateAndOverwrite(&hFile, L"***"))
- {
- // ...
- CloseHandle(hFile);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement