From 3ee8f1c014081559e4f20ab368c07566c40ecc4f Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 20 Feb 2018 08:24:24 +1100 Subject: [PATCH] Rebase against 538263d0efe725124df88ce1cce124bc3ad7e2af --- ...ediag-message-to-show-warning-that-t.patch | 10 +- ...-and-format-conversions-in-IDirect3D.patch | 21 +- ...dering-targets-in-video-memory-if-po.patch | 16 +- .../0005-include-Add-dxva.h-header-file.patch | 24 +- ...e-Add-semi-stub-for-PathCchCombineEx.patch | 22 +- ...ort-for-PARENTSPEC-Makefile-variable.patch | 38 +-- .../0001-ntdll-Add-dummy-apiset-to-PEB.patch | 30 +- ...t-for-hiding-wine-version-informatio.patch | 18 +- ...ution-level-information-in-manifest-.patch | 192 ----------- ...RunlevelInformationInActivationConte.patch | 299 ------------------ .../definition | 2 - ...to-update-user-shared-data-into-a-se.patch | 22 +- ...ead-to-update-user_shared_data-time-.patch | 41 +-- patches/patchinstall.sh | 26 +- ...16-Don-t-open-code-CONTAINING_RECORD.patch | 28 -- 15 files changed, 125 insertions(+), 664 deletions(-) delete mode 100644 patches/ntdll-RunlevelInformationInActivationContext/0002-ntdll-Parse-execution-level-information-in-manifest-.patch delete mode 100644 patches/ntdll-RunlevelInformationInActivationContext/0003-ntdll-Implement-RunlevelInformationInActivationConte.patch delete mode 100644 patches/ntdll-RunlevelInformationInActivationContext/definition delete mode 100644 patches/user.exe16-CONTAINING_RECORD/0001-user.exe16-Don-t-open-code-CONTAINING_RECORD.patch diff --git a/patches/Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch b/patches/Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch index 99cacced..610748fe 100644 --- a/patches/Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch +++ b/patches/Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch @@ -1,4 +1,4 @@ -From d0a3d0318debc21cb9bb3962d263f92938042122 Mon Sep 17 00:00:00 2001 +From ee1533db82fa2a955765b6a00f5300900350d2fe Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 2 Oct 2014 19:44:31 +0200 Subject: [PATCH] kernel32: Add winediag message to show warning, that this @@ -9,18 +9,18 @@ Subject: [PATCH] kernel32: Add winediag message to show warning, that this 1 file changed, 10 insertions(+) diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c -index 62dc815..31ed9b3bcf 100644 +index 0a3fd70..206224f 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c -@@ -66,6 +66,7 @@ +@@ -65,6 +65,7 @@ + WINE_DEFAULT_DEBUG_CHANNEL(process); - WINE_DECLARE_DEBUG_CHANNEL(file); WINE_DECLARE_DEBUG_CHANNEL(relay); +WINE_DECLARE_DEBUG_CHANNEL(winediag); #ifdef __APPLE__ extern char **__wine_get_main_environment(void); -@@ -1131,6 +1132,15 @@ void WINAPI start_process( LPTHREAD_START_ROUTINE entry, PEB *peb ) +@@ -1090,6 +1091,15 @@ void WINAPI start_process( LPTHREAD_START_ROUTINE entry, PEB *peb ) __TRY { diff --git a/patches/ddraw-IDirect3DTexture2_Load/0001-ddraw-Allow-size-and-format-conversions-in-IDirect3D.patch b/patches/ddraw-IDirect3DTexture2_Load/0001-ddraw-Allow-size-and-format-conversions-in-IDirect3D.patch index e809c71d..e6f3e6cd 100644 --- a/patches/ddraw-IDirect3DTexture2_Load/0001-ddraw-Allow-size-and-format-conversions-in-IDirect3D.patch +++ b/patches/ddraw-IDirect3DTexture2_Load/0001-ddraw-Allow-size-and-format-conversions-in-IDirect3D.patch @@ -1,17 +1,18 @@ -From aee6d79ac93aecb6eb7927e42736609d0d473c31 Mon Sep 17 00:00:00 2001 +From 87c1fab3efb367d863fcfb4870a4a1b1485f65f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 30 May 2015 02:55:03 +0200 -Subject: ddraw: Allow size and format conversions in IDirect3DTexture2::Load. +Subject: [PATCH] ddraw: Allow size and format conversions in + IDirect3DTexture2::Load. --- dlls/ddraw/surface.c | 151 +++++++++++++++++++++++++++------------------------ 1 file changed, 80 insertions(+), 71 deletions(-) diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c -index 6a07cd7..cacf14c 100644 +index 47a143a..a30b44f 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c -@@ -5041,6 +5041,46 @@ static struct ddraw_surface *get_sub_mimaplevel(struct ddraw_surface *surface) +@@ -5187,6 +5187,46 @@ static struct ddraw_surface *get_sub_mimaplevel(struct ddraw_surface *surface) return impl_from_IDirectDrawSurface7(next_level); } @@ -58,7 +59,7 @@ index 6a07cd7..cacf14c 100644 /***************************************************************************** * IDirect3DTexture2::Load * -@@ -5062,7 +5102,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu +@@ -5208,7 +5248,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu { struct ddraw_surface *dst_surface = impl_from_IDirect3DTexture2(iface); struct ddraw_surface *src_surface = unsafe_impl_from_IDirect3DTexture2(src_texture); @@ -67,7 +68,7 @@ index 6a07cd7..cacf14c 100644 HRESULT hr; TRACE("iface %p, src_texture %p.\n", iface, src_texture); -@@ -5075,90 +5115,60 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu +@@ -5221,90 +5261,60 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu wined3d_mutex_lock(); @@ -156,7 +157,7 @@ index 6a07cd7..cacf14c 100644 + } - if (FAILED(hr = wined3d_resource_map(src_resource, -- src_surface->sub_resource_idx, &src_map_desc, NULL, 0))) +- src_surface->sub_resource_idx, &src_map_desc, NULL, WINED3D_MAP_READ))) - { - ERR("Failed to lock source surface, hr %#x.\n", hr); - wined3d_mutex_unlock(); @@ -164,7 +165,7 @@ index 6a07cd7..cacf14c 100644 - } - - if (FAILED(hr = wined3d_resource_map(dst_resource, -- dst_surface->sub_resource_idx, &dst_map_desc, NULL, 0))) +- dst_surface->sub_resource_idx, &dst_map_desc, NULL, WINED3D_MAP_WRITE))) - { - ERR("Failed to lock destination surface, hr %#x.\n", hr); - wined3d_resource_unmap(src_resource, src_surface->sub_resource_idx); @@ -194,7 +195,7 @@ index 6a07cd7..cacf14c 100644 } if (src_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP) -@@ -5171,12 +5181,11 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu +@@ -5317,12 +5327,11 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu else dst_surface = NULL; @@ -211,5 +212,5 @@ index 6a07cd7..cacf14c 100644 wined3d_mutex_unlock(); -- -2.7.0 +1.9.1 diff --git a/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch b/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch index df5c4438..441148ba 100644 --- a/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch +++ b/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch @@ -1,4 +1,4 @@ -From 82f1e6c7a13b14da012e8a8bd64847f05ac32dc1 Mon Sep 17 00:00:00 2001 +From 46f234ba973f5c9c60cd1d39f2c61202f92458b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Wed, 29 Jul 2015 17:09:50 +0200 Subject: [PATCH] ddraw: Create rendering targets in video memory if possible. @@ -43,7 +43,7 @@ index 9115a59..3f14a9a 100644 *device = &device_impl->IDirect3DDevice2_iface; } diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h -index d9559ce..c38c4af 100644 +index 61f5347..baeb9db 100644 --- a/dlls/ddraw/ddraw_private.h +++ b/dlls/ddraw/ddraw_private.h @@ -305,6 +305,7 @@ struct d3d_device @@ -64,7 +64,7 @@ index d9559ce..c38c4af 100644 enum wined3d_depth_buffer_type d3d_device_update_depth_stencil(struct d3d_device *device) DECLSPEC_HIDDEN; diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c -index 0254364..de68965 100644 +index c2d87dd..43f7402 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -1854,7 +1854,7 @@ static HRESULT d3d_device7_SetRenderTarget(IDirect3DDevice7 *iface, @@ -152,7 +152,7 @@ index 0254364..de68965 100644 WARN("Failed to initialize device, hr %#x.\n", hr); heap_free(object); diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c -index b8b6860..74fdb95 100644 +index a30b44f..9d4e83c 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -209,7 +209,7 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface, @@ -164,11 +164,11 @@ index b8b6860..74fdb95 100644 1, &This->device1, (IUnknown *)&This->IDirectDrawSurface_iface))) { This->device1 = NULL; -@@ -6110,7 +6110,24 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ +@@ -6111,7 +6111,24 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ if (desc->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) { -- wined3d_desc.access = WINED3D_RESOURCE_ACCESS_CPU | WINED3D_RESOURCE_ACCESS_MAP; +- wined3d_desc.access = WINED3D_RESOURCE_ACCESS_CPU + /* + * The ddraw RGB device allows to use system memory surfaces as rendering target. + * This does not cause problems because the RGB device does software rasterization @@ -186,10 +186,10 @@ index b8b6860..74fdb95 100644 + wined3d_desc.usage |= WINED3DUSAGE_RENDERTARGET; + } + else -+ wined3d_desc.access = WINED3D_RESOURCE_ACCESS_CPU | WINED3D_RESOURCE_ACCESS_MAP; ++ wined3d_desc.access = WINED3D_RESOURCE_ACCESS_CPU + | WINED3D_RESOURCE_ACCESS_MAP_R | WINED3D_RESOURCE_ACCESS_MAP_W; } else - { -- 1.9.1 diff --git a/patches/dxva2-Video_Decoder/0005-include-Add-dxva.h-header-file.patch b/patches/dxva2-Video_Decoder/0005-include-Add-dxva.h-header-file.patch index 2130e33a..168a85e9 100644 --- a/patches/dxva2-Video_Decoder/0005-include-Add-dxva.h-header-file.patch +++ b/patches/dxva2-Video_Decoder/0005-include-Add-dxva.h-header-file.patch @@ -1,7 +1,7 @@ -From b705357e89463258880e8f7605a33285d5eb0530 Mon Sep 17 00:00:00 2001 +From 43b9548b90ae22fd1b3247e5bca51795e33c9970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 22 Feb 2015 01:10:21 +0100 -Subject: include: Add dxva.h header file. +Subject: [PATCH] include: Add dxva.h header file. --- include/Makefile.in | 1 + @@ -10,20 +10,20 @@ Subject: include: Add dxva.h header file. create mode 100644 include/dxva.h diff --git a/include/Makefile.in b/include/Makefile.in -index fd52a5f65a0..31d7fff6c2f 100644 +index f1bcba3..563d10c 100644 --- a/include/Makefile.in +++ b/include/Makefile.in -@@ -374,6 +374,7 @@ HEADER_SRCS = \ - dxerr8.h \ - dxerr9.h \ - dxfile.h \ +@@ -245,6 +245,7 @@ SOURCES = \ + dxgicommon.idl \ + dxgiformat.idl \ + dxgitype.idl \ + dxva.h \ - errorrep.h \ - errors.h \ - evcode.h \ + dxva2api.idl \ + dyngraph.idl \ + endpointvolume.idl \ diff --git a/include/dxva.h b/include/dxva.h new file mode 100644 -index 00000000000..e311488775a +index 0000000..e311488 --- /dev/null +++ b/include/dxva.h @@ -0,0 +1,215 @@ @@ -243,5 +243,5 @@ index 00000000000..e311488775a + +#endif /* __WINE_DXVA_H */ -- -2.14.1 +1.9.1 diff --git a/patches/kernelbase-PathCchCombineEx/0001-kernelbase-Add-semi-stub-for-PathCchCombineEx.patch b/patches/kernelbase-PathCchCombineEx/0001-kernelbase-Add-semi-stub-for-PathCchCombineEx.patch index c8b7fe90..ff2d0370 100644 --- a/patches/kernelbase-PathCchCombineEx/0001-kernelbase-Add-semi-stub-for-PathCchCombineEx.patch +++ b/patches/kernelbase-PathCchCombineEx/0001-kernelbase-Add-semi-stub-for-PathCchCombineEx.patch @@ -1,4 +1,4 @@ -From 54abbae392fbf72e9abc241d7c1a36df27e0c9a0 Mon Sep 17 00:00:00 2001 +From b8ccfc99a86a2431888e02019fbc42ebaa2f65c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Wed, 16 Aug 2017 02:45:23 +0200 Subject: [PATCH] kernelbase: Add semi-stub for PathCchCombineEx. @@ -19,10 +19,10 @@ Subject: [PATCH] kernelbase: Add semi-stub for PathCchCombineEx. create mode 100644 include/pathcch.h diff --git a/configure.ac b/configure.ac -index 7bb9c49..fc79b7a 100644 +index d06476e..a12e04d 100644 --- a/configure.ac +++ b/configure.ac -@@ -3329,7 +3329,8 @@ WINE_CONFIG_TEST(dlls/jsproxy/tests) +@@ -3297,7 +3297,8 @@ WINE_CONFIG_TEST(dlls/jsproxy/tests) WINE_CONFIG_DLL(kerberos) WINE_CONFIG_DLL(kernel32,,[clean,implib]) WINE_CONFIG_TEST(dlls/kernel32/tests) @@ -58,7 +58,7 @@ index 74df98c..247c6bf 100644 C_SRCS = \ main.c diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec -index 6c61c51..55737f9 100644 +index eb6edbe..065af41 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -1037,7 +1037,7 @@ @@ -71,10 +71,10 @@ index 6c61c51..55737f9 100644 # @ stub PathCchIsRoot # @ stub PathCchRemoveBackslash diff --git a/dlls/kernelbase/main.c b/dlls/kernelbase/main.c -index 920fd12..eadb130 100644 +index 9c89ff4..7e5ffde 100644 --- a/dlls/kernelbase/main.c +++ b/dlls/kernelbase/main.c -@@ -20,7 +20,11 @@ +@@ -19,7 +19,11 @@ #include "windows.h" #include "appmodel.h" @@ -86,7 +86,7 @@ index 920fd12..eadb130 100644 WINE_DEFAULT_DEBUG_CHANNEL(kernelbase); -@@ -97,3 +101,28 @@ BOOL WINAPI QuirkIsEnabled3(void *unk1, void *unk2) +@@ -87,3 +91,28 @@ BOOL WINAPI QuirkIsEnabled3(void *unk1, void *unk2) return FALSE; } @@ -246,12 +246,12 @@ index 0000000..c848640 + test_PathCchCombineEx(); +} diff --git a/include/Makefile.in b/include/Makefile.in -index f064e96..6e7ffc1 100644 +index f1bcba3..72304d6 100644 --- a/include/Makefile.in +++ b/include/Makefile.in -@@ -572,6 +572,7 @@ HEADER_SRCS = \ - oledberr.h \ - oledlg.h \ +@@ -494,6 +494,7 @@ SOURCES = \ + opnrst.idl \ + optary.idl \ patchapi.h \ + pathcch.h \ pdh.h \ diff --git a/patches/makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch b/patches/makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch index 61e758e9..22bcb34f 100644 --- a/patches/makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch +++ b/patches/makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch @@ -1,17 +1,17 @@ -From 8d7b3fda16e6f652e079433ef7653537cdcbe6d1 Mon Sep 17 00:00:00 2001 +From 9f17847454bf81d335a318bb38464be636c5d8f1 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 17 Dec 2014 04:11:58 +0100 -Subject: makedep: Add support for PARENTSPEC Makefile variable. +Subject: [PATCH] makedep: Add support for PARENTSPEC Makefile variable. --- tools/makedep.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/makedep.c b/tools/makedep.c -index e1897bc..5540b91 100644 +index 6cb7570..09fc2de 100644 --- a/tools/makedep.c +++ b/tools/makedep.c -@@ -169,6 +169,7 @@ struct makefile +@@ -175,6 +175,7 @@ struct makefile const char *top_src_dir; const char *top_obj_dir; const char *parent_dir; @@ -19,21 +19,21 @@ index e1897bc..5540b91 100644 const char *module; const char *testdll; const char *sharedlib; -@@ -2541,7 +2542,12 @@ static struct strarray output_sources( const struct makefile *make ) - char *spec_file = NULL; +@@ -2913,7 +2914,12 @@ static void output_module( struct makefile *make ) + unsigned int i; - if (!make->appmode.count) -- spec_file = src_dir_path( make, replace_extension( make->module, ".dll", ".spec" )); -+ { -+ if (!make->parent_spec) -+ spec_file = src_dir_path( make, replace_extension( make->module, ".dll", ".spec" )); -+ else -+ spec_file = src_dir_path( make, make->parent_spec ); -+ } - strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->delayimports, 0 )); - strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->imports, 0 )); - add_import_libs( make, &dep_libs, get_default_imports( make ), 0 ); /* dependencies only */ -@@ -3252,6 +3258,7 @@ static void load_sources( struct makefile *make ) + if (!make->appmode.count) +- spec_file = src_dir_path( make, replace_extension( make->module, ".dll", ".spec" )); ++ { ++ if (!make->parent_spec) ++ spec_file = src_dir_path( make, replace_extension( make->module, ".dll", ".spec" )); ++ else ++ spec_file = src_dir_path( make, make->parent_spec ); ++ } + strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->delayimports, 0 )); + strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->imports, 0 )); + add_import_libs( make, &dep_libs, get_default_imports( make ), 0 ); /* dependencies only */ +@@ -3693,6 +3699,7 @@ static void load_sources( struct makefile *make ) strarray_set_value( &make->vars, "srcdir", src_dir_path( make, "" )); make->parent_dir = get_expanded_make_variable( make, "PARENTSRC" ); @@ -42,5 +42,5 @@ index e1897bc..5540b91 100644 make->testdll = get_expanded_make_variable( make, "TESTDLL" ); make->sharedlib = get_expanded_make_variable( make, "SHAREDLIB" ); -- -2.7.1 +1.9.1 diff --git a/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch b/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch index c8ff9d65..ea1ec082 100644 --- a/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch +++ b/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch @@ -1,7 +1,7 @@ -From 93accf8fa8225b99efed51f2b44433c1776b8403 Mon Sep 17 00:00:00 2001 +From f41ca623297693e58b3d286245fa01b4c9d9f5b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 3 Apr 2017 01:06:26 +0200 -Subject: ntdll: Add dummy apiset to PEB. +Subject: [PATCH] ntdll: Add dummy apiset to PEB. --- dlls/ntdll/thread.c | 2 ++ @@ -12,10 +12,10 @@ Subject: ntdll: Add dummy apiset to PEB. create mode 100644 include/apiset.h diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 85ceb2bbeac..95511673fab 100644 +index 34e12ad..b1d04ab 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c -@@ -68,6 +68,7 @@ static WCHAR current_dir[MAX_NT_PATH_LENGTH]; +@@ -75,6 +75,7 @@ static WCHAR current_dir[MAX_NT_PATH_LENGTH]; static RTL_BITMAP tls_bitmap; static RTL_BITMAP tls_expansion_bitmap; static RTL_BITMAP fls_bitmap; @@ -23,7 +23,7 @@ index 85ceb2bbeac..95511673fab 100644 static int nb_threads = 1; static RTL_CRITICAL_SECTION peb_lock; -@@ -304,6 +305,7 @@ HANDLE thread_init(void) +@@ -396,6 +397,7 @@ HANDLE thread_init(void) peb->FastPebLock = &peb_lock; peb->ProcessParameters = ¶ms; @@ -32,20 +32,20 @@ index 85ceb2bbeac..95511673fab 100644 peb->TlsExpansionBitmap = &tls_expansion_bitmap; peb->FlsBitmap = &fls_bitmap; diff --git a/include/Makefile.in b/include/Makefile.in -index 025fe774552..07e0d54dd81 100644 +index ac0ff21..be384d5 100644 --- a/include/Makefile.in +++ b/include/Makefile.in -@@ -223,6 +223,7 @@ HEADER_SRCS = \ - advpub.h \ - af_irda.h \ - amaudio.h \ -+ apiset.h \ +@@ -14,6 +14,7 @@ SOURCES = \ + amstream.idl \ + amvideo.idl \ appcompatapi.h \ ++ apiset.h \ appmgmt.h \ appmodel.h \ + asptlb.idl \ diff --git a/include/apiset.h b/include/apiset.h new file mode 100644 -index 00000000000..5f911717eea +index 0000000..5f91171 --- /dev/null +++ b/include/apiset.h @@ -0,0 +1,33 @@ @@ -83,7 +83,7 @@ index 00000000000..5f911717eea + API_SET_NAMESPACE_ENTRY Array[1]; +} API_SET_NAMESPACE_ARRAY, *PAPI_SET_NAMESPACE_ARRAY; diff --git a/include/winternl.h b/include/winternl.h -index ec8b3874714..2c35bbb3942 100644 +index 9dd95c3..0701ed4 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -23,6 +23,7 @@ @@ -94,7 +94,7 @@ index ec8b3874714..2c35bbb3942 100644 #ifdef __cplusplus extern "C" { -@@ -251,7 +252,7 @@ typedef struct _PEB +@@ -279,7 +280,7 @@ typedef struct _PEB ULONG EnvironmentUpdateCount; /* 028/050 */ PVOID KernelCallbackTable; /* 02c/058 */ ULONG Reserved[2]; /* 030/060 */ @@ -104,5 +104,5 @@ index ec8b3874714..2c35bbb3942 100644 PRTL_BITMAP TlsBitmap; /* 040/078 */ ULONG TlsBitmapBits[2]; /* 044/080 */ -- -2.14.1 +1.9.1 diff --git a/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch b/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch index bbde4376..d15a391c 100644 --- a/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch +++ b/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch @@ -1,4 +1,4 @@ -From ced18580fb543c16bd1c3a203ac4da2bbd5aba83 Mon Sep 17 00:00:00 2001 +From 4366a5a6cd385f84e6b9597cfe24864c991c135f Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 30 May 2015 02:23:15 +0200 Subject: [PATCH] ntdll: Add support for hiding wine version information from @@ -10,12 +10,12 @@ Subject: [PATCH] ntdll: Add support for hiding wine version information from 2 files changed, 99 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index a90814290b..498d95b2b7 100644 +index 69e1d01..bd27b6e 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -63,9 +63,12 @@ WINE_DECLARE_DEBUG_CHANNEL(imports); - typedef DWORD (CALLBACK *DLLENTRYPROC)(HMODULE,DWORD,LPVOID); - typedef void (CALLBACK *LDRENUMPROC)(LDR_MODULE *, void *, BOOLEAN *); +@@ -67,9 +67,12 @@ typedef void (CALLBACK *LDRENUMPROC)(LDR_MODULE *, void *, BOOLEAN *); + const WCHAR system_dir[] = {'C',':','\\','w','i','n','d','o','w','s','\\', + 's','y','s','t','e','m','3','2','\\',0}; +#define IS_OPTION_TRUE(ch) ((ch) == 'y' || (ch) == 'Y' || (ch) == 't' || (ch) == 'T' || (ch) == '1') + @@ -26,7 +26,7 @@ index a90814290b..498d95b2b7 100644 static const char * const reason_names[] = { -@@ -1435,6 +1438,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic ) +@@ -1439,6 +1442,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic ) } @@ -123,7 +123,7 @@ index a90814290b..498d95b2b7 100644 /****************************************************************** * LdrGetProcedureAddress (NTDLL.@) */ -@@ -1455,7 +1548,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name, +@@ -1459,7 +1552,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name, LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; void *proc = name ? find_named_export( module, exports, exp_size, name->Buffer, -1, load_path ) : find_ordinal_export( module, exports, exp_size, ord - exports->Base, load_path ); @@ -133,7 +133,7 @@ index a90814290b..498d95b2b7 100644 *address = proc; ret = STATUS_SUCCESS; diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h -index d126fae6c8..475fec1bdd 100644 +index fb54912..90ff20c 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h @@ -254,6 +254,11 @@ extern HANDLE keyed_event DECLSPEC_HIDDEN; @@ -149,5 +149,5 @@ index d126fae6c8..475fec1bdd 100644 extern BOOL read_process_time(int unix_pid, int unix_tid, unsigned long clk_tck, LARGE_INTEGER *kernel, LARGE_INTEGER *user) DECLSPEC_HIDDEN; -- -2.16.1 +1.9.1 diff --git a/patches/ntdll-RunlevelInformationInActivationContext/0002-ntdll-Parse-execution-level-information-in-manifest-.patch b/patches/ntdll-RunlevelInformationInActivationContext/0002-ntdll-Parse-execution-level-information-in-manifest-.patch deleted file mode 100644 index 9deef4a1..00000000 --- a/patches/ntdll-RunlevelInformationInActivationContext/0002-ntdll-Parse-execution-level-information-in-manifest-.patch +++ /dev/null @@ -1,192 +0,0 @@ -From c657cab5f25ce05fb091f03fccf005517d3918a7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Tue, 10 Jan 2017 21:06:06 +0100 -Subject: [PATCH] ntdll: Parse execution level information in manifest data. - ---- - dlls/ntdll/actctx.c | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 148 insertions(+) - -diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c -index 956f255..b099bb1 100644 ---- a/dlls/ntdll/actctx.c -+++ b/dlls/ntdll/actctx.c -@@ -501,6 +501,9 @@ struct assembly - struct entity_array entities; - COMPATIBILITY_CONTEXT_ELEMENT* compat_contexts; - ULONG num_compat_contexts; -+ BOOL rel_found; -+ ACTCTX_REQUESTED_RUN_LEVEL run_level; -+ DWORD ui_access; - }; - - enum context_sections -@@ -559,6 +562,10 @@ static const WCHAR fileW[] = {'f','i','l','e',0}; - static const WCHAR hashW[] = {'h','a','s','h',0}; - static const WCHAR noInheritW[] = {'n','o','I','n','h','e','r','i','t',0}; - static const WCHAR noInheritableW[] = {'n','o','I','n','h','e','r','i','t','a','b','l','e',0}; -+static const WCHAR requestedExecutionLevelW[] = {'r','e','q','u','e','s','t','e','d','E','x','e','c','u','t','i','o','n','L','e','v','e','l',0}; -+static const WCHAR requestedPrivilegesW[] = {'r','e','q','u','e','s','t','e','d','P','r','i','v','i','l','e','g','e','s',0}; -+static const WCHAR securityW[] ={'s','e','c','u','r','i','t','y',0}; -+static const WCHAR trustInfoW[] = {'t','r','u','s','t','I','n','f','o',0}; - static const WCHAR typelibW[] = {'t','y','p','e','l','i','b',0}; - static const WCHAR windowClassW[] = {'w','i','n','d','o','w','C','l','a','s','s',0}; - -@@ -2055,6 +2062,142 @@ static BOOL parse_clr_surrogate_elem(xmlbuf_t* xmlbuf, struct assembly* assembly - return parse_expect_end_elem(xmlbuf, clrSurrogateW, asmv1W); - } - -+static BOOL parse_requested_execution_level_elem(xmlbuf_t* xmlbuf, struct assembly* assembly, struct actctx_loader *acl) -+{ -+ static const WCHAR levelW[] = {'l','e','v','e','l',0}; -+ static const WCHAR asInvokerW[] = {'a','s','I','n','v','o','k','e','r',0}; -+ static const WCHAR requireAdministratorW[] = {'r','e','q','u','i','r','e','A','d','m','i','n','i','s','t','r','a','t','o','r',0}; -+ static const WCHAR highestAvailableW[] = {'h','i','g','h','e','s','t','A','v','a','i','l','a','b','l','e',0}; -+ static const WCHAR uiAccessW[] = {'u','i','A','c','c','e','s','s',0}; -+ static const WCHAR falseW[] = {'f','a','l','s','e',0}; -+ static const WCHAR trueW[] = {'t','r','u','e',0}; -+ -+ xmlstr_t attr_name, attr_value, elem; -+ BOOL end = FALSE, ret = TRUE, error; -+ -+ /* windows does not like multiple requestedExecutionLevel tags */ -+ if (assembly->rel_found) -+ return FALSE; -+ assembly->rel_found = TRUE; -+ -+ while (next_xml_attr(xmlbuf, &attr_name, &attr_value, &error, &end)) -+ { -+ if (xmlstr_cmp(&attr_name, levelW)) -+ { -+ if (xmlstr_cmpi(&attr_value, asInvokerW)) -+ assembly->run_level = ACTCTX_RUN_LEVEL_AS_INVOKER; -+ else if (xmlstr_cmpi(&attr_value, highestAvailableW)) -+ assembly->run_level = ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE; -+ else if (xmlstr_cmpi(&attr_value, requireAdministratorW)) -+ assembly->run_level = ACTCTX_RUN_LEVEL_REQUIRE_ADMIN; -+ else -+ FIXME("unknown security level: %s\n", debugstr_xmlstr(&attr_value)); -+ } -+ else if (xmlstr_cmp(&attr_name, uiAccessW)) -+ { -+ if (xmlstr_cmpi(&attr_value, falseW)) -+ assembly->ui_access = FALSE; -+ else if (xmlstr_cmpi(&attr_value, trueW)) -+ assembly->ui_access = TRUE; -+ else -+ FIXME("unknown uiAccess value: %s\n", debugstr_xmlstr(&attr_value)); -+ } -+ else -+ FIXME("unknown attr %s=%s\n", debugstr_xmlstr(&attr_name), debugstr_xmlstr(&attr_value)); -+ } -+ -+ if (error) return FALSE; -+ if (end) return TRUE; -+ -+ while (ret && (ret = next_xml_elem(xmlbuf, &elem))) -+ { -+ if (xmlstr_cmp_end(&elem, requestedExecutionLevelW)) -+ { -+ ret = parse_end_element(xmlbuf); -+ break; -+ } -+ else -+ { -+ FIXME("unknown element %s\n", debugstr_xmlstr(&elem)); -+ ret = parse_unknown_elem(xmlbuf, &elem); -+ } -+ } -+ -+ return ret; -+} -+ -+static BOOL parse_requested_privileges_elem(xmlbuf_t* xmlbuf, struct assembly* assembly, struct actctx_loader *acl) -+{ -+ xmlstr_t elem; -+ BOOL ret = TRUE; -+ -+ while (ret && (ret = next_xml_elem(xmlbuf, &elem))) -+ { -+ if (xmlstr_cmp_end(&elem, requestedPrivilegesW)) -+ { -+ ret = parse_end_element(xmlbuf); -+ break; -+ } -+ else if (xmlstr_cmp(&elem, requestedExecutionLevelW)) -+ ret = parse_requested_execution_level_elem(xmlbuf, assembly, acl); -+ else -+ { -+ WARN("unknown elem %s\n", debugstr_xmlstr(&elem)); -+ ret = parse_unknown_elem(xmlbuf, &elem); -+ } -+ } -+ -+ return ret; -+} -+ -+static BOOL parse_security_elem(xmlbuf_t* xmlbuf, struct assembly* assembly, struct actctx_loader *acl) -+{ -+ xmlstr_t elem; -+ BOOL ret = TRUE; -+ -+ while (ret && (ret = next_xml_elem(xmlbuf, &elem))) -+ { -+ if (xmlstr_cmp_end(&elem, securityW)) -+ { -+ ret = parse_end_element(xmlbuf); -+ break; -+ } -+ else if (xmlstr_cmp(&elem, requestedPrivilegesW)) -+ ret = parse_requested_privileges_elem(xmlbuf, assembly, acl); -+ else -+ { -+ WARN("unknown elem %s\n", debugstr_xmlstr(&elem)); -+ ret = parse_unknown_elem(xmlbuf, &elem); -+ } -+ } -+ -+ return ret; -+} -+ -+static BOOL parse_trust_info_elem(xmlbuf_t* xmlbuf, struct assembly* assembly, struct actctx_loader *acl) -+{ -+ xmlstr_t elem; -+ BOOL ret = TRUE; -+ -+ while (ret && (ret = next_xml_elem(xmlbuf, &elem))) -+ { -+ if (xmlstr_cmp_end(&elem, trustInfoW)) -+ { -+ ret = parse_end_element(xmlbuf); -+ break; -+ } -+ else if (xmlstr_cmp(&elem, securityW)) -+ ret = parse_security_elem(xmlbuf, assembly, acl); -+ else -+ { -+ WARN("unknown elem %s\n", debugstr_xmlstr(&elem)); -+ ret = parse_unknown_elem(xmlbuf, &elem); -+ } -+ } -+ -+ return ret; -+} -+ - static BOOL parse_dependent_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl, BOOL optional) - { - struct assembly_identity ai; -@@ -2405,6 +2548,11 @@ static BOOL parse_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl, - { - ret = parse_clr_surrogate_elem(xmlbuf, assembly, acl); - } -+ else if (xml_elem_cmp(&elem, trustInfoW, asmv2W) || -+ xml_elem_cmp(&elem, trustInfoW, asmv1W)) -+ { -+ ret = parse_trust_info_elem(xmlbuf, assembly, acl); -+ } - else if (xml_elem_cmp(&elem, assemblyIdentityW, asmv1W)) - { - if (!parse_assembly_identity_elem(xmlbuf, acl->actctx, &assembly->id)) return FALSE; --- -1.9.1 - diff --git a/patches/ntdll-RunlevelInformationInActivationContext/0003-ntdll-Implement-RunlevelInformationInActivationConte.patch b/patches/ntdll-RunlevelInformationInActivationContext/0003-ntdll-Implement-RunlevelInformationInActivationConte.patch deleted file mode 100644 index b5a2843a..00000000 --- a/patches/ntdll-RunlevelInformationInActivationContext/0003-ntdll-Implement-RunlevelInformationInActivationConte.patch +++ /dev/null @@ -1,299 +0,0 @@ -From b27724fbab526d24311fd312eeff280e2688ca1c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Tue, 10 Jan 2017 21:07:58 +0100 -Subject: ntdll: Implement RunlevelInformationInActivationContext in - RtlQueryInformationActivationContext. - ---- - dlls/kernel32/tests/actctx.c | 207 +++++++++++++++++++++++++++++++++++++++++++ - dlls/ntdll/actctx.c | 21 +++++ - 2 files changed, 228 insertions(+) - -diff --git a/dlls/kernel32/tests/actctx.c b/dlls/kernel32/tests/actctx.c -index af3dadf79a5..f9f66d945eb 100644 ---- a/dlls/kernel32/tests/actctx.c -+++ b/dlls/kernel32/tests/actctx.c -@@ -244,6 +244,61 @@ static const char manifest5[] = - "" - ""; - -+static const char manifest6[] = -+"" -+"" -+"" -+" " -+" " -+" " -+" " -+" " -+"" -+""; -+ -+static const char manifest7[] = -+"" -+"" -+"" -+" " -+" " -+" " -+" " -+" " -+"" -+""; -+ -+static const char manifest8[] = -+"" -+"" -+"" -+" " -+" " -+" " -+" " -+" " -+" " -+"" -+""; -+ -+static const char manifest9[] = -+"" -+"" -+"" -+" " -+" " -+" " -+" " -+" " -+"" -+"" -+" " -+" " -+" " -+" " -+"" -+""; -+ - static const char testdep_manifest1[] = - "" - "" -@@ -310,6 +365,38 @@ static const char wrong_manifest8[] = - "" - ""; - -+static const char wrong_manifest9[] = -+"" -+"" -+"" -+" " -+" " -+" " -+" " -+" " -+" " -+"" -+""; -+ -+static const char wrong_manifest10[] = -+"" -+"" -+"" -+" " -+" " -+" " -+" " -+" " -+"" -+"" -+" " -+" " -+" " -+" " -+" " -+"" -+""; -+ - static const char wrong_depmanifest1[] = - "" - "" -@@ -732,6 +819,57 @@ static void test_file_info(HANDLE handle, ULONG assid, ULONG fileid, LPCWSTR fil - HeapFree(GetProcessHeap(), 0, info); - } - -+typedef struct { -+ ACTCTX_REQUESTED_RUN_LEVEL run_level; -+ DWORD ui_access; -+} runlevel_info_t; -+ -+static const runlevel_info_t runlevel_info0 = { -+ ACTCTX_RUN_LEVEL_UNSPECIFIED, FALSE, -+}; -+ -+static const runlevel_info_t runlevel_info6 = { -+ ACTCTX_RUN_LEVEL_AS_INVOKER, FALSE, -+}; -+ -+static const runlevel_info_t runlevel_info7 = { -+ ACTCTX_RUN_LEVEL_REQUIRE_ADMIN, TRUE, -+}; -+ -+static const runlevel_info_t runlevel_info8 = { -+ ACTCTX_RUN_LEVEL_REQUIRE_ADMIN, TRUE, -+}; -+ -+static const runlevel_info_t runlevel_info9 = { -+ ACTCTX_RUN_LEVEL_REQUIRE_ADMIN, FALSE, -+}; -+ -+static void test_runlevel_info(HANDLE handle, const runlevel_info_t *exinfo, int line) -+{ -+ ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION runlevel_info; -+ SIZE_T size, retsize; -+ BOOL b; -+ -+ size = sizeof(runlevel_info); -+ b = pQueryActCtxW(0, handle, NULL, -+ RunlevelInformationInActivationContext, &runlevel_info, -+ sizeof(runlevel_info), &retsize); -+ if (!b && GetLastError() == ERROR_INVALID_PARAMETER) -+ { -+ win_skip("RunlevelInformationInActivationContext not supported.\n"); -+ return; -+ } -+ -+ ok_(__FILE__, line)(b, "QueryActCtx failed: %u\n", GetLastError()); -+ ok_(__FILE__, line)(retsize == size, "size=%ld, expected %ld\n", retsize, size); -+ -+ ok_(__FILE__, line)(runlevel_info.ulFlags == 0, "runlevel_info.ulFlags=%x\n", runlevel_info.ulFlags); -+ ok_(__FILE__, line)(runlevel_info.RunLevel == exinfo->run_level, -+ "runlevel_info.RunLevel=%u, expected %u\n", runlevel_info.RunLevel, exinfo->run_level); -+ ok_(__FILE__, line)(runlevel_info.UiAccess == exinfo->ui_access, -+ "runlevel_info.UiAccess=%u, expected %u\n", runlevel_info.UiAccess, exinfo->ui_access); -+} -+ - static HANDLE test_create(const char *file) - { - ACTCTXW actctx; -@@ -837,6 +975,10 @@ static void test_create_fail(void) - test_create_and_fail(wrong_manifest7, NULL, 1 ); - trace("wrong_manifest8\n"); - test_create_and_fail(wrong_manifest8, NULL, 0 ); -+ trace("wrong_manifest9\n"); -+ test_create_and_fail(wrong_manifest9, NULL, 0 ); -+ trace("wrong_manifest10\n"); -+ test_create_and_fail(wrong_manifest10, NULL, 0 ); - trace("UTF-16 manifest1 without BOM\n"); - test_create_wide_and_fail(manifest1, FALSE ); - trace("manifest2\n"); -@@ -1784,6 +1926,7 @@ static void test_actctx(void) - if(b) { - test_basic_info(handle, __LINE__); - test_detailed_info(handle, &detailed_info0, __LINE__); -+ test_runlevel_info(handle, &runlevel_info0, __LINE__); - pReleaseActCtx(handle); - } - -@@ -1955,6 +2098,70 @@ static void test_actctx(void) - pReleaseActCtx(handle); - } - -+ trace("manifest6\n"); -+ -+ if(create_manifest_file("test6.manifest", manifest6, -1, NULL, NULL)) { -+ handle = test_create("test6.manifest"); -+ ok(handle != INVALID_HANDLE_VALUE, "handle == INVALID_HANDLE_VALUE, error %u\n", GetLastError()); -+ DeleteFileA("test6.manifest"); -+ DeleteFileA("testdep.manifest"); -+ if(handle != INVALID_HANDLE_VALUE) -+ { -+ test_runlevel_info(handle, &runlevel_info6, __LINE__); -+ pReleaseActCtx(handle); -+ } -+ } -+ else -+ skip("Could not create manifest file 6\n"); -+ -+ trace("manifest7\n"); -+ -+ if(create_manifest_file("test7.manifest", manifest7, -1, NULL, NULL)) { -+ handle = test_create("test7.manifest"); -+ ok(handle != INVALID_HANDLE_VALUE, "handle == INVALID_HANDLE_VALUE, error %u\n", GetLastError()); -+ DeleteFileA("test7.manifest"); -+ DeleteFileA("testdep.manifest"); -+ if(handle != INVALID_HANDLE_VALUE) -+ { -+ test_runlevel_info(handle, &runlevel_info7, __LINE__); -+ pReleaseActCtx(handle); -+ } -+ } -+ else -+ skip("Could not create manifest file 7\n"); -+ -+ trace("manifest8\n"); -+ -+ if(create_manifest_file("test8.manifest", manifest8, -1, NULL, NULL)) { -+ handle = test_create("test8.manifest"); -+ ok(handle != INVALID_HANDLE_VALUE, "handle == INVALID_HANDLE_VALUE, error %u\n", GetLastError()); -+ DeleteFileA("test8.manifest"); -+ DeleteFileA("testdep.manifest"); -+ if(handle != INVALID_HANDLE_VALUE) -+ { -+ test_runlevel_info(handle, &runlevel_info8, __LINE__); -+ pReleaseActCtx(handle); -+ } -+ } -+ else -+ skip("Could not create manifest file 8\n"); -+ -+ trace("manifest9\n"); -+ -+ if(create_manifest_file("test9.manifest", manifest9, -1, NULL, NULL)) { -+ handle = test_create("test9.manifest"); -+ ok(handle != INVALID_HANDLE_VALUE, "handle == INVALID_HANDLE_VALUE, error %u\n", GetLastError()); -+ DeleteFileA("test9.manifest"); -+ DeleteFileA("testdep.manifest"); -+ if(handle != INVALID_HANDLE_VALUE) -+ { -+ test_runlevel_info(handle, &runlevel_info9, __LINE__); -+ pReleaseActCtx(handle); -+ } -+ } -+ else -+ skip("Could not create manifest file 9\n"); -+ - trace("manifest4\n"); - - if(!create_manifest_file("test4.manifest", manifest4, -1, NULL, NULL)) { -diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c -index 6801bcfb6d2..c1c83fd7704 100644 ---- a/dlls/ntdll/actctx.c -+++ b/dlls/ntdll/actctx.c -@@ -5132,6 +5132,27 @@ NTSTATUS WINAPI RtlQueryInformationActivationContext( ULONG flags, HANDLE handle - } - break; - -+ case RunlevelInformationInActivationContext: -+ { -+ ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION *acrli = buffer; -+ struct assembly *assembly; -+ SIZE_T len; -+ -+ if (!(actctx = check_actctx(handle))) return STATUS_INVALID_PARAMETER; -+ -+ len = sizeof(*acrli); -+ if (retlen) *retlen = len; -+ if (!buffer || bufsize < len) -+ return STATUS_BUFFER_TOO_SMALL; -+ -+ assembly = actctx->assemblies; -+ -+ acrli->ulFlags = 0; -+ acrli->RunLevel = assembly ? assembly->run_level : ACTCTX_RUN_LEVEL_UNSPECIFIED; -+ acrli->UiAccess = assembly ? assembly->ui_access : FALSE; -+ } -+ break; -+ - default: - FIXME( "class %u not implemented\n", class ); - return STATUS_NOT_IMPLEMENTED; --- -2.11.0 - diff --git a/patches/ntdll-RunlevelInformationInActivationContext/definition b/patches/ntdll-RunlevelInformationInActivationContext/definition deleted file mode 100644 index ecedbdab..00000000 --- a/patches/ntdll-RunlevelInformationInActivationContext/definition +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: Implement RunlevelInformationInActivationContext in RtlQueryInformationActivationContext -# FIXME: Some tests do not pass on Windows versions < Vista yet. diff --git a/patches/ntdll-User_Shared_Data/0001-ntdll-Move-code-to-update-user-shared-data-into-a-se.patch b/patches/ntdll-User_Shared_Data/0001-ntdll-Move-code-to-update-user-shared-data-into-a-se.patch index aa874f2c..c3313283 100644 --- a/patches/ntdll-User_Shared_Data/0001-ntdll-Move-code-to-update-user-shared-data-into-a-se.patch +++ b/patches/ntdll-User_Shared_Data/0001-ntdll-Move-code-to-update-user-shared-data-into-a-se.patch @@ -1,7 +1,8 @@ -From 0874ce1fc3986b06f1331a5bf1edd3760d6fa046 Mon Sep 17 00:00:00 2001 +From 109913dae53f4f0f62166d982a599456a8bd48b3 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 26 Nov 2014 10:46:09 +0100 -Subject: ntdll: Move code to update user shared data into a separate function. +Subject: [PATCH] ntdll: Move code to update user shared data into a separate + function. --- dlls/ntdll/ntdll.spec | 3 +++ @@ -9,21 +10,21 @@ Subject: ntdll: Move code to update user shared data into a separate function. 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec -index 66618fc111..827195e576 100644 +index 3855347..c223f45 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec -@@ -1493,3 +1493,6 @@ +@@ -1501,3 +1501,6 @@ + # Filesystem @ cdecl wine_nt_to_unix_file_name(ptr ptr long long) @ cdecl wine_unix_to_nt_file_name(ptr ptr) - @ cdecl __wine_init_windows_dir(wstr wstr) + +# User shared data +@ cdecl __wine_user_shared_data() diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 830dd3a030..a2c0cf48fd 100644 +index b1d04ab..ff14a5e 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c -@@ -351,6 +351,26 @@ static ULONG_PTR get_image_addr(void) +@@ -352,6 +352,26 @@ static ULONG_PTR get_image_addr(void) } #endif @@ -50,7 +51,7 @@ index 830dd3a030..a2c0cf48fd 100644 /*********************************************************************** * thread_init * -@@ -365,7 +385,6 @@ HANDLE thread_init(void) +@@ -366,7 +386,6 @@ HANDLE thread_init(void) BOOL suspend; SIZE_T size, info_size; HANDLE exe_file = 0; @@ -58,7 +59,7 @@ index 830dd3a030..a2c0cf48fd 100644 NTSTATUS status; struct ntdll_thread_data *thread_data; static struct debug_info debug_info; /* debug info for initial thread */ -@@ -477,15 +496,8 @@ HANDLE thread_init(void) +@@ -479,15 +498,8 @@ HANDLE thread_init(void) wine_server_fd_to_handle( 2, GENERIC_WRITE|SYNCHRONIZE, OBJ_INHERIT, ¶ms.hStdError ); } @@ -77,4 +78,5 @@ index 830dd3a030..a2c0cf48fd 100644 NtCreateKeyedEvent( &keyed_event, GENERIC_READ | GENERIC_WRITE, NULL, 0 ); -- -2.12.2 +1.9.1 + diff --git a/patches/ntdll-User_Shared_Data/0003-ntdll-Create-thread-to-update-user_shared_data-time-.patch b/patches/ntdll-User_Shared_Data/0003-ntdll-Create-thread-to-update-user_shared_data-time-.patch index 1c252f6f..9d0c960a 100644 --- a/patches/ntdll-User_Shared_Data/0003-ntdll-Create-thread-to-update-user_shared_data-time-.patch +++ b/patches/ntdll-User_Shared_Data/0003-ntdll-Create-thread-to-update-user_shared_data-time-.patch @@ -1,19 +1,19 @@ -From fcb1675d7e732d23fb36fdf2a0da3182d0216e62 Mon Sep 17 00:00:00 2001 +From 0e13445877dfa876f22d7ab6e564260d3a516bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 5 May 2017 05:40:50 +0200 -Subject: ntdll: Create thread to update user_shared_data time values when - necessary. +Subject: [PATCH] ntdll: Create thread to update user_shared_data time values + when necessary. --- dlls/kernel32/cpu.c | 4 +-- - dlls/ntdll/loader.c | 32 ++++++++++++++++++++++ + dlls/ntdll/loader.c | 31 ++++++++++++++++++++++ dlls/ntdll/ntdll_misc.h | 3 +++ dlls/ntdll/thread.c | 70 ++++++++++++++++++++++++++++++++++++++++++++----- dlls/ntdll/virtual.c | 17 ++++++++++++ - 5 files changed, 117 insertions(+), 9 deletions(-) + 5 files changed, 116 insertions(+), 9 deletions(-) diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c -index 2e0e79f8e8d..d53488c7652 100644 +index 2a15dad..50b26ff 100644 --- a/dlls/kernel32/cpu.c +++ b/dlls/kernel32/cpu.c @@ -46,7 +46,7 @@ @@ -35,10 +35,10 @@ index 2e0e79f8e8d..d53488c7652 100644 return FALSE; } diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index b405bb4e158..187e5a9b57a 100644 +index bd27b6e..444ea33 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -3239,6 +3239,36 @@ static void load_global_options(void) +@@ -3226,6 +3226,36 @@ static void load_global_options(void) } @@ -75,7 +75,7 @@ index b405bb4e158..187e5a9b57a 100644 /****************************************************************** * LdrInitializeThunk (NTDLL.@) * -@@ -3270,6 +3300,7 @@ void WINAPI LdrInitializeThunk( void *ke +@@ -3257,6 +3287,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2, if (!peb->ProcessParameters->WindowTitle.Buffer) peb->ProcessParameters->WindowTitle = wm->ldr.FullDllName; version_init( wm->ldr.FullDllName.Buffer ); @@ -84,10 +84,10 @@ index b405bb4e158..187e5a9b57a 100644 LdrQueryImageFileExecutionOptions( &peb->ProcessParameters->ImagePathName, globalflagW, diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h -index 043c9a64188..157c58f24f4 100644 +index 90ff20c..a01fcf4 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h -@@ -181,6 +181,9 @@ extern void VIRTUAL_SetForceExec( BOOL enable ) DECLSPEC_HIDDEN; +@@ -190,6 +190,9 @@ extern void VIRTUAL_SetForceExec( BOOL enable ) DECLSPEC_HIDDEN; extern void virtual_release_address_space(void) DECLSPEC_HIDDEN; extern void virtual_set_large_address_space(void) DECLSPEC_HIDDEN; extern struct _KUSER_SHARED_DATA *user_shared_data DECLSPEC_HIDDEN; @@ -98,7 +98,7 @@ index 043c9a64188..157c58f24f4 100644 /* completion */ extern NTSTATUS NTDLL_AddCompletion( HANDLE hFile, ULONG_PTR CompletionValue, diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index c42d81c7f89..81c11658a49 100644 +index ff14a5e..44ffa9d 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -44,6 +44,7 @@ @@ -117,10 +117,10 @@ index c42d81c7f89..81c11658a49 100644 +static struct _KUSER_SHARED_DATA user_shared_data_internal; +struct _KUSER_SHARED_DATA *user_shared_data_external; +struct _KUSER_SHARED_DATA *user_shared_data = &user_shared_data_internal; + static const WCHAR default_windirW[] = {'C',':','\\','w','i','n','d','o','w','s',0}; PUNHANDLED_EXCEPTION_FILTER unhandled_exception_filter = NULL; - void (WINAPI *kernel32_start_process)(LPTHREAD_START_ROUTINE,void*) = NULL; -@@ -359,18 +362,71 @@ static ULONG_PTR get_image_addr(void) +@@ -360,18 +363,71 @@ static ULONG_PTR get_image_addr(void) */ BYTE* CDECL __wine_user_shared_data(void) { @@ -197,20 +197,20 @@ index c42d81c7f89..81c11658a49 100644 /*********************************************************************** * thread_init * -@@ -402,7 +458,7 @@ HANDLE thread_init(void) +@@ -403,7 +459,7 @@ HANDLE thread_init(void) MESSAGE( "wine: failed to map the shared user data: %08x\n", status ); exit(1); } - user_shared_data = addr; + user_shared_data_external = addr; + memcpy( user_shared_data->NtSystemRoot, default_windirW, sizeof(default_windirW) ); /* allocate and initialize the PEB */ - diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c -index 2cdcca8a599..0b813d3b0e9 100644 +index 8303a03..7d71497 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c -@@ -1784,6 +1784,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack ) +@@ -2013,6 +2013,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack ) { NTSTATUS ret = STATUS_ACCESS_VIOLATION; void *page = ROUND_ADDR( addr, page_mask ); @@ -218,7 +218,7 @@ index 2cdcca8a599..0b813d3b0e9 100644 sigset_t sigset; BYTE vprot; -@@ -1809,7 +1810,23 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack ) +@@ -2038,7 +2039,23 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack ) ret = STATUS_SUCCESS; } } @@ -243,4 +243,5 @@ index 2cdcca8a599..0b813d3b0e9 100644 } -- -2.14.1 +1.9.1 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index cbba3d93..e2bb0754 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "2936f3f9bb9dc01c595498a821d6adb6775b62cc" + echo "538263d0efe725124df88ce1cce124bc3ad7e2af" } # Show version information @@ -272,7 +272,6 @@ patch_enable_all () enable_ntdll_RtlIpStringToAddress_Stubs="$1" enable_ntdll_RtlIpStringToAddress_Tests="$1" enable_ntdll_RtlQueryPackageIdentity="$1" - enable_ntdll_RunlevelInformationInActivationContext="$1" enable_ntdll_Serial_Port_Detection="$1" enable_ntdll_Signal_Handler="$1" enable_ntdll_Stack_Guard_Page="$1" @@ -1068,9 +1067,6 @@ patch_enable () ntdll-RtlQueryPackageIdentity) enable_ntdll_RtlQueryPackageIdentity="$2" ;; - ntdll-RunlevelInformationInActivationContext) - enable_ntdll_RunlevelInformationInActivationContext="$2" - ;; ntdll-Serial_Port_Detection) enable_ntdll_Serial_Port_Detection="$2" ;; @@ -2730,9 +2726,6 @@ if test "$enable_advapi32_Token_Integrity_Level" -eq 1; then if test "$enable_ntdll_APC_Start_Process" -gt 1; then abort "Patchset ntdll-APC_Start_Process disabled, but advapi32-Token_Integrity_Level depends on that." fi - if test "$enable_ntdll_RunlevelInformationInActivationContext" -gt 1; then - abort "Patchset ntdll-RunlevelInformationInActivationContext disabled, but advapi32-Token_Integrity_Level depends on that." - fi if test "$enable_server_CreateProcess_ACLs" -gt 1; then abort "Patchset server-CreateProcess_ACLs disabled, but advapi32-Token_Integrity_Level depends on that." fi @@ -2744,7 +2737,6 @@ if test "$enable_advapi32_Token_Integrity_Level" -eq 1; then enable_kernel32_COMSPEC=1 enable_kernel32_UmsStubs=1 enable_ntdll_APC_Start_Process=1 - enable_ntdll_RunlevelInformationInActivationContext=1 enable_server_CreateProcess_ACLs=1 enable_server_Misc_ACL=1 fi @@ -3073,25 +3065,11 @@ if test "$enable_ntdll_APC_Start_Process" -eq 1; then ) >> "$patchlist" fi -# Patchset ntdll-RunlevelInformationInActivationContext -# | -# | Modified files: -# | * dlls/kernel32/tests/actctx.c, dlls/ntdll/actctx.c -# | -if test "$enable_ntdll_RunlevelInformationInActivationContext" -eq 1; then - patch_apply ntdll-RunlevelInformationInActivationContext/0002-ntdll-Parse-execution-level-information-in-manifest-.patch - patch_apply ntdll-RunlevelInformationInActivationContext/0003-ntdll-Implement-RunlevelInformationInActivationConte.patch - ( - printf '%s\n' '+ { "Michael Müller", "ntdll: Parse execution level information in manifest data.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "ntdll: Implement RunlevelInformationInActivationContext in RtlQueryInformationActivationContext.", 1 },'; - ) >> "$patchlist" -fi - # Patchset advapi32-Token_Integrity_Level # | # | This patchset has the following (direct or indirect) dependencies: # | * Staging, advapi32-CreateRestrictedToken, kernel32-COMSPEC, kernel32-UmsStubs, ntdll-APC_Start_Process, ntdll- -# | RunlevelInformationInActivationContext, server-CreateProcess_ACLs, server-Misc_ACL +# | server-CreateProcess_ACLs, server-Misc_ACL # | # | This patchset fixes the following Wine bugs: # | * [#40613] Basic implementation for token integrity levels and UAC handling diff --git a/patches/user.exe16-CONTAINING_RECORD/0001-user.exe16-Don-t-open-code-CONTAINING_RECORD.patch b/patches/user.exe16-CONTAINING_RECORD/0001-user.exe16-Don-t-open-code-CONTAINING_RECORD.patch deleted file mode 100644 index be908f90..00000000 --- a/patches/user.exe16-CONTAINING_RECORD/0001-user.exe16-Don-t-open-code-CONTAINING_RECORD.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b5e42836311fa14c38917f63e8c18a7cf245344f Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Fri, 25 Mar 2016 23:15:28 +0100 -Subject: user.exe16: Don't open code CONTAINING_RECORD. - ---- - dlls/user.exe16/user.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/dlls/user.exe16/user.c b/dlls/user.exe16/user.c -index aba797d..376c521 100644 ---- a/dlls/user.exe16/user.c -+++ b/dlls/user.exe16/user.c -@@ -87,10 +87,7 @@ static BOOL CALLBACK gray_string_callback( HDC hdc, LPARAM param, INT len ) - /* callback for 16-bit gray string proc with string pointer */ - static BOOL CALLBACK gray_string_callback_ptr( HDC hdc, LPARAM param, INT len ) - { -- const struct gray_string_info *info; -- char *str = (char *)param; -- -- info = (struct gray_string_info *)(str - offsetof( struct gray_string_info, str )); -+ const struct gray_string_info *info = CONTAINING_RECORD( (void *)param, struct gray_string_info, str ); - return gray_string_callback( hdc, (LPARAM)info, len ); - } - --- -2.7.1 -