Compare commits

...

35 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes
53c687fd47 Release v9.1 2024-01-27 17:30:38 +11:00
Alistair Leslie-Hughes
9c85f8e97a Updated vkd3d-latest patchset 2024-01-27 12:58:57 +11:00
Alistair Leslie-Hughes
a15917a85e Updated windows.networking.connectivity-new-dll patchset
Ran make_makefiles to update configure.ac
2024-01-27 12:32:15 +11:00
Alistair Leslie-Hughes
06139e25fa Updated fonts-Missing_Fonts patchset
run make_makefiles to fixup Makefile.in
2024-01-27 12:32:15 +11:00
Alistair Leslie-Hughes
e175b3e173 Updated vcomp_for_dynamic_init_i8 patchset
run make_specfiles to ensure all files are correct.
2024-01-27 12:32:15 +11:00
Zebediah Figura
1c14122a2d ddraw-version-check: Rebase and reënable.
Thanks to Aida JonikienÄ— for doing this rebase.
2024-01-26 18:27:53 -06:00
Zebediah Figura
92aa3c6389 wined3d-bindless-texture: Rebase and reënable.
Thanks to Aida JonikienÄ— for doing this rebase.
2024-01-26 17:58:34 -06:00
Zebediah Figura
72730e4340 user32-Mouse_Message_Hwnd: Rebase (mostly) and reënable.
The tests are left alone since they aren't particularly important and will need to be rewritten anyway.
They should probably be somewhere other than input.c, since they don't actually relate to input.
2024-01-26 17:41:53 -06:00
Zebediah Figura
065d60e3d7 Rebase against c963c4141a0d4f6601c37f11d79de186be0da6a9. 2024-01-26 17:31:02 -06:00
Zebediah Figura
fbae1b5a2c Rebase against eb5993a7c6fbc1cd9deac0dceabc8f1c76e14ba8. 2024-01-25 17:55:36 -06:00
Alistair Leslie-Hughes
4be0e7f2c6 Rebase against ab28825aceec92775fd570fc3a42c154366eceea. 2024-01-25 16:25:39 +11:00
Alistair Leslie-Hughes
e04949b586 Added scrrun_move_folder patchset 2024-01-24 13:42:41 +11:00
Alistair Leslie-Hughes
a878cd75dd Added msxml3-write_out_doc patchset 2024-01-24 13:13:27 +11:00
Alistair Leslie-Hughes
78b6fcffa8 Added msi-cabinet patchset 2024-01-24 13:12:34 +11:00
Alistair Leslie-Hughes
0419fcc658 Updated vkd3d-latest patchset 2024-01-24 12:28:57 +11:00
Alistair Leslie-Hughes
8928bbdbff Rebase against d81c4ce1ba700cca040afcf89c75c683b23e531d. 2024-01-24 10:55:59 +11:00
Zebediah Figura
034a07418d Rebase against 35ac0e7ac0511ef766f3f35220869565ce07906e. 2024-01-22 16:26:14 -06:00
Alistair Leslie-Hughes
e045af48e8 Updated vkd3d-latest patchset
Squashed afer release + rebased to latest (Added patch 0003).
2024-01-18 12:10:18 +11:00
Alistair Leslie-Hughes
19c6bb12cc Rebase against 1932c3a2516b181291ce430505dcfa8a82eb70bd. 2024-01-18 11:49:45 +11:00
Alistair Leslie-Hughes
cab93f47b8 Release v9.0 2024-01-17 08:47:35 +11:00
Alistair Leslie-Hughes
871a9455bb Updated vkd3d-latest patchset 2024-01-16 11:01:10 +11:00
Alistair Leslie-Hughes
15b6373d23 Fix warnings in various patchsets
Correct the warning thats issued when GetLastError wsa used for %u, changed to use the standard %lx format.
2024-01-14 09:17:25 +11:00
Zebediah Figura
f445af0deb xactengine-initial: Use SOURCES. 2024-01-13 13:33:54 -06:00
Zebediah Figura
3ee2f0e80c winedevice-Default_Drivers: Use SOURCES. 2024-01-13 13:33:45 -06:00
Zebediah Figura
b471290a81 odbc-remove-unixodbc: Use SOURCES. 2024-01-13 13:33:21 -06:00
Zebediah Figura
2e49ce0e85 cryptext-CryptExtOpenCER: Use SOURCES. 2024-01-13 13:33:10 -06:00
Alistair Leslie-Hughes
c26e42e521 Release v9.0-rc5 2024-01-13 14:00:42 +11:00
Alistair Leslie-Hughes
4f14df2caa Updated vkd3d-latest patchset 2024-01-13 12:21:42 +11:00
Alistair Leslie-Hughes
8a76fd6c73 Updated vkd3d-latest patchset 2024-01-10 07:41:15 +11:00
Alistair Leslie-Hughes
2f3062bc92 Release v9.0-rc4 2024-01-06 17:02:21 +11:00
Alistair Leslie-Hughes
ddfaf18da9 Rebase against d56fc6d318d96bb80495f015e271d485ac41b9d7. 2024-01-06 10:00:35 +11:00
Alistair Leslie-Hughes
40c8ba4a5b Updated vkd3d-latest patchset 2024-01-05 11:03:51 +11:00
Alistair Leslie-Hughes
836fa152e2 Updated vkd3d-latest patchset 2024-01-04 12:27:58 +11:00
Alistair Leslie-Hughes
92b36477fa Updated vkd3d-latest patchset 2024-01-03 19:11:38 +11:00
Alistair Leslie-Hughes
75f626ecc8 Release v9.0-rc3 2023-12-23 15:16:12 +11:00
68 changed files with 19193 additions and 5120 deletions

View File

@@ -1,4 +1,4 @@
From e6354103c243e13c177f6a534a9e786cfdcf7c92 Mon Sep 17 00:00:00 2001
From f48fa2ff628c3262245593301a141dee31118fd4 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] ntdll: Print a warning message specifying the wine-staging
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
1 file changed, 15 insertions(+)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 1a87f4d1f5e..31c0a3bae94 100644
index 021f7941969..68cb4b25d85 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -42,6 +42,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -20,7 +20,7 @@ index 1a87f4d1f5e..31c0a3bae94 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3749,6 +3750,7 @@ void WINAPI LdrShutdownProcess(void)
@@ -3822,6 +3823,7 @@ void WINAPI LdrShutdownProcess(void)
process_detach();
}
@@ -28,7 +28,7 @@ index 1a87f4d1f5e..31c0a3bae94 100644
/******************************************************************
* RtlExitUserProcess (NTDLL.@)
@@ -4195,6 +4197,9 @@ static void release_address_space(void)
@@ -4244,6 +4246,9 @@ static void release_address_space(void)
*/
void loader_init( CONTEXT *context, void **entry )
{
@@ -37,8 +37,8 @@ index 1a87f4d1f5e..31c0a3bae94 100644
+ HANDLE staging_event;
static int attach_done;
NTSTATUS status;
ULONG_PTR cookie;
@@ -4274,6 +4279,16 @@ void loader_init( CONTEXT *context, void **entry )
ULONG_PTR cookie, port = 0;
@@ -4317,6 +4322,16 @@ void loader_init( CONTEXT *context, void **entry )
if (NtCurrentTeb()->WowTebOffset) init_wow64( context );
#endif
@@ -56,5 +56,5 @@ index 1a87f4d1f5e..31c0a3bae94 100644
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
RtlReleasePebLock();
--
2.42.0
2.43.0

View File

@@ -45,7 +45,7 @@ index 5c00298d41e..d04f5645345 100644
+
+ status = LsaOpenPolicy( &machine, &object_attributes, POLICY_LOOKUP_NAMES, &handle);
+ ok(status == RPC_NT_SERVER_UNAVAILABLE,
+ "LsaOpenPolicy(POLICY_LOOKUP_NAMES) for invalid machine returned 0x%08x\n", status);
+ "LsaOpenPolicy(POLICY_LOOKUP_NAMES) for invalid machine returned 0x%08lx\n", status);
+
status = LsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,

