1 #ifndef _WIMLIB_WIN32_COMMON_H
2 #define _WIMLIB_WIN32_COMMON_H
9 #include "wimlib/types.h"
10 #include "wimlib/win32.h"
16 set_errno_from_GetLastError(void);
19 set_errno_from_win32_error(DWORD err);
22 set_errno_from_nt_status(NTSTATUS status);
25 win32_path_is_root_of_drive(const wchar_t *path);
28 win32_get_vol_flags(const wchar_t *path, unsigned *vol_flags_ret,
29 bool *supports_SetFileShortName_ret);
32 win32_open_existing_file(const wchar_t *path, DWORD dwDesiredAccess);
35 extern HANDLE (WINAPI *win32func_FindFirstStreamW)(LPCWSTR lpFileName,
36 STREAM_INFO_LEVELS InfoLevel,
37 LPVOID lpFindStreamData,
41 extern BOOL (WINAPI *win32func_FindNextStreamW)(HANDLE hFindStream,
42 LPVOID lpFindStreamData);
45 extern BOOL (WINAPI *win32func_CreateSymbolicLinkW)(const wchar_t *lpSymlinkFileName,
46 const wchar_t *lpTargetFileName,
51 extern NTSTATUS (WINAPI *func_NtQueryInformationFile)(HANDLE FileHandle,
52 PIO_STATUS_BLOCK IoStatusBlock,
53 PVOID FileInformation,
55 FILE_INFORMATION_CLASS FileInformationClass);
57 extern NTSTATUS (WINAPI *func_NtQuerySecurityObject)(HANDLE handle,
58 SECURITY_INFORMATION SecurityInformation,
59 PSECURITY_DESCRIPTOR SecurityDescriptor,
63 extern NTSTATUS (WINAPI *func_NtQueryDirectoryFile) (HANDLE FileHandle,
65 PIO_APC_ROUTINE ApcRoutine,
67 PIO_STATUS_BLOCK IoStatusBlock,
68 PVOID FileInformation,
70 FILE_INFORMATION_CLASS FileInformationClass,
71 BOOLEAN ReturnSingleEntry,
72 PUNICODE_STRING FileName,
76 extern NTSTATUS (WINAPI *func_NtSetSecurityObject)(HANDLE Handle,
77 SECURITY_INFORMATION SecurityInformation,
78 PSECURITY_DESCRIPTOR SecurityDescriptor);
80 extern DWORD (WINAPI *func_RtlNtStatusToDosError)(NTSTATUS status);
82 extern NTSTATUS (WINAPI *func_RtlCreateSystemVolumeInformationFolder)
83 (PCUNICODE_STRING VolumeRootPath);
87 windows_version_is_at_least(unsigned major, unsigned minor);
89 #define running_on_windows_xp_or_later() \
90 windows_version_is_at_least(5, 1)
92 #define running_on_windows_vista_or_later() \
93 windows_version_is_at_least(6, 0)
95 #define running_on_windows_7_or_later() \
96 windows_version_is_at_least(6, 1)
100 #endif /* _WIMLIB_WIN32_COMMON_H */