diff --git a/patches/advapi32-Token_Integrity_Level/0009-kernel32-Implement-CreateProcessInternalW.patch b/patches/advapi32-Token_Integrity_Level/0009-kernel32-Implement-CreateProcessInternalW.patch index 41c60b06..11f15769 100644 --- a/patches/advapi32-Token_Integrity_Level/0009-kernel32-Implement-CreateProcessInternalW.patch +++ b/patches/advapi32-Token_Integrity_Level/0009-kernel32-Implement-CreateProcessInternalW.patch @@ -1,4 +1,4 @@ -From 45713db2d90bd8833415ad2af1920cc792767535 Mon Sep 17 00:00:00 2001 +From 6dc2138136a0699c8e8d1337b646a09b93cd8b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 5 Aug 2017 04:02:16 +0200 Subject: [PATCH] kernel32: Implement CreateProcessInternalW. @@ -11,7 +11,7 @@ Subject: [PATCH] kernel32: Implement CreateProcessInternalW. 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec -index de6f007..a3607d1 100644 +index cb9c73a..98d5000 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -315,7 +315,7 @@ @@ -24,10 +24,10 @@ index de6f007..a3607d1 100644 @ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) @ stdcall CreateRemoteThread(long ptr long ptr long long ptr) diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c -index f568022..e270ca7 100644 +index 658a0b1..15460aa 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c -@@ -2438,12 +2438,13 @@ static LPWSTR get_file_name( LPCWSTR appname, LPWSTR cmdline, LPWSTR buffer, +@@ -2588,12 +2588,13 @@ static LPWSTR get_file_name( LPCWSTR appname, LPWSTR cmdline, LPWSTR buffer, return ret; } @@ -47,17 +47,17 @@ index f568022..e270ca7 100644 { BOOL retv = FALSE; HANDLE hFile = 0; -@@ -2456,6 +2457,9 @@ static BOOL create_process_impl( LPCWSTR app_name, LPWSTR cmd_line, LPSECURITY_A +@@ -2608,6 +2609,9 @@ static BOOL create_process_impl( LPCWSTR app_name, LPWSTR cmd_line, LPSECURITY_A TRACE("app %s cmdline %s\n", debugstr_w(app_name), debugstr_w(cmd_line) ); + if (token) FIXME("Creating a process with a token is not yet implemented\n"); + 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, &binary_info ))) + if (!(tidy_cmdline = get_file_name( app_name, cmd_line, name, ARRAY_SIZE( name ), &hFile, &is_64bit ))) return FALSE; -@@ -2607,8 +2611,8 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA( LPCSTR app_name, LPSTR cmd_line, L + if (hFile == INVALID_HANDLE_VALUE) goto done; +@@ -2774,8 +2778,8 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA( LPCSTR app_name, LPSTR cmd_line, L FIXME("StartupInfo.lpReserved is used, please report (%s)\n", debugstr_a(startup_info->lpReserved)); @@ -68,7 +68,7 @@ index f568022..e270ca7 100644 done: HeapFree( GetProcessHeap(), 0, app_nameW ); HeapFree( GetProcessHeap(), 0, cmd_lineW ); -@@ -2627,8 +2631,8 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW( LPCWSTR app_name, LPWSTR cmd_line, +@@ -2794,8 +2798,8 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW( LPCWSTR app_name, LPWSTR cmd_line, LPVOID env, LPCWSTR cur_dir, LPSTARTUPINFOW startup_info, LPPROCESS_INFORMATION info ) { @@ -80,7 +80,7 @@ index f568022..e270ca7 100644 diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec -index fb7fafe..9d6c5f9 100644 +index 7d8439f..cfc3bec 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -209,7 +209,7 @@ @@ -93,10 +93,10 @@ index fb7fafe..9d6c5f9 100644 @ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread @ stdcall CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr) kernel32.CreateRemoteThreadEx diff --git a/include/winbase.h b/include/winbase.h -index 667df96..b77bced 100644 +index de52e5a..99e761e 100644 --- a/include/winbase.h +++ b/include/winbase.h -@@ -1856,6 +1856,7 @@ WINBASEAPI BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTE +@@ -1863,6 +1863,7 @@ WINBASEAPI BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTE WINADVAPI BOOL WINAPI CreateProcessAsUserA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION); WINADVAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION); #define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser) @@ -105,5 +105,5 @@ index 667df96..b77bced 100644 WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD); WINBASEAPI HANDLE WINAPI CreateRemoteThreadEx(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPPROC_THREAD_ATTRIBUTE_LIST,LPDWORD); -- -1.9.1 +2.7.4 diff --git a/patches/advapi32-Token_Integrity_Level/0010-server-Implement-support-for-creating-processes-usin.patch b/patches/advapi32-Token_Integrity_Level/0010-server-Implement-support-for-creating-processes-usin.patch index 22b84135..4884c695 100644 --- a/patches/advapi32-Token_Integrity_Level/0010-server-Implement-support-for-creating-processes-usin.patch +++ b/patches/advapi32-Token_Integrity_Level/0010-server-Implement-support-for-creating-processes-usin.patch @@ -1,4 +1,4 @@ -From 17a372b226e57f859162779010ff2bec5bddec0f Mon Sep 17 00:00:00 2001 +From f57639dc3da18dbb89889e81d274964fec682d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= 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 8acf921..5129dce 100644 +index 15460aa..60d7cea 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c -@@ -2027,7 +2027,7 @@ static NTSTATUS alloc_object_attributes( const SECURITY_ATTRIBUTES *attr, struct +@@ -2203,7 +2203,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,7 +27,7 @@ index 8acf921..5129dce 100644 LPCWSTR cur_dir, LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa, BOOL inherit, DWORD flags, LPSTARTUPINFOW startup, LPPROCESS_INFORMATION info, LPCSTR unixdir, -@@ -2140,6 +2140,7 @@ static BOOL create_process( HANDLE hFile, LPCWSTR filename, LPWSTR cmd_line, LPW +@@ -2316,6 +2316,7 @@ static BOOL create_process( HANDLE hFile, LPCWSTR filename, LPWSTR cmd_line, LPW req->access = PROCESS_ALL_ACCESS; req->cpu = cpu; req->info_size = startup_info_size; @@ -35,7 +35,7 @@ index 8acf921..5129dce 100644 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) ); -@@ -2256,7 +2257,7 @@ error: +@@ -2432,7 +2433,7 @@ error: * * Create a new VDM process for a 16-bit or DOS application. */ @@ -44,16 +44,16 @@ index 8acf921..5129dce 100644 LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa, BOOL inherit, DWORD flags, LPSTARTUPINFOW startup, LPPROCESS_INFORMATION info, LPCSTR unixdir, -@@ -2280,7 +2281,7 @@ static BOOL create_vdm_process( LPCWSTR filename, LPWSTR cmd_line, LPWSTR env, L +@@ -2456,7 +2457,7 @@ static BOOL create_vdm_process( LPCWSTR filename, LPWSTR cmd_line, LPWSTR env, L return FALSE; } sprintfW(new_cmd_line, argsW, winevdmW, buffer, cmd_line); - 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, - flags, startup, info, unixdir, binary_info, exec_only ); + flags, startup, info, unixdir, pe_info, exec_only ); HeapFree( GetProcessHeap(), 0, new_cmd_line ); return ret; -@@ -2292,7 +2293,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 8acf921..5129dce 100644 LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa, BOOL inherit, DWORD flags, LPSTARTUPINFOW startup, LPPROCESS_INFORMATION info ) -@@ -2320,8 +2321,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 8acf921..5129dce 100644 HeapFree( GetProcessHeap(), 0, newcmdline ); return ret; } -@@ -2431,7 +2432,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) ); @@ -83,39 +83,38 @@ index 8acf921..5129dce 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 ), -@@ -2489,18 +2492,18 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l - debugstr_w(name), (binary_info.flags & BINARY_FLAG_64BIT) ? 64 : 32, - wine_dbgstr_longlong(binary_info.res_start), wine_dbgstr_longlong(binary_info.res_end), - binary_info.arch, (binary_info.flags & BINARY_FLAG_FAKEDLL) ? ", fakedll" : "" ); + if (!(tidy_cmdline = get_file_name( app_name, cmd_line, name, ARRAY_SIZE( name ), &hFile, &is_64bit ))) +@@ -2686,18 +2689,18 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l + debugstr_w(name), is_64bit_arch(pe_info.machine) ? 64 : 32, + wine_dbgstr_longlong(pe_info.base), wine_dbgstr_longlong(pe_info.base + pe_info.map_size), + pe_info.machine ); - 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, &binary_info, FALSE ); + inherit, flags, startup_info, info, unixdir, &pe_info, FALSE ); break; case BINARY_WIN16: TRACE( "starting %s as Win16/DOS binary\n", debugstr_w(name) ); - retv = create_vdm_process( name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr, + retv = create_vdm_process( token, name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr, - inherit, flags, startup_info, info, unixdir, &binary_info, FALSE ); + inherit, flags, startup_info, info, unixdir, &pe_info, FALSE ); break; case BINARY_UNIX_LIB: TRACE( "starting %s as %d-bit Winelib app\n", - debugstr_w(name), (binary_info.flags & BINARY_FLAG_64BIT) ? 64 : 32 ); + debugstr_w(name), is_64bit_arch(pe_info.machine) ? 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, &binary_info, FALSE ); + inherit, flags, startup_info, info, unixdir, &pe_info, FALSE ); break; case BINARY_UNKNOWN: -@@ -2512,7 +2515,7 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l +@@ -2708,14 +2711,14 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l + { TRACE( "starting %s as DOS binary\n", debugstr_w(name) ); - binary_info.type = BINARY_WIN16; - binary_info.arch = IMAGE_FILE_MACHINE_I386; + pe_info.machine = IMAGE_FILE_MACHINE_I386; - retv = create_vdm_process( name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr, + retv = create_vdm_process( token, name, tidy_cmdline, envW, cur_dir, process_attr, thread_attr, - inherit, flags, startup_info, info, unixdir, - &binary_info, FALSE ); + inherit, flags, startup_info, info, unixdir, &pe_info, FALSE ); break; -@@ -2520,7 +2523,7 @@ BOOL WINAPI CreateProcessInternalW( HANDLE token, LPCWSTR app_name, LPWSTR cmd_l + } if (!strcmpiW( p, batW ) || !strcmpiW( p, cmdW ) ) { TRACE( "starting %s as batch binary\n", debugstr_w(name) ); @@ -124,28 +123,28 @@ index 8acf921..5129dce 100644 inherit, flags, startup_info, info ); break; } -@@ -2640,12 +2643,12 @@ static void exec_process( LPCWSTR name ) - debugstr_w(name), (binary_info.flags & BINARY_FLAG_64BIT) ? 64 : 32, - wine_dbgstr_longlong(binary_info.res_start), wine_dbgstr_longlong(binary_info.res_end), - binary_info.arch ); +@@ -2831,12 +2834,12 @@ static void exec_process( LPCWSTR name ) + debugstr_w(name), is_64bit_arch(pe_info.machine) ? 64 : 32, + wine_dbgstr_longlong(pe_info.base), wine_dbgstr_longlong(pe_info.base + pe_info.map_size), + pe_info.machine ); - 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, &binary_info, TRUE ); + FALSE, 0, &startup_info, &info, NULL, &pe_info, TRUE ); break; case BINARY_UNIX_LIB: TRACE( "%s is a Unix library, starting as Winelib app\n", debugstr_w(name) ); - 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, &binary_info, TRUE ); + FALSE, 0, &startup_info, &info, NULL, &pe_info, TRUE ); break; case BINARY_UNKNOWN: -@@ -2657,7 +2660,7 @@ static void exec_process( LPCWSTR name ) +@@ -2847,7 +2850,7 @@ static void exec_process( LPCWSTR name ) /* fall through */ case BINARY_WIN16: TRACE( "starting %s as Win16/DOS binary\n", debugstr_w(name) ); - create_vdm_process( name, GetCommandLineW(), NULL, NULL, NULL, NULL, + create_vdm_process( NULL, name, GetCommandLineW(), NULL, NULL, NULL, NULL, - FALSE, 0, &startup_info, &info, NULL, &binary_info, TRUE ); + FALSE, 0, &startup_info, &info, NULL, &pe_info, TRUE ); break; default: diff --git a/server/process.c b/server/process.c diff --git a/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch b/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch index 441148ba..62e5bc4e 100644 --- a/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch +++ b/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch @@ -1,4 +1,4 @@ -From 46f234ba973f5c9c60cd1d39f2c61202f92458b7 Mon Sep 17 00:00:00 2001 +From 37a07b352d184b7d7c53084eb6e2d3190f8f581d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Wed, 29 Jul 2015 17:09:50 +0200 Subject: [PATCH] ddraw: Create rendering targets in video memory if possible. @@ -12,10 +12,10 @@ Based on a patch by Henri Verbeet. 4 files changed, 38 insertions(+), 15 deletions(-) diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c -index 9115a59..3f14a9a 100644 +index e9e06ee..6677220 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c -@@ -4241,7 +4241,7 @@ static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid, +@@ -4211,7 +4211,7 @@ static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid, TRACE("iface %p, riid %s, surface %p, device %p.\n", iface, debugstr_guid(riid), surface, device); wined3d_mutex_lock(); @@ -24,7 +24,7 @@ index 9115a59..3f14a9a 100644 { *device = &object->IDirect3DDevice7_iface; } -@@ -4270,7 +4270,7 @@ static HRESULT WINAPI d3d3_CreateDevice(IDirect3D3 *iface, REFCLSID riid, +@@ -4240,7 +4240,7 @@ static HRESULT WINAPI d3d3_CreateDevice(IDirect3D3 *iface, REFCLSID riid, return CLASS_E_NOAGGREGATION; wined3d_mutex_lock(); @@ -33,7 +33,7 @@ index 9115a59..3f14a9a 100644 { *device = &device_impl->IDirect3DDevice3_iface; } -@@ -4296,7 +4296,7 @@ static HRESULT WINAPI d3d2_CreateDevice(IDirect3D2 *iface, REFCLSID riid, +@@ -4266,7 +4266,7 @@ static HRESULT WINAPI d3d2_CreateDevice(IDirect3D2 *iface, REFCLSID riid, iface, debugstr_guid(riid), surface, device); wined3d_mutex_lock(); @@ -43,10 +43,10 @@ index 9115a59..3f14a9a 100644 *device = &device_impl->IDirect3DDevice2_iface; } diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h -index 61f5347..baeb9db 100644 +index 495cb8b..4af638b 100644 --- a/dlls/ddraw/ddraw_private.h +++ b/dlls/ddraw/ddraw_private.h -@@ -305,6 +305,7 @@ struct d3d_device +@@ -303,6 +303,7 @@ struct d3d_device IUnknown IUnknown_inner; LONG ref; UINT version; @@ -54,7 +54,7 @@ index 61f5347..baeb9db 100644 IUnknown *outer_unknown; struct wined3d_device *wined3d_device; -@@ -349,7 +350,7 @@ struct d3d_device +@@ -347,7 +348,7 @@ struct d3d_device struct wined3d_vec4 user_clip_planes[D3DMAXUSERCLIPPLANES]; }; @@ -64,7 +64,7 @@ index 61f5347..baeb9db 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 c2d87dd..43f7402 100644 +index 7866c28..81ace96 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -1854,7 +1854,7 @@ static HRESULT d3d_device7_SetRenderTarget(IDirect3DDevice7 *iface, @@ -94,7 +94,7 @@ index c2d87dd..43f7402 100644 { WARN("Surface %p is not in video memory.\n", target_impl); IDirectDrawSurface_AddRef(target); -@@ -6903,7 +6903,7 @@ enum wined3d_depth_buffer_type d3d_device_update_depth_stencil(struct d3d_device +@@ -6891,7 +6891,7 @@ enum wined3d_depth_buffer_type d3d_device_update_depth_stencil(struct d3d_device return WINED3D_ZB_TRUE; } @@ -103,7 +103,7 @@ index c2d87dd..43f7402 100644 struct ddraw_surface *target, IUnknown *rt_iface, UINT version, IUnknown *outer_unknown) { static const D3DMATRIX ident = -@@ -6926,6 +6926,7 @@ static HRESULT d3d_device_init(struct d3d_device *device, struct ddraw *ddraw, +@@ -6914,6 +6914,7 @@ static HRESULT d3d_device_init(struct d3d_device *device, struct ddraw *ddraw, device->IUnknown_inner.lpVtbl = &d3d_device_inner_vtbl; device->ref = 1; device->version = version; @@ -111,7 +111,7 @@ index c2d87dd..43f7402 100644 if (outer_unknown) device->outer_unknown = outer_unknown; -@@ -6976,14 +6977,18 @@ static HRESULT d3d_device_init(struct d3d_device *device, struct ddraw *ddraw, +@@ -6964,14 +6965,18 @@ static HRESULT d3d_device_init(struct d3d_device *device, struct ddraw *ddraw, return D3D_OK; } @@ -133,8 +133,8 @@ index c2d87dd..43f7402 100644 if (!(target->surface_desc.ddsCaps.dwCaps & DDSCAPS_3DDEVICE) || (target->surface_desc.ddsCaps.dwCaps & DDSCAPS_ZBUFFER)) -@@ -6998,7 +7003,7 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn - return DDERR_NOPALETTEATTACHED; +@@ -6994,7 +6999,7 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn + return DDERR_OUTOFMEMORY; } - if (!(target->surface_desc.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY)) @@ -142,7 +142,7 @@ index c2d87dd..43f7402 100644 { WARN("Surface %p is not in video memory.\n", target); return D3DERR_SURFACENOTINVIDMEM; -@@ -7024,7 +7029,7 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn +@@ -7012,7 +7017,7 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn return DDERR_OUTOFMEMORY; } @@ -152,10 +152,10 @@ index c2d87dd..43f7402 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 a30b44f..9d4e83c 100644 +index d201d9d..41fe6a1 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c -@@ -209,7 +209,7 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface, +@@ -226,7 +226,7 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface, { HRESULT hr; @@ -164,7 +164,7 @@ index a30b44f..9d4e83c 100644 1, &This->device1, (IUnknown *)&This->IDirectDrawSurface_iface))) { This->device1 = NULL; -@@ -6111,7 +6111,24 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ +@@ -6155,7 +6155,24 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ if (desc->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) { @@ -191,5 +191,5 @@ index a30b44f..9d4e83c 100644 } else -- -1.9.1 +2.7.4 diff --git a/patches/kernel32-NeedCurrentDirectoryForExePath/0003-kernel32-Consider-the-working-directory-first-when-l.patch b/patches/kernel32-NeedCurrentDirectoryForExePath/0003-kernel32-Consider-the-working-directory-first-when-l.patch index 8bf67632..8f39408f 100644 --- a/patches/kernel32-NeedCurrentDirectoryForExePath/0003-kernel32-Consider-the-working-directory-first-when-l.patch +++ b/patches/kernel32-NeedCurrentDirectoryForExePath/0003-kernel32-Consider-the-working-directory-first-when-l.patch @@ -1,4 +1,4 @@ -From b0949848b3ba61c901fd705c5769b2014a96dabf Mon Sep 17 00:00:00 2001 +From 04ccb4bc45d41ab247076f3d83329236a1c30125 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Sat, 3 Jan 2015 20:55:43 -0700 Subject: kernel32: Consider the working directory first when launching @@ -9,12 +9,12 @@ Subject: kernel32: Consider the working directory first when launching 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c -index 0a087ab..ec9d991 100644 +index 98ea09b..a5433d7 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c -@@ -259,9 +259,17 @@ static HANDLE open_exe_file( const WCHAR *name, struct binary_info *binary_info - static BOOL find_exe_file( const WCHAR *name, WCHAR *buffer, int buflen, - HANDLE *handle, struct binary_info *binary_info ) +@@ -441,9 +441,17 @@ static HANDLE open_exe_file( const WCHAR *name, BOOL *is_64bit ) + */ + static BOOL find_exe_file( const WCHAR *name, WCHAR *buffer, int buflen, HANDLE *handle ) { + WCHAR cur_dir[MAX_PATH]; + @@ -32,5 +32,5 @@ index 0a087ab..ec9d991 100644 !SearchPathW( NULL, name, NULL, buflen, buffer, NULL )) return FALSE; -- -1.9.1 +2.7.4 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index bfda2f27..626f4421 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "dbaaee8e4d72b929e86c590a9e40c48ea86468c4" + echo "d8f3f1b71726b793f2f9a86225a73a7d286e62b3" } # Show version information