https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e7340a28008647b7287fe…
commit e7340a28008647b7287fe64854e270038fb9c88b
Author: Eric Kohl <eric.kohl(a)reactos.org>
AuthorDate: Wed May 30 08:18:55 2018 +0200
Commit: Eric Kohl <eric.kohl(a)reactos.org>
CommitDate: Wed May 30 08:18:55 2018 +0200
[SYSSETUP] Save the HKEY_USERS\.DEFAULT hive in the ntuser.dat file of the default
user profile
---
dll/win32/syssetup/install.c | 48 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/dll/win32/syssetup/install.c b/dll/win32/syssetup/install.c
index e5b5530c43..ad14449a56 100644
--- a/dll/win32/syssetup/install.c
+++ b/dll/win32/syssetup/install.c
@@ -1171,6 +1171,52 @@ done:
}
+static
+DWORD
+SaveDefaultUserHive(VOID)
+{
+ WCHAR szDefaultUserHive[MAX_PATH];
+ HKEY hUserKey = NULL;
+ DWORD cchSize;
+ DWORD dwError;
+
+ DPRINT("SaveDefaultUserHive()\n");
+
+ cchSize = ARRAYSIZE(szDefaultUserHive);
+ GetDefaultUserProfileDirectoryW(szDefaultUserHive, &cchSize);
+
+ wcscat(szDefaultUserHive, L"\\ntuser.dat");
+
+ dwError = RegOpenKeyExW(HKEY_USERS,
+ L".DEFAULT",
+ 0,
+ KEY_READ,
+ &hUserKey);
+ if (dwError != ERROR_SUCCESS)
+ {
+ DPRINT1("RegOpenKeyExW() failed (Error %lu)\n", dwError);
+ return dwError;
+ }
+
+ pSetupEnablePrivilege(L"SeBackupPrivilege", TRUE);
+
+ dwError = RegSaveKeyExW(hUserKey,
+ szDefaultUserHive,
+ NULL,
+ REG_STANDARD_FORMAT);
+ if (dwError != ERROR_SUCCESS)
+ {
+ DPRINT1("RegSaveKeyExW() failed (Error %lu)\n", dwError);
+ }
+
+ pSetupEnablePrivilege(L"SeBackupPrivilege", FALSE);
+
+ RegCloseKey(hUserKey);
+
+ return dwError;
+}
+
+
static
DWORD
InstallReactOS(VOID)
@@ -1233,6 +1279,8 @@ InstallReactOS(VOID)
CreateDirectory(szBuffer, NULL);
}
+ SaveDefaultUserHive();
+
hHotkeyThread = CreateThread(NULL, 0, HotkeyThread, NULL, 0, NULL);
/* Hack: Install TCP/IP protocol driver */