+/*
+ * win32_common.h - common header for Windows-specific files. This always
+ * should be included first.
+ */
+
#ifndef _WIMLIB_WIN32_COMMON_H
#define _WIMLIB_WIN32_COMMON_H
PVOID EaBuffer,
ULONG EaLength);
+#ifndef FILE_OPENED
+# define FILE_OPENED 0x00000001
+#endif
+
extern NTSTATUS (WINAPI *func_NtOpenFile) (PHANDLE FileHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes,
SECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR SecurityDescriptor);
-extern NTSTATUS (WINAPI *func_NtFsControlFile) (HANDLE FileHandle,
- HANDLE Event,
- PIO_APC_ROUTINE ApcRoutine,
- PVOID ApcContext,
- PIO_STATUS_BLOCK IoStatusBlock,
- ULONG FsControlCode,
- PVOID InputBuffer,
- ULONG InputBufferLength,
- PVOID OutputBuffer,
- ULONG OutputBufferLength);
-
extern NTSTATUS (WINAPI *func_NtClose) (HANDLE Handle);
extern DWORD (WINAPI *func_RtlNtStatusToDosError)(NTSTATUS status);
extern int
win32_get_drive_path(const wchar_t *file_path, wchar_t drive_path[7]);
+extern bool
+win32_try_to_attach_wof(const wchar_t *drive);
+
extern void
win32_warning(DWORD err, const wchar_t *format, ...) _cold_attribute;
extern void
winnt_error(NTSTATUS status, const wchar_t *format, ...) _cold_attribute;
+extern NTSTATUS
+winnt_fsctl(HANDLE h, u32 code, const void *in, u32 in_size,
+ void *out, u32 out_size_avail, u32 *actual_out_size_ret);
+
#endif /* _WIMLIB_WIN32_COMMON_H */