View File

@@ -1,4 +1,4 @@
From eddc40dbf4048ceea1fda7f842adad340865723b Mon Sep 17 00:00:00 2001
From e6c1c1fe3fe2f4fe7d3e421b94d925c40063af22 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 5 Jul 2019 13:20:23 +0800
Subject: [PATCH] cryptext: Implement CryptExtOpenCER.
@@ -17,10 +17,10 @@ Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
create mode 100644 dlls/cryptext/tests/cryptext.c
diff --git a/configure b/configure
index 6425e4da5f8..c97671cdfc6 100755
index ca6e87d4740..7033499399f 100755
--- a/configure
+++ b/configure
@@ -21346,6 +21346,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
@@ -21660,6 +21660,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
wine_fn_config_makefile dlls/cryptdlg enable_cryptdlg
wine_fn_config_makefile dlls/cryptdll enable_cryptdll
wine_fn_config_makefile dlls/cryptext enable_cryptext
@@ -29,10 +29,10 @@ index 6425e4da5f8..c97671cdfc6 100755
wine_fn_config_makefile dlls/cryptnet/tests enable_tests
wine_fn_config_makefile dlls/cryptowinrt enable_cryptowinrt
diff --git a/configure.ac b/configure.ac
index b5a3b0069fb..73b1b1c8c2b 100644
index cba55126869..57064a05fe5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2450,6 +2450,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
@@ -2477,6 +2477,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
WINE_CONFIG_MAKEFILE(dlls/cryptdlg)
WINE_CONFIG_MAKEFILE(dlls/cryptdll)
WINE_CONFIG_MAKEFILE(dlls/cryptext)
@@ -41,7 +41,7 @@ index b5a3b0069fb..73b1b1c8c2b 100644
WINE_CONFIG_MAKEFILE(dlls/cryptnet/tests)
WINE_CONFIG_MAKEFILE(dlls/cryptowinrt)
diff --git a/dlls/cryptext/Makefile.in b/dlls/cryptext/Makefile.in
index 0ec2b8a2045..76accca43eb 100644
index 5598bfb78e0..acda4e4ac6d 100644
--- a/dlls/cryptext/Makefile.in
+++ b/dlls/cryptext/Makefile.in
@@ -1,4 +1,5 @@
@@ -151,13 +151,13 @@ index 537ba66cd3b..a4314518eac 100644
+}
diff --git a/dlls/cryptext/tests/Makefile.in b/dlls/cryptext/tests/Makefile.in
new file mode 100644
index 00000000000..522fc60a4af
index 00000000000..c3f4551fc00
--- /dev/null
+++ b/dlls/cryptext/tests/Makefile.in
@@ -0,0 +1,4 @@
+TESTDLL = cryptext.dll
+
+C_SRCS = \
+SOURCES = \
+ cryptext.c
diff --git a/dlls/cryptext/tests/cryptext.c b/dlls/cryptext/tests/cryptext.c
new file mode 100644
@@ -227,5 +227,5 @@ index 00000000000..ab1007dbd82
+ test_CryptExtOpenCER();
+}
--
2.35.1
2.43.0

View File

@@ -39,7 +39,7 @@ index b81fb6863d3..75ee6d44a95 100644
+ FIXME("Skinning vertices with two position elements not supported\n");
+
+ if ((skin->fvf & D3DFVF_POSITION_MASK) != D3DFVF_XYZ) {
+ FIXME("Vertex type %#x not supported\n", skin->fvf & D3DFVF_POSITION_MASK);
+ FIXME("Vertex type %#lx not supported\n", skin->fvf & D3DFVF_POSITION_MASK);
+ return E_FAIL;
+ }
+

View File

