Compare commits

...

18 Commits
v3.17 ... v3.18

Author SHA1 Message Date
Alistair Leslie-Hughes
30dca36aeb Release v3.18 2018-10-13 20:11:22 +11:00
Alistair Leslie-Hughes
9556a78ab9 Added wined3d-Restore-DirectX10-Support patchset 2018-10-13 18:02:39 +11:00
Alistair Leslie-Hughes
b56e74f39d Added kernel32-Disable-GetQueuedCompletionStatusEx patchset 2018-10-13 18:01:42 +11:00
Alistair Leslie-Hughes
652a39caf1 Added user32-Implement-CascadeWindows patchset 2018-10-12 11:28:35 +11:00
Alistair Leslie-Hughes
6bb65ccf88 Rebase against b0c5a77e26c51f60b7d5e4df557f969a044b7fd4 2018-10-12 10:52:19 +11:00
Alistair Leslie-Hughes
4beed4a313 Rebase against 9f0534301321c9192c9e3a705b2bae84a2081745 2018-10-10 10:06:27 +11:00
Alistair Leslie-Hughes
5a2c1ea66d Updated README.md 2018-10-09 13:40:36 +11:00
Zebediah Figura
8dced4d4ac wined3d-mesa_texture_download: Add patch. 2018-10-08 16:19:25 -05:00
Zebediah Figura
15e36c54fc Rebase against cc4b28a99df649d2885c14fd28c2ad2f0c2abdad. 2018-10-08 16:16:28 -05:00
Alistair Leslie-Hughes
2de179532e Rebase against 2e754a652725c067bc44445cebe8b96487ec4a6e 2018-10-06 20:04:33 +10:00
Alistair Leslie-Hughes
f17ad5a016 Rebase against ee206a37609f99e9dc024dbe19d4a9b842433813 2018-10-05 09:06:15 +10:00
Alistair Leslie-Hughes
faf8498490 Added user32-GetPointerType patchset 2018-10-05 08:40:41 +10:00
Alistair Leslie-Hughes
9d20573c6e Added setupapi-CM_Request_Device_Eject patchset 2018-10-05 08:40:10 +10:00
Alistair Leslie-Hughes
be75db4704 Added user32-msgbox-Support-WM_COPY-mesg patchset 2018-10-05 08:08:48 +10:00
Alistair Leslie-Hughes
20a4649b84 Updated Compiler_Warnings patchset 2018-10-05 08:00:11 +10:00
Alistair Leslie-Hughes
1b1af92c85 Updated README.md 2018-10-03 14:00:07 +10:00
Alistair Leslie-Hughes
5cf1692e74 Rebase against c96eba60e347e9ce79f8b60e0fac9bf69c165ced 2018-10-03 13:55:21 +10:00
Alistair Leslie-Hughes
9146bbc3d4 Rebase against d8249c638c9e5bac2869c850d1449bddad01f404 2018-10-02 13:53:52 +10:00
50 changed files with 1430 additions and 1475 deletions

View File

