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_open_existing_file(const wchar_t *path, DWORD dwDesiredAccess);
28 extern BOOL (WINAPI *func_CreateSymbolicLinkW)(const wchar_t *lpSymlinkFileName,
29 const wchar_t *lpTargetFileName,
34 extern NTSTATUS (WINAPI *func_NtOpenFile) (PHANDLE FileHandle,
35 ACCESS_MASK DesiredAccess,
36 POBJECT_ATTRIBUTES ObjectAttributes,
37 PIO_STATUS_BLOCK IoStatusBlock,
41 extern NTSTATUS (WINAPI *func_NtReadFile) (HANDLE FileHandle,
43 PIO_APC_ROUTINE ApcRoutine,
45 PIO_STATUS_BLOCK IoStatusBlock,
48 PLARGE_INTEGER ByteOffset,
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,
75 extern NTSTATUS (WINAPI *func_NtQueryVolumeInformationFile) (HANDLE FileHandle,
76 PIO_STATUS_BLOCK IoStatusBlock,
79 FS_INFORMATION_CLASS FsInformationClass);
82 extern NTSTATUS (WINAPI *func_NtSetSecurityObject)(HANDLE Handle,
83 SECURITY_INFORMATION SecurityInformation,
84 PSECURITY_DESCRIPTOR SecurityDescriptor);
86 extern NTSTATUS (WINAPI *func_NtClose) (HANDLE Handle);
88 extern DWORD (WINAPI *func_RtlNtStatusToDosError)(NTSTATUS status);
90 extern NTSTATUS (WINAPI *func_RtlCreateSystemVolumeInformationFolder)
91 (PCUNICODE_STRING VolumeRootPath);
95 windows_version_is_at_least(unsigned major, unsigned minor);
97 #define running_on_windows_xp_or_later() \
98 windows_version_is_at_least(5, 1)
100 #define running_on_windows_vista_or_later() \
101 windows_version_is_at_least(6, 0)
103 #define running_on_windows_7_or_later() \
104 windows_version_is_at_least(6, 1)
108 #endif /* _WIMLIB_WIN32_COMMON_H */