@@ -1,4 +1,4 @@
From f1dba65707a5a8ef5ec2d9c8213134b01cd735e2 Mon Sep 17 00:00:00 2001
From 0a5214d0fe032778fa3ca4ee60c3d2ba64f8f4c0 Mon Sep 17 00:00:00 2001
From: Matthew Wong <itsmattkc@gmail.com>
Date: Fri, 18 Sep 2020 00:47:13 +0000
Subject: [PATCH] ddraw: Implement Pick() and GetPickRecords().
@@ -33,14 +33,14 @@ Signed-off-by: Myah Caron <qsniyg@protonmail.com>
dlls/ddraw/ddraw_private.h | 7 +-
dlls/ddraw/device.c | 67 ++++++++++++--
dlls/ddraw/executebuffer.c | 176 ++++++++++++++++++++++++++++++++++++-
dlls/ddraw/tests/ddraw1.c | 131 +++++++++++++++++++++++++++
4 files changed, 371 insertions(+), 10 deletions(-)
dlls/ddraw/tests/ddraw1.c | 133 ++++++++++++++++++++++++++++
4 files changed, 373 insertions(+), 10 deletions(-)
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 01a9579651c..889a64219e5 100644
index 6fc93b91860..c90b894ea61 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -336,6 +336,11 @@ struct d3d_device
@@ -338,6 +338,11 @@ struct d3d_device
struct d3d_viewport *current_viewport;
D3DVIEWPORT7 active_viewport;
@@ -52,7 +52,7 @@ index 01a9579651c..889a64219e5 100644
/* Required to keep track which of two available texture blending modes in d3ddevice3 is used */
BOOL legacyTextureBlending;
D3DTEXTUREBLEND texture_map_blend;
@@ -569,7 +574,7 @@ struct d3d_execute_buffer *unsafe_impl_from_IDirect3DExecuteBuffer(IDirect3DExec
@@ -571,7 +576,7 @@ struct d3d_execute_buffer *unsafe_impl_from_IDirect3DExecuteBuffer(IDirect3DExec
/* The execute function */
HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *execute_buffer,
@@ -62,7 +62,7 @@ index 01a9579651c..889a64219e5 100644
/*****************************************************************************
* IDirect3DVertexBuffer
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 80556e96787..b3b63d7b361 100644
index bc1d91ee00b..82a813f9064 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -349,6 +349,9 @@ static ULONG WINAPI d3d_device_inner_Release(IUnknown *iface)
@@ -172,7 +172,7 @@ index 80556e96787..b3b63d7b361 100644
return D3D_OK;
}
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c
index 13e639eda3f..bb050fe16b8 100644
index 320ce6649d4..84366dafd7d 100644
--- a/dlls/ddraw/executebuffer.c
+++ b/dlls/ddraw/executebuffer.c
@@ -45,15 +45,106 @@ static void _dump_D3DEXECUTEBUFFERDESC(const D3DEXECUTEBUFFERDESC *lpDesc) {
@@ -387,10 +387,10 @@ index 13e639eda3f..bb050fe16b8 100644
static inline struct d3d_execute_buffer *impl_from_IDirect3DExecuteBuffer(IDirect3DExecuteBuffer *iface)
{
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index f5fc7b04053..b6374e75632 100644
index d8fcb188c40..bacd9049d6e 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -15429,6 +15429,136 @@ static void test_enum_devices(void)
@@ -15467,6 +15467,137 @@ static void test_enum_devices(void)
ok(!refcount, "Device has %lu references left.\n", refcount);
}
@@ -521,13 +521,22 @@ index f5fc7b04053..b6374e75632 100644
+ IDirect3DExecuteBuffer_Release(execute_buffer);
+ IDirect3DDevice_Release(device);
+ IDirectDraw_Release(ddraw);
+
+ DestroyWindow(window);
+}
+
START_TEST(ddraw1)
{
DDDEVICEIDENTIFIER identifier;
@@ -15545,6 +15675,7 @@ START_TEST(ddraw1)
/* Emperor: Rise of the Middle Kingdom locks a sysmem surface and then accesses
* the pointer after unlocking it. This test roughly replicates the calls that
* it makes. */
@@ -15527,6 +15658,7 @@ static void test_pinned_sysmem(void)
IDirectDrawSurface_Release(surface);
refcount = IDirectDraw_Release(ddraw);
ok(!refcount, "Device has %lu references left.\n", refcount);
+
DestroyWindow(window);
}
@@ -15646,6 +15778,7 @@ START_TEST(ddraw1)
test_vtbl_protection();
test_window_position();
test_get_display_mode();
@@ -536,5 +545,5 @@ index f5fc7b04053..b6374e75632 100644
test_filling_convention();
test_enum_devices();
--
2.40.1
2.43.0

View File

@@ -1,18 +1,18 @@
From 16d001f5562c37ac293fa547feef19887e635363 Mon Sep 17 00:00:00 2001
From e4688a88901a1c13b2df67a0444c34e3ee02bbab Mon Sep 17 00:00:00 2001
From: Andrew D'Addesio <andrew@fatbag.net>
Date: Fri, 8 Feb 2019 18:48:33 -1000
Subject: [PATCH] ddraw: Return correct devices based off requested DirectX
version.
---
dlls/ddraw/ddraw.c | 231 +++++++++++++++++++++++++--------------------
1 file changed, 130 insertions(+), 101 deletions(-)
dlls/ddraw/ddraw.c | 232 +++++++++++++++++++++++++--------------------
1 file changed, 129 insertions(+), 103 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 83eeb33589e..324a149a425 100644
index 5887854556b..5ac95dc3043 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -47,37 +47,80 @@ static const DDDEVICEIDENTIFIER2 deviceidentifier =
@@ -44,37 +44,80 @@ static const DDDEVICEIDENTIFIER2 deviceidentifier =
0
};
@@ -28,7 +28,7 @@ index 83eeb33589e..324a149a425 100644
+ char device_desc[100];
char device_name[100];
const GUID *device_guid;
DWORD remove_caps;
DWORD unsupported_caps;
-} device_list7[] =
+} device_list[] =
{
@@ -38,7 +38,7 @@ index 83eeb33589e..324a149a425 100644
- "WINE Direct3D7 Hardware Transform and Lighting acceleration using WineD3D",
- "Wine D3D7 T&L HAL",
- &IID_IDirect3DTnLHalDevice,
+ D3D_VERSION(1)|D3D_VERSION(2),
+ D3D_VERSION(1) | D3D_VERSION(2),
+ "WineD3D Ramp Software Emulation",
+ "Ramp Emulation",
+ &IID_IDirect3DRampDevice,
@@ -49,20 +49,20 @@ index 83eeb33589e..324a149a425 100644
+ /* RGB Emulation (D3D 1-7) */
{
- "WINE Direct3D7 Hardware acceleration using WineD3D",
+ D3D_VERSION(1)|D3D_VERSION(2)|D3D_VERSION(3)|D3D_VERSION(7),
+ D3D_VERSION(1) | D3D_VERSION(2) | D3D_VERSION(3) | D3D_VERSION(7),
+ "WineD3D RGB Software Emulation",
+ "RGB Emulation",
+ &IID_IDirect3DRGBDevice,
+ D3DDEVCAPS_HWTRANSFORMANDLIGHT,
+ D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION,
+ },
+
+ /* Direct3D HAL (D3D 1-7) */
+ {
+ D3D_VERSION(1)|D3D_VERSION(2)|D3D_VERSION(3)|D3D_VERSION(7),
+ D3D_VERSION(1) | D3D_VERSION(2) | D3D_VERSION(3) | D3D_VERSION(7),
+ "WineD3D Hardware Acceleration",
"Direct3D HAL",
&IID_IDirect3DHALDevice,
0,
D3DDEVCAPS_HWTRANSFORMANDLIGHT,
},
- /* RGB device */
@@ -71,13 +71,13 @@ index 83eeb33589e..324a149a425 100644
- "WINE Direct3D7 RGB Software Emulation using WineD3D",
- "Wine D3D7 RGB",
- &IID_IDirect3DRGBDevice,
- D3DDEVCAPS_HWTRANSFORMANDLIGHT,
- D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION,
+ D3D_VERSION(2),
+ "WineD3D MMX Software Emulation",
+ "MMX Emulation",
+ &IID_IDirect3DMMXDevice,
+ 0,
+ },
},
+
+ /* Direct3D T&L HAL (D3D7 only) */
+ {
@@ -86,7 +86,7 @@ index 83eeb33589e..324a149a425 100644
+ "Direct3D T&L HAL",
+ &IID_IDirect3DTnLHalDevice,
+ 0,
},
+ },
+
+ /* In the future, we may wish to add the "Reference Rasterizer" and
+ * "Null device", which are only available in DX6-8 and must be explicitly
@@ -106,7 +106,7 @@ index 83eeb33589e..324a149a425 100644
};
static void STDMETHODCALLTYPE ddraw_null_wined3d_object_destroyed(void *parent) {}
@@ -1389,15 +1432,6 @@ HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps)
@@ -1415,15 +1458,6 @@ HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps)
D3DPTADDRESSCAPS_WRAP | D3DPTADDRESSCAPS_MIRROR | D3DPTADDRESSCAPS_CLAMP |
D3DPTADDRESSCAPS_BORDER | D3DPTADDRESSCAPS_INDEPENDENTUV);
@@ -122,7 +122,7 @@ index 83eeb33589e..324a149a425 100644
/* Fill the missing members, and do some fixup */
caps->dpcLineCaps.dwSize = sizeof(caps->dpcLineCaps);
caps->dpcLineCaps.dwTextureBlendCaps = D3DPTBLENDCAPS_ADD
@@ -3713,8 +3747,7 @@ static HRESULT WINAPI ddraw1_DuplicateSurface(IDirectDraw *iface, IDirectDrawSur
@@ -3746,8 +3780,7 @@ static HRESULT WINAPI ddraw1_DuplicateSurface(IDirectDraw *iface, IDirectDrawSur
/*****************************************************************************
* IDirect3D7::EnumDevices
*
@@ -132,8 +132,8 @@ index 83eeb33589e..324a149a425 100644
*
* Params:
* callback: Function to call for each enumerated device
@@ -3747,14 +3780,17 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
@@ -3779,13 +3812,16 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
}
dev_caps = device_desc7.dwDevCaps;
- for (i = 0; i < ARRAY_SIZE(device_list7); i++)
@@ -142,19 +142,18 @@ index 83eeb33589e..324a149a425 100644
HRESULT ret;
- device_desc7.deviceGUID = *device_list7[i].device_guid;
- device_desc7.dwDevCaps = dev_caps & ~device_list7[i].remove_caps;
- device_desc7.dwDevCaps = dev_caps & ~device_list7[i].unsupported_caps;
- ret = callback(device_list7[i].interface_name, device_list7[i].device_name, &device_desc7, context);
+ if (!(device_list[i].version_mask & D3D_VERSION(ddraw->d3dversion)))
+ continue;
+
+ device_desc7.deviceGUID = *device_list[i].device_guid;
+ device_desc7.dwDevCaps = dev_caps & ~device_list[i].remove_caps;
- ret = callback(device_list7[i].interface_name, device_list7[i].device_name, &device_desc7, context);
+ device_desc7.dwDevCaps = dev_caps & ~device_list[i].unsupported_caps;
+ ret = callback(device_list[i].device_name, device_list[i].device_name, &device_desc7, context);
if (ret != DDENUMRET_OK)
{
TRACE("Application cancelled the enumeration.\n");
@@ -3770,11 +3806,21 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
@@ -3801,11 +3837,21 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
return D3D_OK;
}
@@ -178,7 +177,7 @@ index 83eeb33589e..324a149a425 100644
*
* Versions 1, 2 and 3
*
@@ -3789,18 +3835,18 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
@@ -3820,18 +3866,18 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
*****************************************************************************/
static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBACK callback, void *context)
{
@@ -206,7 +205,7 @@ index 83eeb33589e..324a149a425 100644
TRACE("iface %p, callback %p, context %p.\n", iface, callback, context);
@@ -3809,52 +3855,58 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
@@ -3840,55 +3886,60 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
wined3d_mutex_lock();
@@ -246,9 +245,15 @@ index 83eeb33589e..324a149a425 100644
- * flag set. This way it refuses the emulation device, and HAL devices
- * never have POW2 unset in d3d7 on windows. */
- if (ddraw->d3dversion != 1)
- {
+ clear_device_desc(&empty_desc1);
+ empty_desc1.dwSize = desc_size;
+
+ for (i = 0; i < ARRAY_SIZE(device_list); i++)
{
- static CHAR reference_description[] = "RGB Direct3D emulation";
-
+ if (!(device_list[i].version_mask & D3D_VERSION(ddraw->d3dversion)))
+ continue;
- TRACE("Enumerating WineD3D D3DDevice interface.\n");
- hal_desc = device_desc1;
- hel_desc = device_desc1;
@@ -261,22 +266,16 @@ index 83eeb33589e..324a149a425 100644
- hal_desc.dcmColorModel = 0;
- /* RGB, RAMP and MMX devices cannot report HAL hardware flags */
- hal_desc.dwFlags = 0;
-
- hr = callback((GUID *)&IID_IDirect3DRGBDevice, reference_description,
- device_name, &hal_desc, &hel_desc, context);
- if (hr != D3DENUMRET_OK)
+ clear_device_desc(&empty_desc1);
+ empty_desc1.dwSize = desc_size;
+
+ for (i = 0; i < ARRAY_SIZE(device_list); i++)
+ {
+ if (!(device_list[i].version_mask & D3D_VERSION(ddraw->d3dversion)))
+ continue;
+
- /* RGB, REF, RAMP and MMX devices don't report hardware transform and lighting capability */
- hal_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION);
- hel_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION);
+ if (IsEqualGUID(&IID_IDirect3DHALDevice, device_list[i].device_guid))
+ {
+ hal_desc = device_desc1;
+
- hr = callback((GUID *)&IID_IDirect3DRGBDevice, reference_description,
- device_name, &hal_desc, &hel_desc, context);
- if (hr != D3DENUMRET_OK)
+ /* The HAL device's hel_desc is almost empty -- but not completely */
+ hel_desc = empty_desc1;
+ hel_desc.dwFlags = D3DDD_COLORMODEL | D3DDD_DEVCAPS | D3DDD_TRANSFORMCAPS
@@ -296,6 +295,8 @@ index 83eeb33589e..324a149a425 100644
+ /* Ramp device supports grayscale only */
+ if (IsEqualGUID(&IID_IDirect3DRampDevice, device_list[i].device_guid))
+ hel_desc.dcmColorModel = D3DCOLOR_MONO;
+ /* RGB, REF, RAMP and MMX devices don't report hardware transform and lighting capability */
+ hel_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION);
+ }
+
+ hr = callback((GUID *)device_list[i].device_guid, device_list[i].device_desc,
@@ -304,7 +305,7 @@ index 83eeb33589e..324a149a425 100644
{
TRACE("Application cancelled the enumeration.\n");
wined3d_mutex_unlock();
@@ -3862,29 +3914,6 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
@@ -3896,31 +3947,6 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
}
}
@@ -321,6 +322,8 @@ index 83eeb33589e..324a149a425 100644
- | D3DPTEXTURECAPS_NONPOW2CONDITIONAL | D3DPTEXTURECAPS_PERSPECTIVE);
- /* HAL devices have a HEL dcmColorModel of 0 */
- hel_desc.dcmColorModel = 0;
- /* HAL devices report hardware transform and lighting capability, but not in hel */
- hel_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX);
-
- hr = callback((GUID *)&IID_IDirect3DHALDevice, wined3d_description,
- device_name, &hal_desc, &hel_desc, context);
@@ -335,5 +338,5 @@ index 83eeb33589e..324a149a425 100644
wined3d_mutex_unlock();
--
2.20.1
2.43.0

