1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
From ff26d708c5526fcc8e67a06683fce5b905ed9e2a Mon Sep 17 00:00:00 2001
From: Andrew Eikum <aeikum@codeweavers.com>
Date: Fri, 7 Feb 2025 22:27:12 +0300
Subject: [PATCH 3/5] wineboot: On prefix upgrade, update win10 build number
Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>
---
programs/wineboot/wineboot.c | 38 ++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c
index 4f83d9eef32..d6b7d566240 100644
--- a/programs/wineboot/wineboot.c
+++ b/programs/wineboot/wineboot.c
@@ -1653,6 +1653,43 @@ static void update_user_profile(void)
LocalFree(sid);
}
+static void update_win_version(void)
+{
+ static const WCHAR win10_buildW[] = L"19043";
+ static const WCHAR win10_ntW[] = L"6.3";
+ HKEY cv_h;
+ DWORD type, sz;
+ WCHAR current_version[256];
+ if(RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows NT\\CurrentVersion",
+ 0, KEY_ALL_ACCESS, &cv_h) == ERROR_SUCCESS){
+ /* get the current windows version */
+ sz = sizeof(current_version);
+ if(RegQueryValueExW(cv_h, L"CurrentVersion", NULL, &type, (BYTE *)current_version, &sz) == ERROR_SUCCESS &&
+ type == REG_SZ){
+ if(!wcscmp(current_version, L"6.3") || !wcscmp(current_version, L"10.0")){
+ RegSetValueExW(cv_h, L"CurrentVersion", 0, REG_SZ, (const BYTE *)win10_ntW, sizeof(win10_ntW));
+ RegSetValueExW(cv_h, L"CurrentBuild", 0, REG_SZ, (const BYTE *)win10_buildW, sizeof(win10_buildW));
+ RegSetValueExW(cv_h, L"CurrentBuildNumber", 0, REG_SZ, (const BYTE *)win10_buildW, sizeof(win10_buildW));
+ }
+ }
+ RegCloseKey(cv_h);
+ }
+ if(RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion",
+ 0, KEY_ALL_ACCESS, &cv_h) == ERROR_SUCCESS){
+ /* get the current windows version */
+ sz = sizeof(current_version);
+ if(RegQueryValueExW(cv_h, L"CurrentVersion", NULL, &type, (BYTE *)current_version, &sz) == ERROR_SUCCESS &&
+ type == REG_SZ){
+ if(!wcscmp(current_version, L"6.3") || !wcscmp(current_version, L"10.0")){
+ RegSetValueExW(cv_h, L"CurrentVersion", 0, REG_SZ, (const BYTE *)win10_ntW, sizeof(win10_ntW));
+ RegSetValueExW(cv_h, L"CurrentBuild", 0, REG_SZ, (const BYTE *)win10_buildW, sizeof(win10_buildW));
+ RegSetValueExW(cv_h, L"CurrentBuildNumber", 0, REG_SZ, (const BYTE *)win10_buildW, sizeof(win10_buildW));
+ }
+ }
+ RegCloseKey(cv_h);
+ }
+}
+
/* execute rundll32 on the wine.inf file if necessary */
static void update_wineprefix( BOOL force )
{
@@ -1711,6 +1748,7 @@ static void update_wineprefix( BOOL force )
}
install_root_pnp_devices();
update_user_profile();
+ update_win_version();
TRACE( "wine: configuration in %s has been updated.\n", debugstr_w(prettyprint_configdir()) );
}
--
2.48.1
|