mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 538263d0efe725124df88ce1cce124bc3ad7e2af
This commit is contained in:
parent
852c641a59
commit
3ee8f1c014
@ -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 <sebastian@fds-team.de>
|
||||
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
|
||||
{
|
||||
|
@ -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?= <michael@fds-team.de>
|
||||
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
|
||||
|
||||
|
@ -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?= <michael@fds-team.de>
|
||||
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
|
||||
|
||||
|
@ -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?= <michael@fds-team.de>
|
||||
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
|
||||
|
||||
|
@ -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?= <michael@fds-team.de>
|
||||
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 \
|
||||
|
@ -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 <sebastian@fds-team.de>
|
||||
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
|
||||
|
||||
|
@ -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?= <michael@fds-team.de>
|
||||
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
|
||||
|
||||
|
@ -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 <sebastian@fds-team.de>
|
||||
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
|
||||
|
||||
|
@ -1,192 +0,0 @@
|
||||
From c657cab5f25ce05fb091f03fccf005517d3918a7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
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
|
||||
|
@ -1,299 +0,0 @@
|
||||
From b27724fbab526d24311fd312eeff280e2688ca1c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
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[] =
|
||||
"</dependency>"
|
||||
"</assembly>";
|
||||
|
||||
+static const char manifest6[] =
|
||||
+"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
+"<assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>"
|
||||
+"<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v1\">"
|
||||
+" <security>"
|
||||
+" <requestedPrivileges>"
|
||||
+" <requestedExecutionLevel level=\"ASINVOKER\" uiAccess=\"false\"/>"
|
||||
+" </requestedPrivileges>"
|
||||
+" </security>"
|
||||
+"</trustInfo>"
|
||||
+"</assembly>";
|
||||
+
|
||||
+static const char manifest7[] =
|
||||
+"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
+"<assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>"
|
||||
+"<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v2\">"
|
||||
+" <security>"
|
||||
+" <requestedPrivileges>"
|
||||
+" <requestedExecutionLevel level=\"requireAdministrator\" uiAccess=\"TRUE\"/>"
|
||||
+" </requestedPrivileges>"
|
||||
+" </security>"
|
||||
+"</trustInfo>"
|
||||
+"</assembly>";
|
||||
+
|
||||
+static const char manifest8[] =
|
||||
+"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
+"<assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>"
|
||||
+"<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v2\">"
|
||||
+" <security>"
|
||||
+" <requestedPrivileges>"
|
||||
+" <requestedExecutionLevel level=\"requireAdministrator\" uiAccess=\"true\">"
|
||||
+" </requestedExecutionLevel>"
|
||||
+" </requestedPrivileges>"
|
||||
+" </security>"
|
||||
+"</trustInfo>"
|
||||
+"</assembly>";
|
||||
+
|
||||
+static const char manifest9[] =
|
||||
+"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
+"<assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>"
|
||||
+"<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v2\">"
|
||||
+" <security>"
|
||||
+" <requestedPrivileges>"
|
||||
+" <requestedExecutionLevel level=\"requireAdministrator\"/>"
|
||||
+" </requestedPrivileges>"
|
||||
+" </security>"
|
||||
+"</trustInfo>"
|
||||
+"<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v2\">"
|
||||
+" <security>"
|
||||
+" <requestedPrivileges>"
|
||||
+" </requestedPrivileges>"
|
||||
+" </security>"
|
||||
+"</trustInfo>"
|
||||
+"</assembly>";
|
||||
+
|
||||
static const char testdep_manifest1[] =
|
||||
"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
"<assemblyIdentity type=\"win32\" name=\"testdep\" version=\"6.5.4.3\" processorArchitecture=\"" ARCH "\"/>"
|
||||
@@ -310,6 +365,38 @@ static const char wrong_manifest8[] =
|
||||
"<file></file>"
|
||||
"</assembly>";
|
||||
|
||||
+static const char wrong_manifest9[] =
|
||||
+"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
+"<assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>"
|
||||
+"<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v2\">"
|
||||
+" <security>"
|
||||
+" <requestedPrivileges>"
|
||||
+" <requestedExecutionLevel level=\"requireAdministrator\"/>"
|
||||
+" <requestedExecutionLevel uiAccess=\"true\"/>"
|
||||
+" </requestedPrivileges>"
|
||||
+" </security>"
|
||||
+"</trustInfo>"
|
||||
+"</assembly>";
|
||||
+
|
||||
+static const char wrong_manifest10[] =
|
||||
+"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
+"<assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>"
|
||||
+"<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v2\">"
|
||||
+" <security>"
|
||||
+" <requestedPrivileges>"
|
||||
+" <requestedExecutionLevel level=\"requireAdministrator\"/>"
|
||||
+" </requestedPrivileges>"
|
||||
+" </security>"
|
||||
+"</trustInfo>"
|
||||
+"<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v2\">"
|
||||
+" <security>"
|
||||
+" <requestedPrivileges>"
|
||||
+" <requestedExecutionLevel uiAccess=\"true\"/>"
|
||||
+" </requestedPrivileges>"
|
||||
+" </security>"
|
||||
+"</trustInfo>"
|
||||
+"</assembly>";
|
||||
+
|
||||
static const char wrong_depmanifest1[] =
|
||||
"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
"<assemblyIdentity type=\"win32\" name=\"testdep\" version=\"6.5.4.4\" processorArchitecture=\"" ARCH "\" />"
|
||||
@@ -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
|
||||
|
@ -1,2 +0,0 @@
|
||||
Fixes: Implement RunlevelInformationInActivationContext in RtlQueryInformationActivationContext
|
||||
# FIXME: Some tests do not pass on Windows versions < Vista yet.
|
@ -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 <sebastian@fds-team.de>
|
||||
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
|
||||
|
||||
|
@ -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?= <michael@fds-team.de>
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
@ -1,28 +0,0 @@
|
||||
From b5e42836311fa14c38917f63e8c18a7cf245344f Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user