View File

@@ -8,4 +8,3 @@
# The Sims Online
Fixes: [19153] Resident Evil 1 fails to start (needs IDirect3D3::EnumDevices() to return a device named "RGB Emulation")
Depends: ddraw-Device_Caps
Disabled: True

View File

@@ -24,7 +24,7 @@ index 30a79368c94..fc2069c389a 100644
+ /* System\CurrentControlSet\Control\Video should be non-volatile */
+ ret = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Control\\Video\\Wine",
+ 0, NULL, 0, KEY_NOTIFY, NULL, &hkey1, NULL);
+ ok(ret == ERROR_SUCCESS, "RegCreateKeyExA failed with error %d\n", ret);
+ ok(ret == ERROR_SUCCESS, "RegCreateKeyExA failed with error %lx\n", ret);
+ RegDeleteKeyA(hkey1, "");
+ RegCloseKey(hkey1);
+

View File

@@ -1,4 +1,4 @@
From 2533bbf747689e8326bb7795e890e7716144cb11 Mon Sep 17 00:00:00 2001
From b451aabaccbfb289853b8ddae8cb95e77af33f17 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 3 Sep 2015 01:25:14 +0200
Subject: [PATCH] fonts: Add Liberation Serif as an Times New Roman
@@ -13,14 +13,15 @@ Subject: [PATCH] fonts: Add Liberation Serif as an Times New Roman
create mode 100644 fonts/times.ttf
diff --git a/fonts/Makefile.in b/fonts/Makefile.in
index fb2cd83c4e6..9251153705d 100644
index ab80e7b70f7..94763601824 100644
--- a/fonts/Makefile.in
+++ b/fonts/Makefile.in
@@ -12,4 +12,5 @@ FONT_SRCS = \
@@ -11,5 +11,6 @@ SOURCES = \
system.sfd \
tahoma.sfd \
tahomabd.sfd \
webdings.sfd \
+ times.sfd \
webdings.sfd \
wingding.sfd
diff --git a/fonts/times.sfd b/fonts/times.sfd
new file mode 100644
@@ -99112,5 +99113,5 @@ literal 0
HcmV?d00001
--
2.27.0
2.43.0

View File