@@ -22,7 +22,7 @@ parallel. If this is the case for your distribution, you will have to type
`/opt/wine-staging/bin/wine` instead of just `wine`. The same also applies for
other wine-specific programs like `winecfg`. To learn more about how to use
Wine Staging, please take a look at the
[usage instructions](https://github.com/wine-compholio/wine-staging/wiki/Usage).
[usage instructions](https://wiki.winehq.org/Wine-Staging_Usage).
Building
--------
@@ -73,7 +73,7 @@ Before you proceed with the compilation, please make sure that you installed all
additional build dependencies required for the Wine Staging features you are
interested in (check output of `./configure`). More information about building
Wine Staging, optional build dependencies, and hints for packagers are collected
in our [Wiki](https://github.com/wine-compholio/wine-staging/wiki/Packaging).
in our [Wiki](https://wiki.winehq.org/Wine-Staging).
Contributing
------------

View File

@@ -0,0 +1,61 @@
From fc5c0462f64e0976d596bd726da4d7f0e4857384 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 19 Sep 2018 09:03:19 +1000
Subject: [PATCH] windowscodecs: Avoid implicit cast of interface pointer.
---
dlls/windowscodecs/info.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/windowscodecs/info.c b/dlls/windowscodecs/info.c
index 0a86266..8c81574 100644
--- a/dlls/windowscodecs/info.c
+++ b/dlls/windowscodecs/info.c
@@ -222,7 +222,7 @@ typedef struct {
static inline BitmapDecoderInfo *impl_from_IWICBitmapDecoderInfo(IWICBitmapDecoderInfo *iface)
{
- return CONTAINING_RECORD(iface, BitmapDecoderInfo, base.IWICComponentInfo_iface);
+ return CONTAINING_RECORD((IWICComponentInfo*)iface, BitmapDecoderInfo, base.IWICComponentInfo_iface);
}
static HRESULT WINAPI BitmapDecoderInfo_QueryInterface(IWICBitmapDecoderInfo *iface, REFIID iid,
@@ -713,7 +713,7 @@ typedef struct {
static inline BitmapEncoderInfo *impl_from_IWICBitmapEncoderInfo(IWICBitmapEncoderInfo *iface)
{
- return CONTAINING_RECORD(iface, BitmapEncoderInfo, base.IWICComponentInfo_iface);
+ return CONTAINING_RECORD((IWICComponentInfo*)iface, BitmapEncoderInfo, base.IWICComponentInfo_iface);
}
static HRESULT WINAPI BitmapEncoderInfo_QueryInterface(IWICBitmapEncoderInfo *iface, REFIID iid,
@@ -1005,7 +1005,7 @@ typedef struct {
static inline FormatConverterInfo *impl_from_IWICFormatConverterInfo(IWICFormatConverterInfo *iface)
{
- return CONTAINING_RECORD(iface, FormatConverterInfo, base.IWICComponentInfo_iface);
+ return CONTAINING_RECORD((IWICComponentInfo*)iface, FormatConverterInfo, base.IWICComponentInfo_iface);
}
static HRESULT WINAPI FormatConverterInfo_QueryInterface(IWICFormatConverterInfo *iface, REFIID iid,
@@ -1219,7 +1219,7 @@ typedef struct {
static inline PixelFormatInfo *impl_from_IWICPixelFormatInfo2(IWICPixelFormatInfo2 *iface)
{
- return CONTAINING_RECORD(iface, PixelFormatInfo, base.IWICComponentInfo_iface);
+ return CONTAINING_RECORD((IWICComponentInfo*)iface, PixelFormatInfo, base.IWICComponentInfo_iface);
}
static HRESULT WINAPI PixelFormatInfo_QueryInterface(IWICPixelFormatInfo2 *iface, REFIID iid,
@@ -1531,7 +1531,7 @@ static struct metadata_container *get_metadata_container(MetadataReaderInfo *inf
static inline MetadataReaderInfo *impl_from_IWICMetadataReaderInfo(IWICMetadataReaderInfo *iface)
{
- return CONTAINING_RECORD(iface, MetadataReaderInfo, base.IWICComponentInfo_iface);
+ return CONTAINING_RECORD((IWICComponentInfo*)iface, MetadataReaderInfo, base.IWICComponentInfo_iface);
}
static HRESULT WINAPI MetadataReaderInfo_QueryInterface(IWICMetadataReaderInfo *iface,
--
1.9.1

View File

@@ -1,15 +1,31 @@
From e8bc998c7b00a18a724f6cfd2823aefcd8b1b15c Mon Sep 17 00:00:00 2001
From 2aeb3a9e57142c3f4ff86cb81b206bdbc146552d Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 21:54:26 +0100
Subject: d2d1: Avoid implicit cast of interface pointer.
Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
---
dlls/d2d1/brush.c | 8 ++++----
dlls/d2d1/geometry.c | 6 +++---
2 files changed, 7 insertions(+), 7 deletions(-)
dlls/d2d1/bitmap.c | 2 +-
dlls/d2d1/brush.c | 8 ++++----
dlls/d2d1/dc_render_target.c | 2 +-
dlls/d2d1/device.c | 2 +-
dlls/d2d1/geometry.c | 6 +++---
dlls/d2d1/hwnd_render_target.c | 2 +-
dlls/d2d1/state_block.c | 2 +-
7 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/dlls/d2d1/bitmap.c b/dlls/d2d1/bitmap.c
index c0aef3c..8a4b517 100644
--- a/dlls/d2d1/bitmap.c
+++ b/dlls/d2d1/bitmap.c
@@ -626,5 +626,5 @@ struct d2d_bitmap *unsafe_impl_from_ID2D1Bitmap(ID2D1Bitmap *iface)
if (!iface)
return NULL;
assert(iface->lpVtbl == (ID2D1BitmapVtbl *)&d2d_bitmap_vtbl);
- return CONTAINING_RECORD(iface, struct d2d_bitmap, ID2D1Bitmap1_iface);
+ return CONTAINING_RECORD((ID2D1Bitmap1*)iface, struct d2d_bitmap, ID2D1Bitmap1_iface);
}
diff --git a/dlls/d2d1/brush.c b/dlls/d2d1/brush.c
index b03af89..319a188 100644
index 9c73ae1..a748669 100644
--- a/dlls/d2d1/brush.c
+++ b/dlls/d2d1/brush.c
@@ -256,7 +256,7 @@ static void d2d_brush_init(struct d2d_brush *brush, ID2D1Factory *factory,
@@ -48,8 +64,34 @@ index b03af89..319a188 100644
}
static HRESULT STDMETHODCALLTYPE d2d_bitmap_brush_QueryInterface(ID2D1BitmapBrush1 *iface,
diff --git a/dlls/d2d1/dc_render_target.c b/dlls/d2d1/dc_render_target.c
index b095008..6030826 100644
--- a/dlls/d2d1/dc_render_target.c
+++ b/dlls/d2d1/dc_render_target.c
@@ -26,7 +26,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d2d);
static inline struct d2d_dc_render_target *impl_from_IUnknown(IUnknown *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_dc_render_target, ID2D1DCRenderTarget_iface);
+ return CONTAINING_RECORD((ID2D1DCRenderTarget*)iface, struct d2d_dc_render_target, ID2D1DCRenderTarget_iface);
}
static HRESULT d2d_dc_render_target_present(IUnknown *outer_unknown)
diff --git a/dlls/d2d1/device.c b/dlls/d2d1/device.c
index 45b2258..bf32c23 100644
--- a/dlls/d2d1/device.c
+++ b/dlls/d2d1/device.c
@@ -207,7 +207,7 @@ static inline struct d2d_device_context *impl_from_ID2D1DeviceContext(ID2D1Devic
static inline struct d2d_device_context *impl_from_ID2D1RenderTarget(ID2D1RenderTarget *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_device_context, ID2D1DeviceContext_iface);
+ return CONTAINING_RECORD((ID2D1DeviceContext*)iface, struct d2d_device_context, ID2D1DeviceContext_iface);
}
static HRESULT STDMETHODCALLTYPE d2d_device_context_inner_QueryInterface(IUnknown *iface, REFIID iid, void **out)
diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c
index d716fb1..18d8deb 100644
index 421ba2b..f8db51c 100644
--- a/dlls/d2d1/geometry.c
+++ b/dlls/d2d1/geometry.c
@@ -2987,7 +2987,7 @@ static const struct ID2D1GeometrySinkVtbl d2d_geometry_sink_vtbl =
@@ -70,7 +112,7 @@ index d716fb1..18d8deb 100644
}
static HRESULT STDMETHODCALLTYPE d2d_rectangle_geometry_QueryInterface(ID2D1RectangleGeometry *iface,
@@ -3839,7 +3839,7 @@ fail:
@@ -3838,7 +3838,7 @@ fail:
static inline struct d2d_geometry *impl_from_ID2D1TransformedGeometry(ID2D1TransformedGeometry *iface)
{
@@ -79,6 +121,30 @@ index d716fb1..18d8deb 100644
}
static HRESULT STDMETHODCALLTYPE d2d_transformed_geometry_QueryInterface(ID2D1TransformedGeometry *iface,
diff --git a/dlls/d2d1/hwnd_render_target.c b/dlls/d2d1/hwnd_render_target.c
index d0b9695..429561e 100644
--- a/dlls/d2d1/hwnd_render_target.c
+++ b/dlls/d2d1/hwnd_render_target.c
@@ -26,7 +26,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d2d);
static inline struct d2d_hwnd_render_target *impl_from_IUnknown(IUnknown *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_hwnd_render_target, ID2D1HwndRenderTarget_iface);
+ return CONTAINING_RECORD((ID2D1HwndRenderTarget*)iface, struct d2d_hwnd_render_target, ID2D1HwndRenderTarget_iface);
}
static HRESULT d2d_hwnd_render_target_present(IUnknown *outer_unknown)
diff --git a/dlls/d2d1/state_block.c b/dlls/d2d1/state_block.c
index b15384e..4e7e34b 100644
--- a/dlls/d2d1/state_block.c
+++ b/dlls/d2d1/state_block.c
@@ -190,5 +190,5 @@ struct d2d_state_block *unsafe_impl_from_ID2D1DrawingStateBlock(ID2D1DrawingStat
if (!iface)
return NULL;
assert(iface->lpVtbl == (ID2D1DrawingStateBlockVtbl *)&d2d_state_block_vtbl);
- return CONTAINING_RECORD(iface, struct d2d_state_block, ID2D1DrawingStateBlock1_iface);
+ return CONTAINING_RECORD((ID2D1DrawingStateBlock1*)iface, struct d2d_state_block, ID2D1DrawingStateBlock1_iface);
}
--
2.7.4
1.9.1

View File

@@ -1,4 +1,4 @@
From ed2822f9c9c1178b78872b13aa5d5df1a397bd35 Mon Sep 17 00:00:00 2001
From 5128e0ff8263d52792c16c465869a90736ec76de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 6 Aug 2017 02:08:05 +0200
Subject: [PATCH] server: Implement support for creating processes using a
@@ -15,10 +15,10 @@ Subject: [PATCH] server: Implement support for creating processes using a
7 files changed, 59 insertions(+), 21 deletions(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index e9d10ee..4ea7f1d 100644
index c2042b0..5e94fb0 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -2203,7 +2203,7 @@ static NTSTATUS alloc_object_attributes( const SECURITY_ATTRIBUTES *attr, struct
@@ -2207,7 +2207,7 @@ static NTSTATUS alloc_object_attributes( const SECURITY_ATTRIBUTES *attr, struct
* Create a new process. If hFile is a valid handle we have an exe
* file, otherwise it is a Winelib app.
*/
@@ -27,15 +27,15 @@ index e9d10ee..4ea7f1d 100644
LPCWSTR cur_dir, LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
BOOL inherit, DWORD flags, LPSTARTUPINFOW startup,
LPPROCESS_INFORMATION info, LPCSTR unixdir,
@@ -2316,6 +2316,7 @@ static BOOL create_process( HANDLE hFile, LPCWSTR filename, LPWSTR cmd_line, LPW
@@ -2314,6 +2314,7 @@ static BOOL create_process( HANDLE hFile, LPCWSTR filename, LPWSTR cmd_line, LPW
req->access = PROCESS_ALL_ACCESS;
req->cpu = cpu;
req->cpu = pe_info->cpu;
req->info_size = startup_info_size;
+ req->token = wine_server_obj_handle( token );
wine_server_add_data( req, objattr, attr_len );
wine_server_add_data( req, startup_info, startup_info_size );
wine_server_add_data( req, env, (env_end - env) * sizeof(WCHAR) );
@@ -2432,7 +2433,7 @@ error:
wine_server_add_data( req, params->Environment, (env_end - params->Environment) * sizeof(WCHAR) );
@@ -2431,7 +2432,7 @@ error:
*
* Create a new VDM process for a 16-bit or DOS application.
*/
@@ -44,16 +44,16 @@ index e9d10ee..4ea7f1d 100644
LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
BOOL inherit, DWORD flags, LPSTARTUPINFOW startup,
LPPROCESS_INFORMATION info, LPCSTR unixdir, int exec_only )
@@ -2458,7 +2459,7 @@ static BOOL create_vdm_process( LPCWSTR filename, LPWSTR cmd_line, LPWSTR env, L
sprintfW(new_cmd_line, argsW, winevdmW, buffer, cmd_line);
@@ -2456,7 +2457,7 @@ static BOOL create_vdm_process( LPCWSTR filename, LPWSTR cmd_line, LPWSTR env, L
sprintfW(new_cmd_line, argsW, winevdm, buffer, cmd_line);
memset( &pe_info, 0, sizeof(pe_info) );
pe_info.machine = IMAGE_FILE_MACHINE_I386;
- ret = create_process( 0, winevdmW, new_cmd_line, env, cur_dir, psa, tsa, inherit,
+ ret = create_process( token, 0, winevdmW, new_cmd_line, env, cur_dir, psa, tsa, inherit,
pe_info.cpu = CPU_x86;
- ret = create_process( 0, winevdm, new_cmd_line, env, cur_dir, psa, tsa, inherit,
+ ret = create_process( token, 0, winevdm, new_cmd_line, env, cur_dir, psa, tsa, inherit,
flags, startup, info, unixdir, &pe_info, exec_only );
HeapFree( GetProcessHeap(), 0, new_cmd_line );
return ret;
@@ -2470,7 +2471,7 @@ static BOOL create_vdm_process( LPCWSTR filename, LPWSTR cmd_line, LPWSTR env, L
@@ -2468,7 +2469,7 @@ static BOOL create_vdm_process( LPCWSTR filename, LPWSTR cmd_line, LPWSTR env, L
*
* Create a new cmd shell process for a .BAT file.
*/
@@ -62,7 +62,7 @@ index e9d10ee..4ea7f1d 100644
LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
BOOL inherit, DWORD flags, LPSTARTUPINFOW startup,
LPPROCESS_INFORMATION info )
@@ -2498,8 +2499,8 @@ static BOOL create_cmd_process( LPCWSTR filename, LPWSTR cmd_line, LPVOID env, L
@@ -2496,8 +2497,8 @@ static BOOL create_cmd_process( LPCWSTR filename, LPWSTR cmd_line, LPVOID env, L
strcatW( newcmdline, quotW );
strcatW( newcmdline, cmd_line );
strcatW( newcmdline, quotW );
@@ -73,7 +73,7 @@ index e9d10ee..4ea7f1d 100644
HeapFree( GetProcessHeap(), 0, newcmdline );
return ret;
}
@@ -2611,7 +2612,9 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l
@@ -2609,7 +2610,9 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l
TRACE("app %s cmdline %s\n", debugstr_w(app_name), debugstr_w(cmd_line) );
@@ -84,12 +84,12 @@ index e9d10ee..4ea7f1d 100644
if (new_token) FIXME("No support for returning created process token\n");
if (!(tidy_cmdline = get_file_name( app_name, cmd_line, name, ARRAY_SIZE( name ), &hFile, &is_64bit )))
@@ -2688,18 +2691,18 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l
debugstr_w(name), is_64bit_arch(pe_info.machine) ? 64 : 32,
@@ -2696,18 +2699,18 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l
debugstr_w(name), is_64bit_arch(pe_info.cpu) ? 64 : 32,
wine_dbgstr_longlong(pe_info.base), wine_dbgstr_longlong(pe_info.base + pe_info.map_size),
pe_info.machine );
cpu_names[pe_info.cpu] );
- retv = create_process( hFile, name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr,
+ retv = create_process( token, hFile, name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr,
+ retv = create_process( NULL, hFile, name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr,
inherit, flags, startup_info, info, unixdir, &pe_info, FALSE );
break;
case BINARY_WIN16:
@@ -100,13 +100,13 @@ index e9d10ee..4ea7f1d 100644
break;
case BINARY_UNIX_LIB:
TRACE( "starting %s as %d-bit Winelib app\n",
debugstr_w(name), is_64bit_arch(pe_info.machine) ? 64 : 32 );
debugstr_w(name), is_64bit_arch(pe_info.cpu) ? 64 : 32 );
- retv = create_process( hFile, name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr,
+ retv = create_process( token, hFile, name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr,
inherit, flags, startup_info, info, unixdir, &pe_info, FALSE );
break;
case BINARY_UNKNOWN:
@@ -2709,14 +2712,14 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l
@@ -2717,14 +2720,14 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l
if (!strcmpiW( p, comW ) || !strcmpiW( p, pifW ))
{
TRACE( "starting %s as DOS binary\n", debugstr_w(name) );
@@ -123,10 +123,10 @@ index e9d10ee..4ea7f1d 100644
inherit, flags, startup_info, info );
break;
}
@@ -2832,12 +2835,12 @@ static void exec_process( LPCWSTR name )
debugstr_w(name), is_64bit_arch(pe_info.machine) ? 64 : 32,
@@ -2840,12 +2843,12 @@ static void exec_process( LPCWSTR name )
debugstr_w(name), is_64bit_arch(pe_info.cpu) ? 64 : 32,
wine_dbgstr_longlong(pe_info.base), wine_dbgstr_longlong(pe_info.base + pe_info.map_size),
pe_info.machine );
cpu_names[pe_info.cpu] );
- create_process( hFile, name, GetCommandLineW(), NULL, NULL, NULL, NULL,
+ create_process( NULL, hFile, name, GetCommandLineW(), NULL, NULL, NULL, NULL,
FALSE, 0, &startup_info, &info, NULL, &pe_info, TRUE );
@@ -138,7 +138,7 @@ index e9d10ee..4ea7f1d 100644
FALSE, 0, &startup_info, &info, NULL, &pe_info, TRUE );
break;
case BINARY_UNKNOWN:
@@ -2847,7 +2850,7 @@ static void exec_process( LPCWSTR name )
@@ -2855,7 +2858,7 @@ static void exec_process( LPCWSTR name )
/* fall through */
case BINARY_WIN16:
TRACE( "starting %s as Win16/DOS binary\n", debugstr_w(name) );
@@ -249,10 +249,10 @@ index 1128dba..ec44e02 100644
extern struct thread *get_process_first_thread( struct process *process );
extern struct process *get_process_from_id( process_id_t id );
diff --git a/server/protocol.def b/server/protocol.def
index 2ddc62f..897aa2b 100644
index aebac70..3dc82b3 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -743,6 +743,7 @@ struct rawinput_device
@@ -744,6 +744,7 @@ struct rawinput_device
unsigned int access; /* access rights for process object */
cpu_type_t cpu; /* CPU that the new process will use */
data_size_t info_size; /* size of startup info */
@@ -287,7 +287,7 @@ index 21e90cc..32dfe5f 100644
static inline const ACE_HEADER *ace_next( const ACE_HEADER *ace )
{
diff --git a/server/token.c b/server/token.c
index 1184241..5db97b4 100644
index de1d624..2804247 100644
--- a/server/token.c
+++ b/server/token.c
@@ -836,6 +836,12 @@ int token_assign_label( struct token *token, PSID label )
@@ -303,7 +303,7 @@ index 1184241..5db97b4 100644
struct token *token_create_admin( void )
{
struct token *token = NULL;
@@ -1262,6 +1268,11 @@ const SID *token_get_primary_group( struct token *token )
@@ -1263,6 +1269,11 @@ const SID *token_get_primary_group( struct token *token )
return token->primary_group;
}
@@ -316,5 +316,5 @@ index 1184241..5db97b4 100644
{
GENERIC_MAPPING mapping;
--
2.7.4
1.9.1

View File

@@ -1,26 +0,0 @@
From e71a9b9a10c2de28a617f9490c3d135b1e12adf1 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 16 Dec 2016 13:20:32 +0800
Subject: advapi32: SDDL assigns the "AC" abbreviation to
WinBuiltinAnyPackageSid.
---
dlls/advapi32/security.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 28331df..3b585aa 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -135,7 +135,7 @@ static const WELLKNOWNSID WellKnownSids[] =
{ {'M','E'}, WinMediumLabelSid, { SID_REVISION, 1, { SECURITY_MANDATORY_LABEL_AUTHORITY}, { SECURITY_MANDATORY_MEDIUM_RID } } },
{ {'H','I'}, WinHighLabelSid, { SID_REVISION, 1, { SECURITY_MANDATORY_LABEL_AUTHORITY}, { SECURITY_MANDATORY_HIGH_RID } } },
{ {'S','I'}, WinSystemLabelSid, { SID_REVISION, 1, { SECURITY_MANDATORY_LABEL_AUTHORITY}, { SECURITY_MANDATORY_SYSTEM_RID } } },
- { {0,0}, WinBuiltinAnyPackageSid, { SID_REVISION, 2, { SECURITY_APP_PACKAGE_AUTHORITY }, { SECURITY_APP_PACKAGE_BASE_RID, SECURITY_BUILTIN_PACKAGE_ANY_PACKAGE } } },
+ { {'A','C'}, WinBuiltinAnyPackageSid, { SID_REVISION, 2, { SECURITY_APP_PACKAGE_AUTHORITY }, { SECURITY_APP_PACKAGE_BASE_RID, SECURITY_BUILTIN_PACKAGE_ANY_PACKAGE } } },
};
/* these SIDs must be constructed as relative to some domain - only the RID is well-known */
--
2.9.0

View File

@@ -1,227 +0,0 @@
From 393f8906d8b26414fb4fc89c692cb5247be6b4c2 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 16 Dec 2016 13:23:15 +0800
Subject: advapi32/tests: Add a test that compares a well-known SID to a SID
created from a SDDL abbreviation.
---
dlls/advapi32/tests/security.c | 130 +++++++++++++++++++++++++++++------------
1 file changed, 92 insertions(+), 38 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index dfe2f871d42..808547ddbc0 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -2,7 +2,7 @@
* Unit tests for security functions
*
* Copyright (c) 2004 Mike McCormack
- * Copyright (c) 2011 Dmitry Timoshkov
+ * Copyright (c) 2011,2013,2014,2016 Dmitry Timoshkov
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -138,14 +138,6 @@ static HMODULE hmod;
static int myARGC;
static char** myARGV;
-struct strsid_entry
-{
- const char *str;
- DWORD flags;
-};
-#define STRSID_OK 0
-#define STRSID_OPT 1
-
#define SID_SLOTS 4
static char debugsid_str[SID_SLOTS][256];
static int debugsid_index = 0;
@@ -174,12 +166,6 @@ static const char* debugstr_sid(PSID sid)
return res;
}
-struct sidRef
-{
- SID_IDENTIFIER_AUTHORITY auth;
- const char *refStr;
-};
-
static void init(void)
{
HMODULE hntdll;
@@ -297,7 +283,11 @@ static void test_group_equal(HANDLE Handle, PSID expected, int line)
static void test_sid(void)
{
- struct sidRef refs[] = {
+ static struct
+ {
+ SID_IDENTIFIER_AUTHORITY auth;
+ const char *refStr;
+ } refs[] = {
{ { {0x00,0x00,0x33,0x44,0x55,0x66} }, "S-1-860116326-1" },
{ { {0x00,0x00,0x01,0x02,0x03,0x04} }, "S-1-16909060-1" },
{ { {0x00,0x00,0x00,0x01,0x02,0x03} }, "S-1-66051-1" },
@@ -305,24 +295,60 @@ static void test_sid(void)
{ { {0x00,0x00,0x00,0x00,0x00,0x02} }, "S-1-2-1" },
{ { {0x00,0x00,0x00,0x00,0x00,0x0c} }, "S-1-12-1" },
};
- struct strsid_entry strsid_table[] = {
- {"AO", STRSID_OK}, {"RU", STRSID_OK}, {"AN", STRSID_OK}, {"AU", STRSID_OK},
- {"BA", STRSID_OK}, {"BG", STRSID_OK}, {"BO", STRSID_OK}, {"BU", STRSID_OK},
- {"CA", STRSID_OPT}, {"CG", STRSID_OK}, {"CO", STRSID_OK}, {"DA", STRSID_OPT},
- {"DC", STRSID_OPT}, {"DD", STRSID_OPT}, {"DG", STRSID_OPT}, {"DU", STRSID_OPT},
- {"EA", STRSID_OPT}, {"ED", STRSID_OK}, {"WD", STRSID_OK}, {"PA", STRSID_OPT},
- {"IU", STRSID_OK}, {"LA", STRSID_OK}, {"LG", STRSID_OK}, {"LS", STRSID_OK},
- {"SY", STRSID_OK}, {"NU", STRSID_OK}, {"NO", STRSID_OK}, {"NS", STRSID_OK},
- {"PO", STRSID_OK}, {"PS", STRSID_OK}, {"PU", STRSID_OK}, {"RS", STRSID_OPT},
- {"RD", STRSID_OK}, {"RE", STRSID_OK}, {"RC", STRSID_OK}, {"SA", STRSID_OPT},
- {"SO", STRSID_OK}, {"SU", STRSID_OK}};
-
+ static const struct
+ {
+ const char *str;
+ WELL_KNOWN_SID_TYPE sid_type;
+ BOOL optional;
+ } strsid_table[] = {
+ /* Please keep the list sorted. */
+ { "AC", WinBuiltinAnyPackageSid, TRUE },
+ { "AN", WinAnonymousSid },
+ { "AO", WinBuiltinAccountOperatorsSid },
+ { "AU", WinAuthenticatedUserSid },
+ { "BA", WinBuiltinAdministratorsSid },
+ { "BG", WinBuiltinGuestsSid },
+ { "BO", WinBuiltinBackupOperatorsSid },
+ { "BU", WinBuiltinUsersSid },
+ { "CA", WinAccountCertAdminsSid, TRUE},
+ { "CG", WinCreatorGroupSid },
+ { "CO", WinCreatorOwnerSid },
+ { "DA", WinAccountDomainAdminsSid, TRUE},
+ { "DC", WinAccountComputersSid, TRUE},
+ { "DD", WinAccountControllersSid, TRUE},
+ { "DG", WinAccountDomainGuestsSid, TRUE},
+ { "DU", WinAccountDomainUsersSid, TRUE},
+ { "EA", WinAccountEnterpriseAdminsSid, TRUE},
+ { "ED", WinEnterpriseControllersSid },
+ { "IU", WinInteractiveSid },
+ { "LA", WinAccountAdministratorSid },
+ { "LG", WinAccountGuestSid },
+ { "LS", WinLocalServiceSid },
+ { "NO", WinBuiltinNetworkConfigurationOperatorsSid },
+ { "NS", WinNetworkServiceSid },
+ { "NU", WinNetworkSid },
+ { "PA", WinAccountPolicyAdminsSid, TRUE},
+ { "PO", WinBuiltinPrintOperatorsSid },
+ { "PS", WinSelfSid },
+ { "PU", WinBuiltinPowerUsersSid },
+ { "RC", WinRestrictedCodeSid },
+ { "RD", WinBuiltinRemoteDesktopUsersSid },
+ { "RE", WinBuiltinReplicatorSid },
+ { "RS", WinAccountRasAndIasServersSid, TRUE },
+ { "RU", WinBuiltinPreWindows2000CompatibleAccessSid },
+ { "SA", WinAccountSchemaAdminsSid, TRUE },
+ { "SO", WinBuiltinSystemOperatorsSid },
+ { "SU", WinServiceSid },
+ { "SY", WinLocalSystemSid },
+ { "WD", WinWorldSid },
+ };
+ SID_IDENTIFIER_AUTHORITY domain_ident = { SECURITY_NT_AUTHORITY };
const char noSubAuthStr[] = "S-1-5";
unsigned int i;
- PSID psid = NULL;
+ PSID psid, domain_sid;
SID *pisid;
BOOL r;
- LPSTR str = NULL;
+ LPSTR str;
if( !pConvertStringSidToSidA )
{
@@ -402,7 +428,7 @@ static void test_sid(void)
}
/* string constant format not supported before XP */
- r = pConvertStringSidToSidA(strsid_table[0].str, &psid);
+ r = pConvertStringSidToSidA("AN", &psid);
if(!r)
{
win_skip("String constant format not supported\n");
@@ -410,25 +436,51 @@ static void test_sid(void)
}
LocalFree(psid);
+ AllocateAndInitializeSid(&domain_ident, 4, SECURITY_NT_NON_UNIQUE, 0, 0, 0, 0, 0, 0, 0, &domain_sid);
+
for(i = 0; i < ARRAY_SIZE(strsid_table); i++)
{
- char *temp;
-
SetLastError(0xdeadbeef);
r = pConvertStringSidToSidA(strsid_table[i].str, &psid);
- if (!(strsid_table[i].flags & STRSID_OPT))
+ if (!(strsid_table[i].optional))
{
ok(r, "%s: got %u\n", strsid_table[i].str, GetLastError());
}
if (r)
{
- if ((winetest_debug > 1) && (ConvertSidToStringSidA(psid, &temp)))
+ char buf[SECURITY_MAX_SID_SIZE];
+ char *sid_string, *well_known_sid_string;
+ DWORD n, size;
+
+ /* zero out domain id before comparison to simplify things */
+ if (strsid_table[i].sid_type == WinAccountAdministratorSid ||
+ strsid_table[i].sid_type == WinAccountGuestSid)
{
- trace(" %s: %s\n", strsid_table[i].str, temp);
- LocalFree(temp);
+ for (n = 1; n <= 3; n++)
+ *GetSidSubAuthority(psid, n) = 0;
}
+
+ r = ConvertSidToStringSidA(psid, &sid_string);
+ ok(r, "%s: ConvertSidToStringSid error %u\n", strsid_table[i].str, GetLastError());
+ if (winetest_debug > 1)
+ trace("%s => %s\n", strsid_table[i].str, sid_string);
+
+ size = sizeof(buf);
+ r = pCreateWellKnownSid(strsid_table[i].sid_type, domain_sid, buf, &size);
+ ok(r, "%u: CreateWellKnownSid(%u) error %u\n", i, strsid_table[i].sid_type, GetLastError());
+
+ r = ConvertSidToStringSidA(buf, &well_known_sid_string);
+ ok(r, "%u: ConvertSidToStringSi(%u) error %u\n", i, strsid_table[i].sid_type, GetLastError());
+ if (winetest_debug > 1)
+ trace("%u => %s\n", strsid_table[i].sid_type, well_known_sid_string);
+
+ ok(strcmp(sid_string, well_known_sid_string) == 0,
+ "%u: (%u) expected %s, got %s\n", i, strsid_table[i].sid_type, well_known_sid_string, sid_string);
+
+ LocalFree(well_known_sid_string);
+ LocalFree(sid_string);
LocalFree(psid);
}
else
@@ -439,6 +491,8 @@ static void test_sid(void)
trace(" %s: couldn't be converted\n", strsid_table[i].str);
}
}
+
+ LocalFree(domain_sid);
}
static void test_trustee(void)
@@ -2288,7 +2342,7 @@ static void test_LookupAccountSid(void)
if (pCreateWellKnownSid)
{
trace("Well Known SIDs:\n");
- for (i = 0; i <= 60; i++)
+ for (i = 0; i <= 84; i++)
{
size = SECURITY_MAX_SID_SIZE;
if (pCreateWellKnownSid(i, NULL, &max_sid.sid, &size))
--
2.13.1

View File

@@ -1 +0,0 @@
Fixes: [41934] Assigns the AC abbreviation to WinBuiltinAnyPackageSid

View File

@@ -1,181 +0,0 @@
From 04bb8bf7196efb6f7c0a3c5f7524ac8aefc645b6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 7 Oct 2017 00:52:34 +0200
Subject: wined3d: Add support for depth bias clamping.
---
dlls/d3d11/device.c | 5 ++++-
dlls/wined3d/adapter_gl.c | 3 +++
dlls/wined3d/cs.c | 1 +
dlls/wined3d/state.c | 17 +++++++++++++++--
dlls/wined3d/stateblock.c | 2 ++
dlls/wined3d/utils.c | 1 +
dlls/wined3d/wined3d_gl.h | 1 +
include/wine/wined3d.h | 3 ++-
8 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index e6ba31c..f0ff7b3 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -933,7 +933,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_RSSetState(ID3D11DeviceCon
{
DWORD d;
float f;
- } scale_bias, const_bias;
+ } scale_bias, const_bias, bias_clamp;
TRACE("iface %p, rasterizer_state %p.\n", iface, rasterizer_state);
@@ -945,6 +945,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_RSSetState(ID3D11DeviceCon
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_CULLMODE, WINED3D_CULL_BACK);
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SLOPESCALEDEPTHBIAS, 0);
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DEPTHBIAS, 0);
+ wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DEPTHBIASCLAMP, 0);
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SCISSORTESTENABLE, FALSE);
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_MULTISAMPLEANTIALIAS, FALSE);
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_ANTIALIASEDLINEENABLE, FALSE);
@@ -959,8 +960,10 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_RSSetState(ID3D11DeviceCon
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_CULLMODE, desc->CullMode);
scale_bias.f = desc->SlopeScaledDepthBias;
const_bias.f = desc->DepthBias;
+ bias_clamp.f = desc->DepthBiasClamp;
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SLOPESCALEDEPTHBIAS, scale_bias.d);
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DEPTHBIAS, const_bias.d);
+ wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DEPTHBIASCLAMP, bias_clamp.d);
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SCISSORTESTENABLE, desc->ScissorEnable);
wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_MULTISAMPLEANTIALIAS, desc->MultisampleEnable);
wined3d_device_set_render_state(device->wined3d_device,
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
index 686c79a..dc49c88 100644
--- a/dlls/wined3d/adapter_gl.c
+++ b/dlls/wined3d/adapter_gl.c
@@ -180,6 +180,7 @@ static const struct wined3d_extension_map gl_extension_map[] =
{"GL_EXT_packed_depth_stencil", EXT_PACKED_DEPTH_STENCIL },
{"GL_EXT_packed_float", EXT_PACKED_FLOAT },
{"GL_EXT_point_parameters", EXT_POINT_PARAMETERS },
+ {"GL_EXT_polygon_offset_clamp", EXT_POLYGON_OFFSET_CLAMP },
{"GL_EXT_provoking_vertex", EXT_PROVOKING_VERTEX },
{"GL_EXT_secondary_color", EXT_SECONDARY_COLOR },
{"GL_EXT_stencil_two_side", EXT_STENCIL_TWO_SIDE },
@@ -2473,6 +2474,8 @@ static void load_gl_funcs(struct wined3d_gl_info *gl_info)
/* GL_EXT_point_parameters */
USE_GL_FUNC(glPointParameterfEXT)
USE_GL_FUNC(glPointParameterfvEXT)
+ /* GL_EXT_polygon_offset_clamp */
+ USE_GL_FUNC(glPolygonOffsetClampEXT)
/* GL_EXT_provoking_vertex */
USE_GL_FUNC(glProvokingVertexEXT)
/* GL_EXT_secondary_color */
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index d6bc739..515982c 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -1124,6 +1124,7 @@ static void wined3d_cs_exec_set_depth_stencil_view(struct wined3d_cs *cs, const
device_invalidate_state(device, STATE_RENDER(WINED3D_RS_STENCILENABLE));
device_invalidate_state(device, STATE_RENDER(WINED3D_RS_STENCILWRITEMASK));
device_invalidate_state(device, STATE_RENDER(WINED3D_RS_DEPTHBIAS));
+ device_invalidate_state(device, STATE_RENDER(WINED3D_RS_DEPTHBIASCLAMP));
}
else if (prev && prev->format->depth_bias_scale != op->view->format->depth_bias_scale)
{
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 3b2f845..2dd6ac2 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -1781,10 +1781,11 @@ static void state_depthbias(struct wined3d_context *context, const struct wined3
{
DWORD d;
float f;
- } scale_bias, const_bias;
+ } scale_bias, const_bias, bias_clamp;
scale_bias.d = state->render_states[WINED3D_RS_SLOPESCALEDEPTHBIAS];
const_bias.d = state->render_states[WINED3D_RS_DEPTHBIAS];
+ bias_clamp.d = state->render_states[WINED3D_RS_DEPTHBIASCLAMP];
if (context->d3d_info->wined3d_creation_flags & WINED3D_LEGACY_DEPTH_BIAS)
{
@@ -1811,7 +1812,18 @@ static void state_depthbias(struct wined3d_context *context, const struct wined3
}
gl_info->gl_ops.gl.p_glEnable(GL_POLYGON_OFFSET_FILL);
- gl_info->gl_ops.gl.p_glPolygonOffset(factor, units);
+ if (gl_info->supported[EXT_POLYGON_OFFSET_CLAMP])
+ {
+ GL_EXTCALL(glPolygonOffsetClampEXT(factor, units, bias_clamp.f));
+ checkGLcall("glPolygonOffsetClampEXT(...)");
+ }
+ else
+ {
+ if (bias_clamp.f)
+ WARN("EXT_polygon_offset_clamp extension missing, no support for depth bias clamping.\n");
+
+ gl_info->gl_ops.gl.p_glPolygonOffset(factor, units);
+ }
}
else
{
@@ -4678,6 +4690,7 @@ const struct StateEntryTemplate misc_state_template[] =
{ STATE_RENDER(WINED3D_RS_BLENDFACTOR), { STATE_RENDER(WINED3D_RS_BLENDFACTOR), state_blendfactor }, EXT_BLEND_COLOR },
{ STATE_RENDER(WINED3D_RS_BLENDFACTOR), { STATE_RENDER(WINED3D_RS_BLENDFACTOR), state_blendfactor_w }, WINED3D_GL_EXT_NONE },
{ STATE_RENDER(WINED3D_RS_DEPTHBIAS), { STATE_RENDER(WINED3D_RS_DEPTHBIAS), state_depthbias }, WINED3D_GL_EXT_NONE },
+ { STATE_RENDER(WINED3D_RS_DEPTHBIASCLAMP), { STATE_RENDER(WINED3D_RS_DEPTHBIAS), NULL }, WINED3D_GL_EXT_NONE },
{ STATE_RENDER(WINED3D_RS_ZVISIBLE), { STATE_RENDER(WINED3D_RS_ZVISIBLE), state_zvisible }, WINED3D_GL_EXT_NONE },
/* Samplers */
{ STATE_SAMPLER(0), { STATE_SAMPLER(0), sampler }, WINED3D_GL_EXT_NONE },
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index b4d1751..093c740 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -1257,6 +1257,8 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
state->render_states[WINED3D_RS_BLENDFACTOR] = 0xffffffff;
state->render_states[WINED3D_RS_SRGBWRITEENABLE] = 0;
state->render_states[WINED3D_RS_DEPTHBIAS] = 0;
+ tmpfloat.f = 0.0f;
+ state->render_states[WINED3D_RS_DEPTHBIASCLAMP] = tmpfloat.d;
state->render_states[WINED3D_RS_WRAP8] = 0;
state->render_states[WINED3D_RS_WRAP9] = 0;
state->render_states[WINED3D_RS_WRAP10] = 0;
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 861f169..b46f67f 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -4652,6 +4652,7 @@ const char *debug_d3drenderstate(enum wined3d_render_state state)
D3DSTATE_TO_STR(WINED3D_RS_BLENDFACTOR);
D3DSTATE_TO_STR(WINED3D_RS_SRGBWRITEENABLE);
D3DSTATE_TO_STR(WINED3D_RS_DEPTHBIAS);
+ D3DSTATE_TO_STR(WINED3D_RS_DEPTHBIASCLAMP);
D3DSTATE_TO_STR(WINED3D_RS_WRAP8);
D3DSTATE_TO_STR(WINED3D_RS_WRAP9);
D3DSTATE_TO_STR(WINED3D_RS_WRAP10);
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index 525c298..883faaa 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -164,6 +164,7 @@ enum wined3d_gl_extension
EXT_PACKED_DEPTH_STENCIL,
EXT_PACKED_FLOAT,
EXT_POINT_PARAMETERS,
+ EXT_POLYGON_OFFSET_CLAMP,
EXT_PROVOKING_VERTEX,
EXT_SECONDARY_COLOR,
EXT_STENCIL_TWO_SIDE,
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 239ccd8..884e824 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -399,8 +399,9 @@ enum wined3d_render_state
WINED3D_RS_SRCBLENDALPHA = 207,
WINED3D_RS_DESTBLENDALPHA = 208,
WINED3D_RS_BLENDOPALPHA = 209,
+ WINED3D_RS_DEPTHBIASCLAMP = 210,
};
-#define WINEHIGHEST_RENDER_STATE WINED3D_RS_BLENDOPALPHA
+#define WINEHIGHEST_RENDER_STATE WINED3D_RS_DEPTHBIASCLAMP
enum wined3d_blend
{
--
2.7.4

View File

@@ -1,178 +0,0 @@
From 23044a3ed53cfe0c8a35c5cc19d51913e1523c51 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Thu, 17 May 2018 09:29:08 -0500
Subject: [PATCH] d3d10core/tests: Add test for depth bias clamp.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
---
dlls/d3d10core/tests/d3d10core.c | 126 ++++++++++++++++++-------------
1 file changed, 74 insertions(+), 52 deletions(-)
diff --git a/dlls/d3d10core/tests/d3d10core.c b/dlls/d3d10core/tests/d3d10core.c
index e675c12a39e..2100a6611e5 100644
--- a/dlls/d3d10core/tests/d3d10core.c
+++ b/dlls/d3d10core/tests/d3d10core.c
@@ -14957,10 +14957,10 @@ static void test_depth_bias(void)
struct resource_readback rb;
ID3D10DepthStencilView *dsv;
unsigned int expected_value;
+ unsigned int x, y, i, j, k;
ID3D10RasterizerState *rs;
ID3D10Texture2D *texture;
unsigned int format_idx;
- unsigned int x, y, i, j;
unsigned int shift = 0;
ID3D10Device *device;
float *depth_values;
@@ -14987,6 +14987,10 @@ static void test_depth_bias(void)
-10000, -1000, -100, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 50, 100, 200, 500, 1000, 10000,
};
+ static const float bias_clamp_tests[] =
+ {
+ 0.0f, -0.00001f, 0.00001f
+ };
static const float quad_slopes[] =
{
0.0f, 0.5f, 1.0f
@@ -15079,68 +15083,86 @@ static void test_depth_bias(void)
for (j = 0; j < ARRAY_SIZE(bias_tests); ++j)
{
rasterizer_desc.DepthBias = bias_tests[j];
- ID3D10Device_CreateRasterizerState(device, &rasterizer_desc, &rs);
- ok(SUCCEEDED(hr), "Failed to create rasterizer state, hr %#x.\n", hr);
- ID3D10Device_RSSetState(device, rs);
- ID3D10Device_ClearDepthStencilView(device, dsv, D3D10_CLEAR_DEPTH, 1.0f, 0);
- draw_quad(&test_context);
- switch (format)
- {
- case DXGI_FORMAT_D32_FLOAT:
- bias = rasterizer_desc.DepthBias * pow(2.0f, quads[i].exponent - 23.0f);
- depth = min(max(0.0f, quads[i].z + bias), 1.0f);
-
- check_texture_float(texture, depth, 2);
- break;
- case DXGI_FORMAT_D24_UNORM_S8_UINT:
- r = 1.0f / 16777215.0f;
- bias = rasterizer_desc.DepthBias * r;
- depth = min(max(0.0f, quads[i].z + bias), 1.0f);
- get_texture_readback(texture, 0, &rb);
- for (y = 0; y < texture_desc.Height; ++y)
- {
- expected_value = depth * 16777215.0f + 0.5f;
- for (x = 0; x < texture_desc.Width; ++x)
+ for (k = 0; k < ARRAY_SIZE(bias_clamp_tests); ++k)
+ {
+ rasterizer_desc.DepthBiasClamp = bias_clamp_tests[k];
+ ID3D10Device_CreateRasterizerState(device, &rasterizer_desc, &rs);
+ ok(SUCCEEDED(hr), "Failed to create rasterizer state, hr %#x.\n", hr);
+ ID3D10Device_RSSetState(device, rs);
+ ID3D10Device_ClearDepthStencilView(device, dsv, D3D10_CLEAR_DEPTH, 1.0f, 0);
+ draw_quad(&test_context);
+ switch (format)
+ {
+ case DXGI_FORMAT_D32_FLOAT:
+ bias = rasterizer_desc.DepthBias * pow(2.0f, quads[i].exponent - 23.0f);
+ if (rasterizer_desc.DepthBiasClamp > 0)
+ bias = min(bias, rasterizer_desc.DepthBiasClamp);
+ if (rasterizer_desc.DepthBiasClamp < 0)
+ bias = max(bias, rasterizer_desc.DepthBiasClamp);
+ depth = min(max(0.0f, quads[i].z + bias), 1.0f);
+
+ check_texture_float(texture, depth, 2);
+ break;
+ case DXGI_FORMAT_D24_UNORM_S8_UINT:
+ r = 1.0f / 16777215.0f;
+ bias = rasterizer_desc.DepthBias * r;
+ if (rasterizer_desc.DepthBiasClamp > 0)
+ bias = min(bias, rasterizer_desc.DepthBiasClamp);
+ if (rasterizer_desc.DepthBiasClamp < 0)
+ bias = max(bias, rasterizer_desc.DepthBiasClamp);
+ depth = min(max(0.0f, quads[i].z + bias), 1.0f);
+
+ get_texture_readback(texture, 0, &rb);
+ for (y = 0; y < texture_desc.Height; ++y)
{
- u32 = get_readback_data(&rb, x, y, sizeof(*u32));
- u32_value = *u32 >> shift;
- ok(abs(u32_value - expected_value) <= 1,
- "Got value %#x (%.8e), expected %#x (%.8e).\n",
- u32_value, u32_value / 16777215.0f,
- expected_value, expected_value / 16777215.0f);
+ expected_value = depth * 16777215.0f + 0.5f;
+ for (x = 0; x < texture_desc.Width; ++x)
+ {
+ u32 = get_readback_data(&rb, x, y, sizeof(*u32));
+ u32_value = *u32 >> shift;
+ ok(abs(u32_value - expected_value) <= 1,
+ "Got value %#x (%.8e), expected %#x (%.8e).\n",
+ u32_value, u32_value / 16777215.0f,
+ expected_value, expected_value / 16777215.0f);
+ }
}
- }
- release_resource_readback(&rb);
- break;
- case DXGI_FORMAT_D16_UNORM:
- r = 1.0f / 65535.0f;
- bias = rasterizer_desc.DepthBias * r;
- depth = min(max(0.0f, quads[i].z + bias), 1.0f);
-
- get_texture_readback(texture, 0, &rb);
- for (y = 0; y < texture_desc.Height; ++y)
- {
- expected_value = depth * 65535.0f + 0.5f;
- for (x = 0; x < texture_desc.Width; ++x)
+ release_resource_readback(&rb);
+ break;
+ case DXGI_FORMAT_D16_UNORM:
+ r = 1.0f / 65535.0f;
+ bias = rasterizer_desc.DepthBias * r;
+ if (rasterizer_desc.DepthBiasClamp > 0)
+ bias = min(bias, rasterizer_desc.DepthBiasClamp);
+ if (rasterizer_desc.DepthBiasClamp < 0)
+ bias = max(bias, rasterizer_desc.DepthBiasClamp);
+ depth = min(max(0.0f, quads[i].z + bias), 1.0f);
+
+ get_texture_readback(texture, 0, &rb);
+ for (y = 0; y < texture_desc.Height; ++y)
{
- u16 = get_readback_data(&rb, x, y, sizeof(*u16));
- ok(abs(*u16 - expected_value) <= 1,
- "Got value %#x (%.8e), expected %#x (%.8e).\n",
- *u16, *u16 / 65535.0f, expected_value, expected_value / 65535.0f);
+ expected_value = depth * 65535.0f + 0.5f;
+ for (x = 0; x < texture_desc.Width; ++x)
+ {
+ u16 = get_readback_data(&rb, x, y, sizeof(*u16));
+ ok(abs(*u16 - expected_value) <= 1,
+ "Got value %#x (%.8e), expected %#x (%.8e).\n",
+ *u16, *u16 / 65535.0f, expected_value, expected_value / 65535.0f);
+ }
}
- }
- release_resource_readback(&rb);
- break;
- default:
- break;
+ release_resource_readback(&rb);
+ break;
+ default:
+ break;
+ }
+ ID3D10RasterizerState_Release(rs);
}
- ID3D10RasterizerState_Release(rs);
}
}
/* SlopeScaledDepthBias */
rasterizer_desc.DepthBias = 0;
+ rasterizer_desc.DepthBiasClamp = 0.0f;
for (i = 0; i < ARRAY_SIZE(quad_slopes); ++i)
{
for (j = 0; j < ARRAY_SIZE(vertices); ++j)
--
2.18.0

View File

@@ -1 +0,0 @@
Fixes: [43848] Implement support for depth bias clamping

View File

@@ -1,76 +0,0 @@
From b47be04e640f03748edc8a5e6693c37df2a68d27 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 30 Aug 2015 08:38:30 +0200
Subject: kernel32: Allow non-nullterminated string as working directory in
create_startup_info.
---
dlls/kernel32/process.c | 31 ++++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index a40f124..6622fcb 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -1629,7 +1629,7 @@ static startup_info_t *create_startup_info( LPCWSTR filename, LPCWSTR cmdline,
const RTL_USER_PROCESS_PARAMETERS *cur_params;
const WCHAR *title;
startup_info_t *info;
- DWORD size;
+ DWORD size, cur_dir_length;
void *ptr;
UNICODE_STRING newdir;
WCHAR imagepath[MAX_PATH];
@@ -1643,24 +1643,27 @@ static startup_info_t *create_startup_info( LPCWSTR filename, LPCWSTR cmdline,
cur_params = NtCurrentTeb()->Peb->ProcessParameters;
newdir.Buffer = NULL;
- if (cur_dir)
+ if (cur_dir && RtlDosPathNameToNtPathName_U( cur_dir, &newdir, NULL, NULL ))
{
- if (RtlDosPathNameToNtPathName_U( cur_dir, &newdir, NULL, NULL ))
- cur_dir = newdir.Buffer + 4; /* skip \??\ prefix */
- else
- cur_dir = NULL;
+ cur_dir = newdir.Buffer + 4; /* skip \??\ prefix */
+ cur_dir_length = newdir.Length - 4 * sizeof(WCHAR);
}
- if (!cur_dir)
+ else if (NtCurrentTeb()->Tib.SubSystemTib) /* FIXME: hack */
{
- if (NtCurrentTeb()->Tib.SubSystemTib) /* FIXME: hack */
- cur_dir = ((WIN16_SUBSYSTEM_TIB *)NtCurrentTeb()->Tib.SubSystemTib)->curdir.DosPath.Buffer;
- else
- cur_dir = cur_params->CurrentDirectory.DosPath.Buffer;
+ const UNICODE_STRING *dir = &((WIN16_SUBSYSTEM_TIB *)NtCurrentTeb()->Tib.SubSystemTib)->curdir.DosPath;
+ cur_dir = dir->Buffer;
+ cur_dir_length = dir->Length;
+ }
+ else
+ {
+ const UNICODE_STRING *dir = &cur_params->CurrentDirectory.DosPath;
+ cur_dir = dir->Buffer;
+ cur_dir_length = dir->Length;
}
title = startup->lpTitle ? startup->lpTitle : imagepath;
size = sizeof(*info);
- size += strlenW( cur_dir ) * sizeof(WCHAR);
+ size += cur_dir_length;
size += cur_params->DllPath.Length;
size += strlenW( imagepath ) * sizeof(WCHAR);
size += strlenW( cmdline ) * sizeof(WCHAR);
@@ -1717,7 +1720,9 @@ static startup_info_t *create_startup_info( LPCWSTR filename, LPCWSTR cmdline,
info->show = startup->wShowWindow;
ptr = info + 1;
- info->curdir_len = append_string( &ptr, cur_dir );
+ info->curdir_len = cur_dir_length;
+ memcpy( ptr, cur_dir, cur_dir_length );
+ ptr = (char *)ptr + cur_dir_length;
info->dllpath_len = cur_params->DllPath.Length;
memcpy( ptr, cur_params->DllPath.Buffer, cur_params->DllPath.Length );
ptr = (char *)ptr + cur_params->DllPath.Length;
--
2.5.0

View File

@@ -1 +0,0 @@
Fixes: Allow non-nullterminated string as working directory in kernel32.create_startup_info

View File

@@ -0,0 +1,28 @@
From 759be4301daf53d4746e3444f285bbcec5dc5eb3 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 12 Oct 2018 13:27:00 +1100
Subject: [PATCH] kernel32: Disable export GetQueuedCompletionStatusEx
This is causing a regression with steam not being able to login.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45948
---
dlls/kernel32/kernel32.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index e17ee97..0716854 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -804,7 +804,7 @@
@ stdcall GetProfileStringA(str str str ptr long)
@ stdcall GetProfileStringW(wstr wstr wstr ptr long)
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long)
-@ stdcall GetQueuedCompletionStatusEx(ptr ptr long ptr long long)
+#@ stdcall GetQueuedCompletionStatusEx(ptr ptr long ptr long long)
@ stub -i386 GetSLCallbackTarget
@ stub -i386 GetSLCallbackTemplate
@ stdcall GetShortPathNameA(str ptr long)
--
1.9.1

View File

@@ -0,0 +1 @@
Fixes: [45948] Disbale export GetQueuedCompletionStatusEx to stop regression with Steam.

View File

@@ -1,14 +1,14 @@
From f77e3080ec1b930e5ad669fb863d03330f956afc Mon Sep 17 00:00:00 2001
From b7caf681c5fca6f1f6b1e089fc2ecddc47052820 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Tue, 15 Nov 2016 12:41:46 +0800
Subject: kernel32/tests: Fix compilation with PSDK.
Subject: [PATCH] kernel32/tests: Fix compilation with PSDK.
---
dlls/kernel32/tests/file.c | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index 5d21343..464da86 100644
index 19c1c7a..19e7148 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -38,9 +38,7 @@
@@ -21,16 +21,16 @@ index 5d21343..464da86 100644
static HANDLE (WINAPI *pFindFirstFileExA)(LPCSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
static BOOL (WINAPI *pReplaceFileA)(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID);
@@ -60,6 +58,8 @@ static NTSTATUS (WINAPI *pNtCreateFile)(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES
static BOOL (WINAPI *pRtlDosPathNameToNtPathName_U)(LPCWSTR, PUNICODE_STRING, PWSTR*, CURDIR*);
@@ -61,6 +59,8 @@ static BOOL (WINAPI *pRtlDosPathNameToNtPathName_U)(LPCWSTR, PUNICODE_STRING, PW
static NTSTATUS (WINAPI *pRtlAnsiStringToUnicodeString)(PUNICODE_STRING, PCANSI_STRING, BOOLEAN);
static BOOL (WINAPI *pSetFileInformationByHandle)(HANDLE, FILE_INFO_BY_HANDLE_CLASS, void*, DWORD);
static BOOL (WINAPI *pGetQueuedCompletionStatusEx)(HANDLE, OVERLAPPED_ENTRY*, ULONG, ULONG*, DWORD, BOOL);
+static void (WINAPI *pRtlInitAnsiString)(PANSI_STRING,PCSZ);
+static void (WINAPI *pRtlFreeUnicodeString)(PUNICODE_STRING);
static const char filename[] = "testfile.xxx";
static const char sillytext[] =
@@ -90,6 +90,8 @@ static void InitFunctionPointers(void)
@@ -91,6 +91,8 @@ static void InitFunctionPointers(void)
pNtCreateFile = (void *)GetProcAddress(hntdll, "NtCreateFile");
pRtlDosPathNameToNtPathName_U = (void *)GetProcAddress(hntdll, "RtlDosPathNameToNtPathName_U");
pRtlAnsiStringToUnicodeString = (void *)GetProcAddress(hntdll, "RtlAnsiStringToUnicodeString");
@@ -39,7 +39,7 @@ index 5d21343..464da86 100644
pFindFirstFileExA=(void*)GetProcAddress(hkernel32, "FindFirstFileExA");
pReplaceFileA=(void*)GetProcAddress(hkernel32, "ReplaceFileA");
@@ -268,7 +270,8 @@ static void get_nt_pathW( const char *name, UNICODE_STRING *nameW )
@@ -270,7 +272,8 @@ static void get_nt_pathW( const char *name, UNICODE_STRING *nameW )
ANSI_STRING str;
NTSTATUS status;
BOOLEAN ret;
@@ -49,7 +49,7 @@ index 5d21343..464da86 100644
status = pRtlAnsiStringToUnicodeString( &strW, &str, TRUE );
ok( !status, "RtlAnsiStringToUnicodeString failed with %08x\n", status );
@@ -276,7 +279,7 @@ static void get_nt_pathW( const char *name, UNICODE_STRING *nameW )
@@ -278,7 +281,7 @@ static void get_nt_pathW( const char *name, UNICODE_STRING *nameW )
ret = pRtlDosPathNameToNtPathName_U( strW.Buffer, nameW, NULL, NULL );
ok( ret, "RtlDosPathNameToNtPathName_U failed\n" );
@@ -58,7 +58,7 @@ index 5d21343..464da86 100644
}
static void test__lcreat( void )
@@ -352,30 +355,30 @@ static void test__lcreat( void )
@@ -354,30 +357,30 @@ static void test__lcreat( void )
attr.SecurityDescriptor = NULL;
attr.SecurityQualityOfService = NULL;
@@ -94,7 +94,7 @@ index 5d21343..464da86 100644
todo_wine
ok( GetFileAttributesA( filename ) != INVALID_FILE_ATTRIBUTES, "file was deleted\n" );
@@ -4722,7 +4725,7 @@ static void test_SetFileInformationByHandle(void)
@@ -4999,7 +5002,7 @@ static void test_SetFileInformationByHandle(void)
{
FILE_ATTRIBUTE_TAG_INFO fileattrinfo = { 0 };
FILE_REMOTE_PROTOCOL_INFO protinfo = { 0 };
@@ -104,5 +104,5 @@ index 5d21343..464da86 100644
FILE_DISPOSITION_INFO dispinfo;
char tempFileName[MAX_PATH];
--
2.9.0
1.9.1

View File

@@ -1,18 +1,18 @@
From 3b075f8bd5e11c89d3c5c86350a492b21a8f2437 Mon Sep 17 00:00:00 2001
From 79b09aa1d8a91ae923d9f951e1c316492a5edb39 Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Fri, 17 Apr 2015 00:59:02 +0800
Subject: ntdll/tests: Added tests to set disposition on file which is mapped
to memory
Subject: [PATCH] ntdll/tests: Added tests to set disposition on file which is
mapped to memory
---
dlls/ntdll/tests/file.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 42eece5..34ece75 100644
index 0f4281d..cafafa1 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -2618,12 +2618,13 @@ static void test_file_disposition_information(void)
@@ -2695,12 +2695,13 @@ static void test_file_disposition_information(void)
{
char tmp_path[MAX_PATH], buffer[MAX_PATH + 16];
DWORD dirpos;
@@ -27,10 +27,10 @@ index 42eece5..34ece75 100644
GetTempPathA( MAX_PATH, tmp_path );
@@ -2946,6 +2947,74 @@ todo_wine
todo_wine
ok( !fileDeleted, "Directory shouldn't have been deleted\n" );
RemoveDirectoryA( buffer );
@@ -3049,6 +3050,74 @@ todo_wine
fileDeleted = RemoveDirectoryA( buffer );
todo_wine
ok( fileDeleted, "Directory should have been deleted\n" );
+
+ /* cannot set disposition on file with file mapping opened */
+ GetTempFileNameA( tmp_path, "dis", 0, buffer );
@@ -101,7 +101,7 @@ index 42eece5..34ece75 100644
+ DeleteFileA( buffer );
}
static void test_iocompletion(void)
static void test_file_name_information(void)
--
2.7.4
1.9.1

View File

@@ -1,8 +1,8 @@
From adecc0a88655710360130ba8e2c7f61d855e9d8b Mon Sep 17 00:00:00 2001
From 28df8b2cf6f5a038f3449f78e8809ae0cf10d345 Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Fri, 17 Apr 2015 18:39:59 +0800
Subject: server: Do not allow to set disposition on file which has a file
mapping.
Subject: [PATCH] server: Do not allow to set disposition on file which has a
file mapping.
---
dlls/ntdll/tests/file.c | 2 --
@@ -10,10 +10,10 @@ Subject: server: Do not allow to set disposition on file which has a file
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 740e44a..99aaa37 100644
index cafafa1..5dbf6d5 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -2279,7 +2279,6 @@ static void test_file_disposition_information(void)
@@ -3059,7 +3059,6 @@ todo_wine
ok( mapping != NULL, "failed to create file mapping\n");
fdi.DoDeleteFile = TRUE;
res = pNtSetInformationFile( handle, &io, &fdi, sizeof fdi, FileDispositionInformation );
@@ -21,7 +21,7 @@ index 740e44a..99aaa37 100644
ok( res == STATUS_CANNOT_DELETE, "unexpected FileDispositionInformation result (expected STATUS_CANNOT_DELETE, got %x)\n", res );
CloseHandle( handle );
fileDeleted = GetFileAttributesA( buffer ) == INVALID_FILE_ATTRIBUTES && GetLastError() == ERROR_FILE_NOT_FOUND;
@@ -2313,7 +2312,6 @@ static void test_file_disposition_information(void)
@@ -3093,7 +3092,6 @@ todo_wine
CloseHandle( mapping );
fdi.DoDeleteFile = TRUE;
res = pNtSetInformationFile( handle, &io, &fdi, sizeof fdi, FileDispositionInformation );
@@ -30,10 +30,10 @@ index 740e44a..99aaa37 100644
CloseHandle( handle );
fileDeleted = GetFileAttributesA( buffer ) == INVALID_FILE_ATTRIBUTES && GetLastError() == ERROR_FILE_NOT_FOUND;
diff --git a/server/fd.c b/server/fd.c
index 5130b44..04891e7 100644
index 6118f52..25bb24d 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -2218,6 +2218,7 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl
@@ -2221,6 +2221,7 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl
static void set_fd_disposition( struct fd *fd, int unlink )
{
struct stat st;
@@ -41,7 +41,7 @@ index 5130b44..04891e7 100644
if (!fd->inode)
{
@@ -2251,6 +2252,17 @@ static void set_fd_disposition( struct fd *fd, int unlink )
@@ -2254,6 +2255,17 @@ static void set_fd_disposition( struct fd *fd, int unlink )
return;
}
@@ -60,5 +60,5 @@ index 5130b44..04891e7 100644
}
--
2.5.0
1.9.1

View File

@@ -1,38 +0,0 @@
From bb6a297b0f0ba510954fd32fc5d1a1f9139e5536 Mon Sep 17 00:00:00 2001
From: Andrew Wesie <awesie@gmail.com>
Date: Mon, 23 Jul 2018 19:30:01 -0700
Subject: [PATCH] ntdll: Add RtlSetUnhandledExceptionFilter stub.
---
dlls/ntdll/exception.c | 5 +++++
dlls/ntdll/ntdll.spec | 1 +
2 files changed, 6 insertions(+)
diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
index f853810..f82b6b4 100644
--- a/dlls/ntdll/exception.c
+++ b/dlls/ntdll/exception.c
@@ -325,3 +325,8 @@ void __wine_spec_unimplemented_stub( const char *module, const char *function )
record.ExceptionInformation[1] = (ULONG_PTR)function;
for (;;) RtlRaiseException( &record );
}
+
+void WINAPI RtlSetUnhandledExceptionFilter( void *handler )
+{
+ FIXME( "(%p) stub!\n", handler );
+}
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index d321c44..72437b1 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -900,6 +900,7 @@
# @ stub RtlSetThreadPoolStartFunc
@ stdcall RtlSetTimeZoneInformation(ptr)
# @ stub RtlSetTimer
+@ stdcall RtlSetUnhandledExceptionFilter(ptr)
@ stub RtlSetUnicodeCallouts
@ stub RtlSetUserFlagsHeap
@ stub RtlSetUserValueHeap
--
1.9.1

View File

@@ -1 +0,0 @@
Fixes: [45566] League of Legends 8.12+ needs ntdll.RtlSetUnhandledExceptionFilter stub

View File

@@ -1,4 +1,4 @@
From 235e57cb0305f1e9a1184318f74f897d527b24cc Mon Sep 17 00:00:00 2001
From 40ccadf41bd61db2af9fb0b25e52384d859bbb82 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: [PATCH] ntdll: Create thread to update user_shared_data time values
@@ -6,14 +6,14 @@ Subject: [PATCH] ntdll: Create thread to update user_shared_data time values
---
dlls/kernel32/cpu.c | 4 +--
dlls/ntdll/loader.c | 31 ++++++++++++++++++++++
dlls/ntdll/ntdll_misc.h | 3 +++
dlls/ntdll/thread.c | 70 ++++++++++++++++++++++++++++++++++++++++++++-----
dlls/ntdll/virtual.c | 17 ++++++++++++
dlls/ntdll/loader.c | 31 ++++++++++++++++++
dlls/ntdll/ntdll_misc.h | 3 ++
dlls/ntdll/thread.c | 70 ++++++++++++++++++++++++++++++++++++-----
dlls/ntdll/virtual.c | 17 ++++++++++
5 files changed, 116 insertions(+), 9 deletions(-)
diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c
index 2a15dadbe6..50b26fff9f 100644
index a8f014c6efd..e2780aa52fc 100644
--- a/dlls/kernel32/cpu.c
+++ b/dlls/kernel32/cpu.c
@@ -46,7 +46,7 @@
@@ -35,10 +35,10 @@ index 2a15dadbe6..50b26fff9f 100644
return FALSE;
}
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 773f95e059..4d0267f0a6 100644
index 3e95e517469..cceb6b0b4bb 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -3272,6 +3272,36 @@ static void load_global_options(void)
@@ -3436,6 +3436,36 @@ static void load_global_options(void)
}
@@ -75,7 +75,7 @@ index 773f95e059..4d0267f0a6 100644
/******************************************************************
* LdrInitializeThunk (NTDLL.@)
*
@@ -3302,6 +3332,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
@@ -3465,6 +3495,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 773f95e059..4d0267f0a6 100644
virtual_set_large_address_space();
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index 8624399354..7e5439dec9 100644
index a723f907567..c71d5e1dd1a 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -190,6 +190,9 @@ extern void VIRTUAL_SetForceExec( BOOL enable ) DECLSPEC_HIDDEN;
@@ -189,6 +189,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 8624399354..7e5439dec9 100644
/* completion */
extern NTSTATUS NTDLL_AddCompletion( HANDLE hFile, ULONG_PTR CompletionValue,
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
index ff14a5e757..44ffa9d733 100644
index 9fd44222d42..d8b4032195b 100644
--- a/dlls/ntdll/thread.c
+++ b/dlls/ntdll/thread.c
@@ -44,6 +44,7 @@
@@ -119,8 +119,8 @@ index ff14a5e757..44ffa9d733 100644
+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;
@@ -360,18 +363,71 @@ static ULONG_PTR get_image_addr(void)
void (WINAPI *kernel32_start_process)(LPTHREAD_START_ROUTINE,void*) = NULL;
@@ -358,18 +361,71 @@ static ULONG_PTR get_image_addr(void)
*/
BYTE* CDECL __wine_user_shared_data(void)
{
@@ -197,7 +197,7 @@ index ff14a5e757..44ffa9d733 100644
/***********************************************************************
* thread_init
*
@@ -403,7 +459,7 @@ HANDLE thread_init(void)
@@ -400,7 +456,7 @@ void thread_init(void)
MESSAGE( "wine: failed to map the shared user data: %08x\n", status );
exit(1);
}
@@ -207,7 +207,7 @@ index ff14a5e757..44ffa9d733 100644
/* allocate and initialize the PEB */
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 8303a03eba..7d7149732f 100644
index 384ea82c1cf..7dad0c89ab1 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -2013,6 +2013,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
@@ -243,5 +243,5 @@ index 8303a03eba..7d7149732f 100644
}
--
2.16.1
2.19.1

Some files were not shown because too many files have changed in this diff Show More