]> wimlib.net Git - wimlib/blobdiff - include/wimlib/win32_common.h
win32_common: add winnt_fsctl() helper method
[wimlib] / include / wimlib / win32_common.h
index 324285138006ecb0edbe055cce89ccb65734e31f..e669d5225a836b1f406b968b4a089e011ad0bd38 100644 (file)
@@ -1,3 +1,8 @@
+/*
+ * 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
 
@@ -25,6 +30,10 @@ extern NTSTATUS (WINAPI *func_NtCreateFile)(PHANDLE FileHandle,
                                            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,
@@ -92,17 +101,6 @@ extern NTSTATUS (WINAPI *func_NtSetSecurityObject)(HANDLE Handle,
                                                   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);
@@ -150,6 +148,9 @@ win32_path_to_nt_path(const wchar_t *win32_path, UNICODE_STRING *nt_path);
 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;
 
@@ -162,4 +163,8 @@ winnt_warning(NTSTATUS status, 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 */