]> wimlib.net Git - wimlib/blobdiff - src/win32_common.c
WIMBoot: Update WimOverlay.dat directly when WOF not running
[wimlib] / src / win32_common.c
index 26a4d75a93121ce03174a2a8cc314c46db5dc306..67d208d23256c5daa347dfb0cb59cf7c65890f4b 100644 (file)
@@ -502,14 +502,14 @@ win32_release_capture_and_apply_privileges(void)
 HANDLE
 win32_open_existing_file(const wchar_t *path, DWORD dwDesiredAccess)
 {
-       return CreateFileW(path,
-                          dwDesiredAccess,
-                          FILE_SHARE_READ,
-                          NULL, /* lpSecurityAttributes */
-                          OPEN_EXISTING,
-                          FILE_FLAG_BACKUP_SEMANTICS |
-                              FILE_FLAG_OPEN_REPARSE_POINT,
-                          NULL /* hTemplateFile */);
+       return CreateFile(path,
+                         dwDesiredAccess,
+                         FILE_SHARE_READ,
+                         NULL, /* lpSecurityAttributes */
+                         OPEN_EXISTING,
+                         FILE_FLAG_BACKUP_SEMANTICS |
+                               FILE_FLAG_OPEN_REPARSE_POINT,
+                         NULL /* hTemplateFile */);
 }
 
 /* Pointers to functions that are not available on all targetted versions of
@@ -563,6 +563,9 @@ NTSTATUS (WINAPI *func_NtSetSecurityObject)(HANDLE Handle,
                                            SECURITY_INFORMATION SecurityInformation,
                                            PSECURITY_DESCRIPTOR SecurityDescriptor);
 
+NTSTATUS (WINAPI *func_RtlCreateSystemVolumeInformationFolder)
+               (PCUNICODE_STRING VolumeRootPath);
+
 #endif /* WITH_NTDLL */
 
 static OSVERSIONINFO windows_version_info = {
@@ -640,6 +643,8 @@ win32_global_init(int init_flags)
 
                        func_NtSetSecurityObject    =
                                (void*)GetProcAddress(hNtdll, "NtSetSecurityObject");
+                       func_RtlCreateSystemVolumeInformationFolder =
+                               (void*)GetProcAddress(hNtdll, "RtlCreateSystemVolumeInformationFolder");
                }
        }
 
@@ -651,6 +656,8 @@ win32_global_init(int init_flags)
        DEBUG("NtQueryDirectoryFile   @ %p", func_NtQueryDirectoryFile);
        DEBUG("NtQueryInformationFile @ %p", func_NtQueryInformationFile);
        DEBUG("NtSetSecurityObject    @ %p", func_NtSetSecurityObject);
+       DEBUG("RtlCreateSystemVolumeInformationFolder    @ %p",
+             func_RtlCreateSystemVolumeInformationFolder);
 #endif
 
        return 0;