#include "wimlib/types.h"
#include "wimlib/win32.h"
-#ifdef WITH_NTDLL
-# include <ntstatus.h>
-# include <winternl.h>
-#endif
+#include <ntstatus.h>
+#include <winternl.h>
extern void
set_errno_from_GetLastError(void);
extern void
set_errno_from_win32_error(DWORD err);
-#ifdef WITH_NTDLL
extern void
set_errno_from_nt_status(NTSTATUS status);
-#endif
extern bool
win32_path_is_root_of_drive(const wchar_t *path);
win32_open_existing_file(const wchar_t *path, DWORD dwDesiredAccess);
/* Vista and later */
-extern HANDLE (WINAPI *win32func_FindFirstStreamW)(LPCWSTR lpFileName,
- STREAM_INFO_LEVELS InfoLevel,
- LPVOID lpFindStreamData,
- DWORD dwFlags);
-
-/* Vista and later */
-extern BOOL (WINAPI *win32func_FindNextStreamW)(HANDLE hFindStream,
- LPVOID lpFindStreamData);
-
-/* Vista and later */
-extern BOOL (WINAPI *win32func_CreateSymbolicLinkW)(const wchar_t *lpSymlinkFileName,
- const wchar_t *lpTargetFileName,
- DWORD dwFlags);
+extern BOOL (WINAPI *func_CreateSymbolicLinkW)(const wchar_t *lpSymlinkFileName,
+ const wchar_t *lpTargetFileName,
+ DWORD dwFlags);
/* ntdll functions */
-#ifdef WITH_NTDLL
+extern NTSTATUS (WINAPI *func_NtOpenFile) (PHANDLE FileHandle,
+ ACCESS_MASK DesiredAccess,
+ POBJECT_ATTRIBUTES ObjectAttributes,
+ PIO_STATUS_BLOCK IoStatusBlock,
+ ULONG ShareAccess,
+ ULONG OpenOptions);
+
+extern NTSTATUS (WINAPI *func_NtReadFile) (HANDLE FileHandle,
+ HANDLE Event,
+ PIO_APC_ROUTINE ApcRoutine,
+ PVOID ApcContext,
+ PIO_STATUS_BLOCK IoStatusBlock,
+ PVOID Buffer,
+ ULONG Length,
+ PLARGE_INTEGER ByteOffset,
+ PULONG Key);
extern NTSTATUS (WINAPI *func_NtQueryInformationFile)(HANDLE FileHandle,
PIO_STATUS_BLOCK IoStatusBlock,
PUNICODE_STRING FileName,
BOOLEAN RestartScan);
+extern NTSTATUS (WINAPI *func_NtQueryVolumeInformationFile) (HANDLE FileHandle,
+ PIO_STATUS_BLOCK IoStatusBlock,
+ PVOID FsInformation,
+ ULONG Length,
+ FS_INFORMATION_CLASS FsInformationClass);
+
extern NTSTATUS (WINAPI *func_NtSetSecurityObject)(HANDLE Handle,
SECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR SecurityDescriptor);
+extern NTSTATUS (WINAPI *func_NtClose) (HANDLE Handle);
+
extern DWORD (WINAPI *func_RtlNtStatusToDosError)(NTSTATUS status);
-#endif
+extern NTSTATUS (WINAPI *func_RtlCreateSystemVolumeInformationFolder)
+ (PCUNICODE_STRING VolumeRootPath);
extern bool