13 class CLASS_DECL_ACME
file :
21 ::file::e_open & m_eopen;
28 bool safe_create_file(const ::file::path & path, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
30 void _create_file(const ::file::path & path, ::file::e_open eopen);
32 void create_file(const ::file::path & path, ::file::e_open eopen);
39 [[nodiscard ]] DWORD
defer_write(
const void * p, ::memsize s, LPOVERLAPPED lpOverlapped =
nullptr);
41 void write(
const void * p, ::memsize s, LPOVERLAPPED lpOverlapped =
nullptr);
47 [[nodiscard ]] ::memsize
read(
void * p, ::memsize s, LPOVERLAPPED lpOverlapped =
nullptr);
49 void flush_file_buffers();
51 ::i64 get_file_size()
const;
53 void ensure_file_size(::i64 iSize);
55 void set_file_size(::i64 iSize);
57 void set_file_pointer_ex(::i64 iOffset, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod);
59 void set_file_pointer(::i64 iOffset, DWORD dwMoveMethod);
61 ::i64 get_file_pointer()
const;
63 void set_end_of_file();
65 void lock_file(::i64 iOffset, ::i64 iCount);
67 void unlock_file(::i64 iOffset, ::i64 iCount);
69 void set_file_time(
const FILETIME * lpCreationTime,
const FILETIME * lpLastAccessTime,
const FILETIME * lpLastWriteTime);
71 void get_file_time(LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime);
73 void get_file_information(BY_HANDLE_FILE_INFORMATION & information)
const;
75 [[nodiscard]]
::file::path get_final_path_by_handle()
const;
77 [[ noreturn ]]
void throw_last_error_exception(const ::scoped_string & scopedstrErrorMessage =
nullptr, DWORD lasterror = 0)
const;