From 234289ffd82b2d894e222ad3bdddb7ec98a515d1 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 25 Nov 2023 13:08:00 +1100 Subject: [PATCH] Rebase against 13c43cf3d06178dc39d98981f55d27e3cbd79ad0. --- ...te-usable-device-paths-into-HKLM-SYS.patch | 29 +++++++++---------- ...t-HashLinks-field-in-LDR-module-data.patch | 28 +++++++++--------- staging/upstream-commit | 2 +- 3 files changed, 29 insertions(+), 30 deletions(-) diff --git a/patches/mountmgr-DosDevices/0001-mountmgr.sys-Write-usable-device-paths-into-HKLM-SYS.patch b/patches/mountmgr-DosDevices/0001-mountmgr.sys-Write-usable-device-paths-into-HKLM-SYS.patch index 6e91a9a1..b074c008 100644 --- a/patches/mountmgr-DosDevices/0001-mountmgr.sys-Write-usable-device-paths-into-HKLM-SYS.patch +++ b/patches/mountmgr-DosDevices/0001-mountmgr.sys-Write-usable-device-paths-into-HKLM-SYS.patch @@ -1,4 +1,4 @@ -From 281a1753e7a075b7b3bdbba2692a1da5bec081f3 Mon Sep 17 00:00:00 2001 +From b98e363f0809d5f5092854eb3ab207a908bf6bd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 30 Mar 2015 04:01:51 +0200 Subject: [PATCH] mountmgr.sys: Write usable device paths into @@ -11,14 +11,14 @@ Based on a patch by Bernhard Übelacker. --- dlls/mountmgr.sys/device.c | 4 ++-- dlls/mountmgr.sys/mountmgr.c | 11 +++++++++-- - dlls/mountmgr.sys/mountmgr.h | 3 ++- - 3 files changed, 13 insertions(+), 5 deletions(-) + dlls/mountmgr.sys/mountmgr.h | 2 +- + 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c -index 8fd9dc0757e..f40f70b06d7 100644 +index 1ee82e92c97..58db9284ff3 100644 --- a/dlls/mountmgr.sys/device.c +++ b/dlls/mountmgr.sys/device.c -@@ -1045,8 +1045,8 @@ static NTSTATUS set_volume_info( struct volume *volume, struct dos_drive *drive, +@@ -1051,8 +1051,8 @@ static NTSTATUS set_volume_info( struct volume *volume, struct dos_drive *drive, id = disk_device->unix_mount; id_len = strlen( disk_device->unix_mount ) + 1; } @@ -30,10 +30,10 @@ index 8fd9dc0757e..f40f70b06d7 100644 return STATUS_SUCCESS; } diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c -index 9f72eedb33b..19cb71b4eb6 100644 +index ad3c034fe0f..52bc6536693 100644 --- a/dlls/mountmgr.sys/mountmgr.c +++ b/dlls/mountmgr.sys/mountmgr.c -@@ -46,14 +46,21 @@ struct mount_point +@@ -44,14 +44,21 @@ struct mount_point static struct list mount_points_list = LIST_INIT(mount_points_list); static HKEY mount_key; @@ -58,18 +58,17 @@ index 9f72eedb33b..19cb71b4eb6 100644 else mount->id_len = 0; } diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h -index 143401e3b9b..bad875dd9bc 100644 +index b1de312dffb..d7b7fad5c76 100644 --- a/dlls/mountmgr.sys/mountmgr.h +++ b/dlls/mountmgr.sys/mountmgr.h -@@ -108,6 +108,7 @@ extern struct mount_point *add_dosdev_mount_point( DEVICE_OBJECT *device, UNICOD +@@ -108,6 +108,6 @@ extern struct mount_point *add_dosdev_mount_point( DEVICE_OBJECT *device, UNICOD extern struct mount_point *add_volume_mount_point( DEVICE_OBJECT *device, UNICODE_STRING *device_name, - const GUID *guid ) DECLSPEC_HIDDEN; - extern void delete_mount_point( struct mount_point *mount ) DECLSPEC_HIDDEN; --extern void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len ) DECLSPEC_HIDDEN; -+ -+extern void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len, int drive ) DECLSPEC_HIDDEN; + const GUID *guid ); + extern void delete_mount_point( struct mount_point *mount ); +-extern void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len ); ++extern void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len, int drive ); #endif /* __WINE_MOUNTMGR_H */ -- -2.38.1 +2.42.0 diff --git a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch index 7fd99f33..bf6a2e16 100644 --- a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch +++ b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch @@ -1,4 +1,4 @@ -From 5f029b7fcffc7b537a02523dc793ec2b4069390a Mon Sep 17 00:00:00 2001 +From a97f56374e65a2c1edb0d9b2bbd6ca433e598aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 3 Apr 2017 05:30:27 +0200 Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. @@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. 2 files changed, 117 insertions(+) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c -index 2c9e97d7fc7..9a538edf7ab 100644 +index ec6f2d5c6a7..654a83c92f9 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c @@ -28,6 +28,7 @@ @@ -20,7 +20,7 @@ index 2c9e97d7fc7..9a538edf7ab 100644 #include "wine/test.h" #include "delayloadhandler.h" -@@ -4205,6 +4206,79 @@ static void test_Wow64Transition(void) +@@ -4207,6 +4208,79 @@ static void test_Wow64Transition(void) debugstr_wn(name->SectionFileName.Buffer, name->SectionFileName.Length / sizeof(WCHAR))); } @@ -100,7 +100,7 @@ index 2c9e97d7fc7..9a538edf7ab 100644 START_TEST(loader) { int argc; -@@ -4286,6 +4360,7 @@ START_TEST(loader) +@@ -4288,6 +4362,7 @@ START_TEST(loader) test_InMemoryOrderModuleList(); test_LoadPackagedLibrary(); test_wow64_redirection(); @@ -109,10 +109,10 @@ index 2c9e97d7fc7..9a538edf7ab 100644 test_dll_file( "kernel32.dll" ); test_dll_file( "advapi32.dll" ); diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index d548ecea944..95ed846dc10 100644 +index f1ec6848f56..60e219e9f6b 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -132,6 +132,9 @@ struct file_id +@@ -133,6 +133,9 @@ struct file_id BYTE ObjectId[16]; }; @@ -122,7 +122,7 @@ index d548ecea944..95ed846dc10 100644 /* internal representation of loaded modules */ typedef struct _wine_modref { -@@ -501,6 +504,33 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module ) +@@ -548,6 +551,33 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module ) } } @@ -156,7 +156,7 @@ index d548ecea944..95ed846dc10 100644 /************************************************************************* * get_modref * -@@ -1475,7 +1505,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name +@@ -1522,7 +1552,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name &wm->ldr.InLoadOrderLinks); InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderLinks); @@ -169,7 +169,7 @@ index d548ecea944..95ed846dc10 100644 if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT)) { -@@ -2153,6 +2188,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name, +@@ -2214,6 +2249,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name, /* the module has only be inserted in the load & memory order lists */ RemoveEntryList(&wm->ldr.InLoadOrderLinks); RemoveEntryList(&wm->ldr.InMemoryOrderLinks); @@ -177,7 +177,7 @@ index d548ecea944..95ed846dc10 100644 /* FIXME: there are several more dangling references * left. Including dlls loaded by this dll before the -@@ -3830,6 +3866,7 @@ static void free_modref( WINE_MODREF *wm ) +@@ -3896,6 +3932,7 @@ static void free_modref( WINE_MODREF *wm ) RemoveEntryList(&wm->ldr.InLoadOrderLinks); RemoveEntryList(&wm->ldr.InMemoryOrderLinks); @@ -185,15 +185,15 @@ index d548ecea944..95ed846dc10 100644 if (wm->ldr.InInitializationOrderLinks.Flink) RemoveEntryList(&wm->ldr.InInitializationOrderLinks); -@@ -4205,6 +4242,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR - ANSI_STRING ctrl_routine = RTL_CONSTANT_STRING( "CtrlRoutine" ); +@@ -4275,6 +4312,7 @@ void loader_init( CONTEXT *context, void **entry ) + MEMORY_BASIC_INFORMATION meminfo; WINE_MODREF *kernel32; PEB *peb = NtCurrentTeb()->Peb; + unsigned int i; NtQueryVirtualMemory( GetCurrentProcess(), LdrInitializeThunk, MemoryBasicInformation, &meminfo, sizeof(meminfo), NULL ); -@@ -4223,6 +4261,10 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR +@@ -4293,6 +4331,10 @@ void loader_init( CONTEXT *context, void **entry ) RtlSetBits( peb->TlsBitmap, 0, NtCurrentTeb()->WowTebOffset ? WOW64_TLS_MAX_NUMBER : 1 ); RtlSetBits( peb->TlsBitmap, NTDLL_TLS_ERRNO, 1 ); @@ -205,5 +205,5 @@ index d548ecea944..95ed846dc10 100644 load_global_options(); version_init(); -- -2.40.1 +2.42.0 diff --git a/staging/upstream-commit b/staging/upstream-commit index 44935ea0..ae13fac1 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -e04c976fa95776300ee5b485a6b65c0071d3bb84 +13c43cf3d06178dc39d98981f55d27e3cbd79ad0