@@ -1,4 +1,4 @@
From 7dff09756ebc13c38695050b9de271a84c2ea7b6 Mon Sep 17 00:00:00 2001
From 10df8c207e3e880bd578392e266a191e6b8ef9dd Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 9 Jul 2019 14:13:28 +1000
Subject: [PATCH] user32: Do not enumerate the registry in
@@ -25,11 +25,11 @@ index 8f3cd8acae7..072f1fab23a 100644
{
SendMessageTimeoutW(handle, WM_DEVICECHANGE, flags, (LPARAM)header, SMTO_ABORTIFHUNG, 2000, NULL);
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 197a82db251..6385ef002b9 100644
index d48440a20be..3a5df122ff4 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -5369,6 +5369,40 @@ static void test_ClipCursor( char **argv )
if (!EqualRect( &rect, &virtual_rect )) ok_ret( 1, ClipCursor( NULL ) );
@@ -5215,6 +5215,40 @@ static void test_keyboard_ll_hook_blocking(void)
ok_ret( 1, DestroyWindow( hwnd ) );
}
+static void test_GetKeyboardLayoutList(void)
@@ -66,10 +66,10 @@ index 197a82db251..6385ef002b9 100644
+ }
+}
+
START_TEST(input)
{
char **argv;
@@ -5413,6 +5447,7 @@ START_TEST(input)
/* run the tests in a separate desktop to avoid interaction with other
* tests, current desktop state, or user actions. */
static void test_input_desktop( char **argv )
@@ -5279,6 +5313,7 @@ START_TEST(input)
test_GetRawInputBuffer();
test_RegisterRawInputDevices();
test_rawinput(argv[0]);
@@ -78,10 +78,10 @@ index 197a82db251..6385ef002b9 100644
if(pGetMouseMovePointsEx)
diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c
index 22f371969b9..e0a0bd332ed 100644
index aaaac12ce36..85820a74aba 100644
--- a/dlls/win32u/input.c
+++ b/dlls/win32u/input.c
@@ -1257,11 +1257,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags )
@@ -1280,11 +1280,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags )
*/
UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts )
{
@@ -94,7 +94,7 @@ index 22f371969b9..e0a0bd332ed 100644
HKL layout;
TRACE_(keyboard)( "size %d, layouts %p.\n", size, layouts );
@@ -1275,33 +1271,6 @@ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts )
@@ -1298,33 +1294,6 @@ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts )
if (size && layouts)
{
layouts[count - 1] = layout;
@@ -129,5 +129,5 @@ index 22f371969b9..e0a0bd332ed 100644
return count;
--
2.40.1
2.43.0

View File

@@ -0,0 +1,25 @@
From cbfeb2a5abed1c5c532280290f70f5299894cc8f Mon Sep 17 00:00:00 2001
From: Czcibor Bohusz-Dobosz <czbd@o2.pl>
Date: Sun, 14 Jan 2024 17:50:49 +1100
Subject: [PATCH] msi: Only process cabinet files if it exists
---
dlls/msi/files.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index 96c6c5eaa4b..c85c66ae53e 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -819,7 +819,7 @@ UINT ACTION_PatchFiles( MSIPACKAGE *package )
data.cb = patchfiles_cb;
data.user = &cursor;
- if (!msi_cabextract( package, mi, &data ))
+ if (mi->cabinet && !msi_cabextract( package, mi, &data ))
{
ERR("Failed to extract cabinet: %s\n", debugstr_w(mi->cabinet));
rc = ERROR_INSTALL_FAILURE;
--
2.43.0

View File

@@ -0,0 +1 @@
Fixes: [50148] msi: Process cabinet files only when one is supplied.

View File

@@ -0,0 +1,129 @@
From 9409a546aa17e178a6f1ce07cdaa8e0186429239 Mon Sep 17 00:00:00 2001
From: Jefferson Carpenter <jeffersoncarpenter2@gmail.com>
Date: Thu, 4 Nov 2021 22:30:05 +0000
Subject: [PATCH] msxml3: Write to DOMDocument mxwriter destination in
endDocument.
---
dlls/msxml3/mxwriter.c | 41 +++++++++++++++++++++++++++++++++--
dlls/msxml3/tests/saxreader.c | 1 +
2 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/dlls/msxml3/mxwriter.c b/dlls/msxml3/mxwriter.c
index 4a2844bcf08..8caf8979692 100644
--- a/dlls/msxml3/mxwriter.c
+++ b/dlls/msxml3/mxwriter.c
@@ -189,6 +189,7 @@ typedef struct
BSTR element;
IStream *dest;
+ IXMLDOMDocument *dest_doc;
output_buffer buffer;
} mxwriter;
@@ -850,6 +851,7 @@ static ULONG WINAPI mxwriter_Release(IMXWriter *iface)
free_output_buffer(&This->buffer);
if (This->dest) IStream_Release(This->dest);
+ if (This->dest_doc) IXMLDOMDocument_Release(This->dest_doc);
SysFreeString(This->version);
SysFreeString(This->encoding);
@@ -914,6 +916,8 @@ static HRESULT WINAPI mxwriter_put_output(IMXWriter *iface, VARIANT dest)
{
if (This->dest) IStream_Release(This->dest);
This->dest = NULL;
+ if (This->dest_doc) IXMLDOMDocument_Release(This->dest_doc);
+ This->dest_doc = NULL;
close_output_buffer(This);
break;
}
@@ -929,12 +933,33 @@ static HRESULT WINAPI mxwriter_put_output(IMXWriter *iface, VARIANT dest)
if (This->dest) IStream_Release(This->dest);
This->dest = stream;
+ if (This->dest_doc) IXMLDOMDocument_Release(This->dest_doc);
+ This->dest_doc = NULL;
break;
}
FIXME("unhandled interface type for VT_UNKNOWN destination\n");
return E_NOTIMPL;
}
+ case VT_DISPATCH:
+ {
+ IXMLDOMDocument *doc;
+
+ hr = IDispatch_QueryInterface(V_DISPATCH(&dest), &IID_IXMLDOMDocument, (void**)&doc);
+ if (hr == S_OK)
+ {
+ close_output_buffer(This);
+
+ if (This->dest) IStream_Release(This->dest);
+ This->dest = NULL;
+ if (This->dest_doc) IXMLDOMDocument_Release(This->dest_doc);
+ This->dest_doc = doc;
+ break;
+ }
+
+ FIXME("unhandled interface type for VT_DISPATCH destination\n");
+ return E_NOTIMPL;
+ }
default:
FIXME("unhandled destination type %s\n", debugstr_variant(&dest));
return E_NOTIMPL;
@@ -1201,7 +1226,7 @@ static HRESULT WINAPI SAXContentHandler_putDocumentLocator(
{
mxwriter *This = impl_from_ISAXContentHandler( iface );
FIXME("(%p)->(%p)\n", This, locator);
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT WINAPI SAXContentHandler_startDocument(ISAXContentHandler *iface)
@@ -1239,10 +1264,21 @@ static HRESULT WINAPI SAXContentHandler_startDocument(ISAXContentHandler *iface)
static HRESULT WINAPI SAXContentHandler_endDocument(ISAXContentHandler *iface)
{
+ HRESULT hr;
+ VARIANT dest;
+ VARIANT_BOOL success;
mxwriter *This = impl_from_ISAXContentHandler( iface );
TRACE("(%p)\n", This);
This->prop_changed = FALSE;
- return flush_output_buffer(This);
+
+ hr = flush_output_buffer(This);
+ if (FAILED(hr)) return hr;
+
+ if (This->dest_doc) {
+ mxwriter_get_output(&This->IMXWriter_iface, &dest);
+ return IXMLDOMDocument_loadXML(This->dest_doc, V_BSTR(&dest), &success);
+ }
+ return S_OK;
}
static HRESULT WINAPI SAXContentHandler_startPrefixMapping(
@@ -2630,6 +2666,7 @@ HRESULT MXWriter_create(MSXML_VERSION version, void **ppObj)
This->newline = FALSE;
This->dest = NULL;
+ This->dest_doc = NULL;
hr = init_output_buffer(This->xml_enc, &This->buffer);
if (hr != S_OK) {
diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c
index e123d4eba5a..f933ffe85a2 100644
--- a/dlls/msxml3/tests/saxreader.c
+++ b/dlls/msxml3/tests/saxreader.c
@@ -4563,6 +4563,7 @@ static void test_mxwriter_domdoc(void)
todo_wine
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ if (!node) return;
hr = IXMLDOMNode_get_nodeName(node, &str);
todo_wine {
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
--
2.43.0

View File

@@ -0,0 +1,3 @@
Fixes: [51965] msxml3: IMXWrite::output to support DOMDocument.
#TODO: Update tests.

View File

@@ -1,4 +1,4 @@
From 22f53694277313639b0ca00f6f075407839737e7 Mon Sep 17 00:00:00 2001
From 8f9e309dc4b3e9c7328c86cc4993b9359f0e6839 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Mon, 25 Nov 2019 12:19:20 +0300
Subject: [PATCH] ntdll: Force virtual memory allocation order.
@@ -16,10 +16,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46568
1 file changed, 164 insertions(+), 246 deletions(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 30d0df85fba..a14bbb852f8 100644
index cd1655d41b2..c0537375ab8 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -1246,43 +1246,15 @@ static struct file_view *find_view_range( const void *addr, size_t size )
@@ -1241,43 +1241,15 @@ static struct file_view *find_view_range( const void *addr, size_t size )
}
@@ -71,7 +71,7 @@ index 30d0df85fba..a14bbb852f8 100644
/***********************************************************************
* try_map_free_area
@@ -1317,112 +1289,6 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
@@ -1312,112 +1284,6 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
}
@@ -184,7 +184,7 @@ index 30d0df85fba..a14bbb852f8 100644
/***********************************************************************
* remove_reserved_area
*
@@ -1532,8 +1398,7 @@ static void free_view( struct file_view *view )
@@ -1527,8 +1393,7 @@ static void free_view( struct file_view *view )
*/
static void unregister_view( struct file_view *view )
{
@@ -194,7 +194,7 @@ index 30d0df85fba..a14bbb852f8 100644
wine_rb_remove( &views_tree, &view->entry );
}
@@ -1561,8 +1426,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
@@ -1556,8 +1421,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
static void register_view( struct file_view *view )
{
wine_rb_put( &views_tree, view->base, &view->entry );
@@ -204,7 +204,7 @@ index 30d0df85fba..a14bbb852f8 100644
}
@@ -1835,89 +1699,176 @@ static inline void *unmap_extra_space( void *ptr, size_t total_size, size_t want
@@ -1830,89 +1694,176 @@ static inline void *unmap_extra_space( void *ptr, size_t total_size, size_t want
return ptr;
}
@@ -442,12 +442,12 @@ index 30d0df85fba..a14bbb852f8 100644
}
/***********************************************************************
@@ -2020,48 +1971,13 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
@@ -2016,48 +1967,13 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
}
else
{
- void *start = address_space_start;
- void *end = user_space_limit;
- void *end = min( user_space_limit, host_addr_space_limit );
- size_t view_size, unmap_size;
-
+ limit_high = limit_high ? min( limit_high + 1, (UINT_PTR)user_space_limit) : (UINT_PTR)user_space_limit;
@@ -464,7 +464,7 @@ index 30d0df85fba..a14bbb852f8 100644
- goto done;
- }
- if (start > address_space_start || end < address_space_limit || top_down)
- if (start > address_space_start || end < host_addr_space_limit || top_down)
- {
- if (!(ptr = map_free_area( start, end, size, top_down, get_unix_prot(vprot), align_mask )))
- return STATUS_NO_MEMORY;
@@ -495,7 +495,7 @@ index 30d0df85fba..a14bbb852f8 100644
status = create_view( view_ret, ptr, size, vprot );
if (status != STATUS_SUCCESS) unmap_area( ptr, size );
return status;
@@ -3213,6 +3129,7 @@ static unsigned int virtual_map_section( HANDLE handle, PVOID *addr_ptr, ULONG_P
@@ -3236,6 +3152,7 @@ static unsigned int virtual_map_section( HANDLE handle, PVOID *addr_ptr, ULONG_P
done:
server_leave_uninterrupted_section( &virtual_mutex, &sigset );
if (needs_close) close( unix_handle );
@@ -503,7 +503,7 @@ index 30d0df85fba..a14bbb852f8 100644
return res;
}
@@ -6110,6 +6027,7 @@ NTSTATUS WINAPI NtWow64AllocateVirtualMemory64( HANDLE process, ULONG64 *ret, UL
@@ -6143,6 +6060,7 @@ NTSTATUS WINAPI NtWow64AllocateVirtualMemory64( HANDLE process, ULONG64 *ret, UL
*ret = (ULONG_PTR)base;
*size_ptr = size;
}

View File

@@ -1,4 +1,4 @@
From 7c62f566f9b48dacab5cc79dac496f498aaae68b Mon Sep 17 00:00:00 2001
From d13a3f4498ddc7f10a1d435edb5c59b71dca1efc Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Fri, 1 Dec 2023 14:55:20 -0600
Subject: [PATCH] ntdll: Exclude natively mapped areas from free areas list.
@@ -8,7 +8,7 @@ Subject: [PATCH] ntdll: Exclude natively mapped areas from free areas list.
1 file changed, 95 insertions(+), 9 deletions(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index a14bbb852f8..491597dcb76 100644
index c0537375ab8..b4d7f6a580d 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -127,6 +127,7 @@ struct file_view
@@ -19,8 +19,8 @@ index a14bbb852f8..491597dcb76 100644
/* Conversion from VPROT_* to Win32 flags */
static const BYTE VIRTUAL_Win32Flags[16] =
@@ -180,6 +181,8 @@ static void *working_set_limit = (void *)0x7fff0000;
#endif
@@ -175,6 +176,8 @@ static void *working_set_limit = (void *)0x7fff0000;
static void *host_addr_space_limit; /* top of the host virtual address space */
static struct file_view *arm64ec_view;
+static const ptrdiff_t max_try_map_step = 0x40000000;
@@ -28,7 +28,7 @@ index a14bbb852f8..491597dcb76 100644
ULONG_PTR user_space_wow_limit = 0;
struct _KUSER_SHARED_DATA *user_shared_data = (void *)0x7ffe0000;
@@ -1134,7 +1137,9 @@ static void dump_view( struct file_view *view )
@@ -1129,7 +1132,9 @@ static void dump_view( struct file_view *view )
BYTE prot = get_page_vprot( addr );
TRACE( "View: %p - %p", addr, addr + view->size - 1 );
@@ -39,7 +39,7 @@ index a14bbb852f8..491597dcb76 100644
TRACE( " (builtin image)\n" );
else if (view->protect & VPROT_FREE_PLACEHOLDER)
TRACE( " (placeholder)\n" );
@@ -1254,6 +1259,8 @@ struct alloc_area
@@ -1249,6 +1254,8 @@ struct alloc_area
int unix_prot;
BOOL top_down;
UINT_PTR align_mask;
@@ -48,7 +48,7 @@ index a14bbb852f8..491597dcb76 100644
};
/***********************************************************************
@@ -1262,9 +1269,12 @@ struct alloc_area
@@ -1257,9 +1264,12 @@ struct alloc_area
* Try mmaping some expected free memory region, eventually stepping and
* retrying inside it, and return where it actually succeeded, or NULL.
*/
@@ -63,7 +63,7 @@ index a14bbb852f8..491597dcb76 100644
void *ptr;
while (start && base <= start && (char*)start + size <= (char*)end)
@@ -1277,12 +1287,19 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
@@ -1272,12 +1282,19 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
strerror(errno), start, (char *)start + size, unix_prot );
return NULL;
}
@@ -84,7 +84,7 @@ index a14bbb852f8..491597dcb76 100644
}
return NULL;
@@ -1707,11 +1724,11 @@ static void *try_map_free_area_range( struct alloc_area *area, char *start, char
@@ -1702,11 +1719,11 @@ static void *try_map_free_area_range( struct alloc_area *area, char *start, char
{
if (end - start < area->size) return NULL;
alloc_start = ROUND_ADDR( end - area->size, area->align_mask );
@@ -98,7 +98,7 @@ index a14bbb852f8..491597dcb76 100644
}
static void *alloc_free_area_in_range( struct alloc_area *area, char *base, char *end )
@@ -1801,9 +1818,10 @@ static void *alloc_free_area( char *limit_low, char *limit_high, size_t size, BO
@@ -1796,9 +1813,10 @@ static void *alloc_free_area( char *limit_low, char *limit_high, size_t size, BO
struct range_entry *range, *ranges_start, *ranges_end;
char *reserve_start, *reserve_end;
struct alloc_area area;
@@ -110,7 +110,7 @@ index a14bbb852f8..491597dcb76 100644
TRACE("limit %p-%p, size %p, top_down %#x.\n", limit_low, limit_high, (void *)size, top_down);
@@ -1868,6 +1886,50 @@ static void *alloc_free_area( char *limit_low, char *limit_high, size_t size, BO
@@ -1863,6 +1881,50 @@ static void *alloc_free_area( char *limit_low, char *limit_high, size_t size, BO
if ((result = alloc_free_area_in_range( &area, base, end )))
break;
}
@@ -161,7 +161,7 @@ index a14bbb852f8..491597dcb76 100644
return result;
}
@@ -1927,6 +1989,17 @@ failed:
@@ -1922,6 +1984,17 @@ failed:
return status;
}
@@ -179,7 +179,7 @@ index a14bbb852f8..491597dcb76 100644
/***********************************************************************
* map_view
*
@@ -1976,7 +2049,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
@@ -1972,7 +2045,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
if (!align_mask) align_mask = granularity_mask;
if (!(ptr = alloc_free_area( (void *)limit_low, (void *)limit_high, size, top_down, get_unix_prot( vprot ), align_mask )))
@@ -196,7 +196,7 @@ index a14bbb852f8..491597dcb76 100644
}
status = create_view( view_ret, ptr, size, vprot );
if (status != STATUS_SUCCESS) unmap_area( ptr, size );
@@ -4255,7 +4336,12 @@ void virtual_set_force_exec( BOOL enable )
@@ -4287,7 +4368,12 @@ void virtual_set_force_exec( BOOL enable )
WINE_RB_FOR_EACH_ENTRY( view, &views_tree, struct file_view, entry )
{
/* file mappings are always accessible */

View File

@@ -1,4 +1,4 @@
From e8fe190b8e6352987961e1da946d125b99309034 Mon Sep 17 00:00:00 2001
From 7b59a735bf21a4db50669c360666191493767909 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 3 Apr 2017 05:30:27 +0200
Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data.
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data.
2 files changed, 117 insertions(+)
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
index ec6f2d5c6a7..654a83c92f9 100644
index 8f418ef09a9..30f089bd64f 100644
--- a/dlls/kernel32/tests/loader.c
+++ b/dlls/kernel32/tests/loader.c
@@ -28,6 +28,7 @@
@@ -20,7 +20,7 @@ index ec6f2d5c6a7..654a83c92f9 100644
#include "wine/test.h"
#include "delayloadhandler.h"
@@ -4207,6 +4208,79 @@ static void test_Wow64Transition(void)
@@ -4205,6 +4206,79 @@ static void test_Wow64Transition(void)
debugstr_wn(name->SectionFileName.Buffer, name->SectionFileName.Length / sizeof(WCHAR)));
}
@@ -100,7 +100,7 @@ index ec6f2d5c6a7..654a83c92f9 100644
START_TEST(loader)
{
int argc;
@@ -4288,6 +4362,7 @@ START_TEST(loader)
@@ -4286,6 +4360,7 @@ START_TEST(loader)
test_InMemoryOrderModuleList();
test_LoadPackagedLibrary();
test_wow64_redirection();
@@ -109,7 +109,7 @@ index ec6f2d5c6a7..654a83c92f9 100644
test_dll_file( "kernel32.dll" );
test_dll_file( "advapi32.dll" );
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 851fdcf3535..ed169d7bced 100644
index 714d3f17ff0..415fcbb1aa6 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -133,6 +133,9 @@ struct file_id
@@ -156,7 +156,7 @@ index 851fdcf3535..ed169d7bced 100644
/*************************************************************************
* get_modref
*
@@ -1522,7 +1552,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
@@ -1528,7 +1558,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
&wm->ldr.InLoadOrderLinks);
InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList,
&wm->ldr.InMemoryOrderLinks);
@@ -169,7 +169,7 @@ index 851fdcf3535..ed169d7bced 100644
if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT))
{
@@ -2214,6 +2249,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
@@ -2226,6 +2261,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
/* the module has only be inserted in the load & memory order lists */
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
@@ -177,7 +177,7 @@ index 851fdcf3535..ed169d7bced 100644
/* FIXME: there are several more dangling references
* left. Including dlls loaded by this dll before the
@@ -3896,6 +3932,7 @@ static void free_modref( WINE_MODREF *wm )
@@ -3908,6 +3944,7 @@ static void free_modref( WINE_MODREF *wm )
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
@@ -185,15 +185,15 @@ index 851fdcf3535..ed169d7bced 100644
if (wm->ldr.InInitializationOrderLinks.Flink)
RemoveEntryList(&wm->ldr.InInitializationOrderLinks);
@@ -4276,6 +4313,7 @@ void loader_init( CONTEXT *context, void **entry )
@@ -4263,6 +4300,7 @@ void loader_init( CONTEXT *context, void **entry )
ANSI_STRING ctrl_routine = RTL_CONSTANT_STRING( "CtrlRoutine" );
WINE_MODREF *kernel32;
PEB *peb = NtCurrentTeb()->Peb;
+ unsigned int i;
NtQueryVirtualMemory( GetCurrentProcess(), LdrInitializeThunk, MemoryBasicInformation,
&meminfo, sizeof(meminfo), NULL );
@@ -4294,6 +4332,10 @@ void loader_init( CONTEXT *context, void **entry )
peb->LdrData = &ldr;
peb->FastPebLock = &peb_lock;
@@ -4278,6 +4316,10 @@ void loader_init( CONTEXT *context, void **entry )
RtlSetBits( peb->TlsBitmap, 0, NtCurrentTeb()->WowTebOffset ? WOW64_TLS_MAX_NUMBER : 1 );
RtlSetBits( peb->TlsBitmap, NTDLL_TLS_ERRNO, 1 );

View File

@@ -44,7 +44,7 @@ index af67e8d75bf..608b64a32ad 100644
+ GetWindowsDirectoryW( path, MAX_PATH );
+ path[2] = 0;
+ ok( QueryDosDeviceW( path, temp, MAX_PATH ),
+ "QueryDosDeviceW failed with error %u\n", GetLastError() );
+ "QueryDosDeviceW failed with error %lx\n", GetLastError() );
+ lstrcatW( temp, sepW );
+ lstrcatW( temp, path+3 );
+ lstrcatW( temp, sepW );
@@ -53,12 +53,12 @@ index af67e8d75bf..608b64a32ad 100644
+ pRtlInitUnicodeString( &nameW, temp );
+ status = pNtQueryFullAttributesFile( &attr, &info );
+ ok( status == STATUS_SUCCESS,
+ "query %s failed %x\n", wine_dbgstr_w(nameW.Buffer), status );
+ "query %s failed %lx\n", wine_dbgstr_w(nameW.Buffer), status );
+
+ pRtlInitUnicodeString( &nameW, systemrootExplorerW );
+ status = pNtQueryFullAttributesFile( &attr, &info );
+ ok( status == STATUS_SUCCESS,
+ "query %s failed %x\n", wine_dbgstr_w(nameW.Buffer), status );
+ "query %s failed %lx\n", wine_dbgstr_w(nameW.Buffer), status );
}
static void open_file_test(void)

View File

@@ -81,14 +81,14 @@ index 442ad729540..dcdac2a936a 100644
+
+ size1 = size2 = MAX_PATH * sizeof(WCHAR);
+ status = pRtlQueryPackageIdentity((HANDLE)~(ULONG_PTR)3, buf1, &size1, buf2, &size2, NULL);
+ ok(status == STATUS_NOT_FOUND, "expected STATUS_NOT_FOUND, got %08x\n", status);
+ ok(status == STATUS_NOT_FOUND, "expected STATUS_NOT_FOUND, got %08lx\n", status);
+
+ CoInitializeEx(0, COINIT_APARTMENTTHREADED);
+ hr = CoCreateInstance(&CLSID_ApplicationActivationManager, NULL, CLSCTX_LOCAL_SERVER,
+ &IID_IApplicationActivationManager, (void **)&manager);
+ if (FAILED(hr))
+ {
+ todo_wine win_skip("Failed to create ApplicationActivationManager (%x)\n", hr);
+ todo_wine win_skip("Failed to create ApplicationActivationManager (%lx)\n", hr);
+ goto done;
+ }
+
@@ -96,28 +96,28 @@ index 442ad729540..dcdac2a936a 100644
+ AO_NOERRORUI, &processid);
+ if (FAILED(hr))
+ {
+ todo_wine win_skip("Failed to start program (%x)\n", hr);
+ todo_wine win_skip("Failed to start program (%lx)\n", hr);
+ IApplicationActivationManager_Release(manager);
+ goto done;
+ }
+
+ process = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_TERMINATE, FALSE, processid);
+ ok(process != NULL, "OpenProcess failed with %u\n", GetLastError());
+ ok(process != NULL, "OpenProcess failed with %lx\n", GetLastError());
+ ret = OpenProcessToken(process, TOKEN_QUERY, &token);
+ ok(ret, "OpenProcessToken failed with error %u\n", GetLastError());
+ ok(ret, "OpenProcessToken failed with error %lx\n", GetLastError());
+
+ size1 = size2 = MAX_PATH * sizeof(WCHAR);
+ status = pRtlQueryPackageIdentity(token, buf1, &size1, buf2, &size2, NULL);
+ ok(status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
+ ok(status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08lx\n", status);
+
+ ok(!memcmp(buf1, fullnameW, sizeof(fullnameW) - sizeof(WCHAR)),
+ "Expected buf1 to begin with %s, got %s\n", wine_dbgstr_w(fullnameW), wine_dbgstr_w(buf1));
+ ok(size1 >= sizeof(WCHAR) && !(size1 % sizeof(WCHAR)), "Unexpected size1 = %lu\n", size1);
+ ok(buf1[size1 / sizeof(WCHAR) - 1] == 0, "Expected buf1[%lu] == 0\n", size1 / sizeof(WCHAR) - 1);
+ ok(size1 >= sizeof(WCHAR) && !(size1 % sizeof(WCHAR)), "Unexpected size1 = %Iu\n", size1);
+ ok(buf1[size1 / sizeof(WCHAR) - 1] == 0, "Expected buf1[%Iu] == 0\n", size1 / sizeof(WCHAR) - 1);
+
+ ok(!lstrcmpW(buf2, appidW), "Expected buf2 to be %s, got %s\n", wine_dbgstr_w(appidW), wine_dbgstr_w(buf2));
+ ok(size2 >= sizeof(WCHAR) && !(size2 % sizeof(WCHAR)), "Unexpected size2 = %lu\n", size2);
+ ok(buf2[size2 / sizeof(WCHAR) - 1] == 0, "Expected buf2[%lu] == 0\n", size2 / sizeof(WCHAR) - 1);
+ ok(size2 >= sizeof(WCHAR) && !(size2 % sizeof(WCHAR)), "Unexpected size2 = %Iu\n", size2);
+ ok(buf2[size2 / sizeof(WCHAR) - 1] == 0, "Expected buf2[%Iu] == 0\n", size2 / sizeof(WCHAR) - 1);
+
+ CloseHandle(token);
+ TerminateProcess(process, 0);

View File

@@ -1,22 +1,22 @@
From 648d4f13e26a076feca219b76111c03262504d95 Mon Sep 17 00:00:00 2001
From 9491dc2b72947bef59d8fb191fdc27a96bcc1c68 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 3 Feb 2023 14:16:21 +1100
Subject: [PATCH 04/42] odbc32: Add initial tests
Subject: [PATCH] odbc32: Add initial tests
---
configure | 1 +
configure.ac | 1 +
dlls/odbc32/tests/Makefile.in | 4 +
dlls/odbc32/tests/Makefile.in | 5 +
dlls/odbc32/tests/connection.c | 165 +++++++++++++++++++++++++++++++++
4 files changed, 171 insertions(+)
4 files changed, 172 insertions(+)
create mode 100644 dlls/odbc32/tests/Makefile.in
create mode 100644 dlls/odbc32/tests/connection.c
diff --git a/configure b/configure
index 66e607337db..40b93ce0490 100755
index ca6e87d4740..027f3fbe53d 100755
--- a/configure
+++ b/configure
@@ -21634,6 +21634,7 @@ wine_fn_config_makefile dlls/ntprint enable_ntprint
@@ -22137,6 +22137,7 @@ wine_fn_config_makefile dlls/ntprint enable_ntprint
wine_fn_config_makefile dlls/ntprint/tests enable_tests
wine_fn_config_makefile dlls/objsel enable_objsel
wine_fn_config_makefile dlls/odbc32 enable_odbc32
@@ -25,10 +25,10 @@ index 66e607337db..40b93ce0490 100755
wine_fn_config_makefile dlls/odbccp32 enable_odbccp32
wine_fn_config_makefile dlls/odbccp32/tests enable_tests
diff --git a/configure.ac b/configure.ac
index 1033af2e613..249ea8b3f05 100644
index cba55126869..fc09d145ee7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2898,6 +2898,7 @@ WINE_CONFIG_MAKEFILE(dlls/ntprint)
@@ -2954,6 +2954,7 @@ WINE_CONFIG_MAKEFILE(dlls/ntprint)
WINE_CONFIG_MAKEFILE(dlls/ntprint/tests)
WINE_CONFIG_MAKEFILE(dlls/objsel)
WINE_CONFIG_MAKEFILE(dlls/odbc32)
@@ -38,14 +38,15 @@ index 1033af2e613..249ea8b3f05 100644
WINE_CONFIG_MAKEFILE(dlls/odbccp32/tests)
diff --git a/dlls/odbc32/tests/Makefile.in b/dlls/odbc32/tests/Makefile.in
new file mode 100644
index 00000000000..4d8716ed2ed
index 00000000000..d7a300417a0
--- /dev/null
+++ b/dlls/odbc32/tests/Makefile.in
@@ -0,0 +1,4 @@
@@ -0,0 +1,5 @@
+TESTDLL = odbc32.dll
+IMPORTS = odbc32
+
+C_SRCS = connection.c
+SOURCES = \
+ connection.c
diff --git a/dlls/odbc32/tests/connection.c b/dlls/odbc32/tests/connection.c
new file mode 100644
index 00000000000..b04d93c42c5
@@ -218,5 +219,5 @@ index 00000000000..b04d93c42c5
+ test_SQLGetDiagRec();
+}
--
2.39.1
2.43.0

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