X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib%2Fwin32_common.h;h=019dd7df742b7d95bbb20c2794094f257c1f7050;hb=3ffb2cde078ae8f62d542ab89166e1059c13d758;hp=0d594f6a831ddf6bad4e20723579522949e77718;hpb=66abeba083ec882f4fac6a2d6a8ce3eef61be442;p=wimlib diff --git a/include/wimlib/win32_common.h b/include/wimlib/win32_common.h index 0d594f6a..019dd7df 100644 --- a/include/wimlib/win32_common.h +++ b/include/wimlib/win32_common.h @@ -9,6 +9,11 @@ #include "wimlib/types.h" #include "wimlib/win32.h" +#ifdef WITH_NTDLL +# include +# include +#endif + extern void set_errno_from_GetLastError(void); @@ -17,7 +22,7 @@ set_errno_from_win32_error(DWORD err); #ifdef WITH_NTDLL extern void -set_errno_from_nt_status(DWORD status); +set_errno_from_nt_status(NTSTATUS status); #endif extern bool @@ -30,9 +35,6 @@ win32_get_vol_flags(const wchar_t *path, unsigned *vol_flags_ret, extern HANDLE win32_open_existing_file(const wchar_t *path, DWORD dwDesiredAccess); -extern HANDLE -win32_open_file_data_only(const wchar_t *path); - /* Vista and later */ extern HANDLE (WINAPI *win32func_FindFirstStreamW)(LPCWSTR lpFileName, STREAM_INFO_LEVELS InfoLevel, @@ -48,6 +50,44 @@ extern BOOL (WINAPI *win32func_CreateSymbolicLinkW)(const wchar_t *lpSymlinkFile const wchar_t *lpTargetFileName, DWORD dwFlags); +/* ntdll functions */ + +#ifdef WITH_NTDLL + +extern NTSTATUS (WINAPI *func_NtQueryInformationFile)(HANDLE FileHandle, + PIO_STATUS_BLOCK IoStatusBlock, + PVOID FileInformation, + ULONG Length, + FILE_INFORMATION_CLASS FileInformationClass); + +extern NTSTATUS (WINAPI *func_NtQuerySecurityObject)(HANDLE handle, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR SecurityDescriptor, + ULONG Length, + PULONG LengthNeeded); + +extern NTSTATUS (WINAPI *func_NtQueryDirectoryFile) (HANDLE FileHandle, + HANDLE Event, + PIO_APC_ROUTINE ApcRoutine, + PVOID ApcContext, + PIO_STATUS_BLOCK IoStatusBlock, + PVOID FileInformation, + ULONG Length, + FILE_INFORMATION_CLASS FileInformationClass, + BOOLEAN ReturnSingleEntry, + PUNICODE_STRING FileName, + BOOLEAN RestartScan); + + +extern NTSTATUS (WINAPI *func_NtSetSecurityObject)(HANDLE Handle, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR SecurityDescriptor); + +extern DWORD (WINAPI *func_RtlNtStatusToDosError)(NTSTATUS status); +#endif + + + extern bool windows_version_is_at_least(unsigned major, unsigned minor);