Compare commits

...

55 Commits
v8.16 ... v8.21

Author SHA1 Message Date
Alistair Leslie-Hughes
e546e2f1e3 Release v8.21 2023-11-25 15:29:41 +11:00
Alistair Leslie-Hughes
234289ffd8 Rebase against 13c43cf3d06178dc39d98981f55d27e3cbd79ad0. 2023-11-25 13:08:00 +11:00
Alistair Leslie-Hughes
52219e1eef Rebase against e04c976fa95776300ee5b485a6b65c0071d3bb84.
Sync to latest code - macos issue
2023-11-24 20:06:01 +11:00
Alistair Leslie-Hughes
d5bf5c5e7d Updatred vkd3d-latest patchset
Fix for macos build.  Squished update into one.
2023-11-24 19:40:14 +11:00
Alistair Leslie-Hughes
d1eba8eddd Updated vkd3d-latest patchset 2023-11-24 19:14:11 +11:00
Alistair Leslie-Hughes
8717caf994 Rebase against 9b9f7a007786b32a4c80f69ceb6753acdc8c2091. 2023-11-23 09:53:41 +11:00
Alistair Leslie-Hughes
6278681370 Rebase against c64aa0006e4a33d755a57a693cd81dc1ed95fa9d. 2023-11-17 11:20:22 +11:00
Alistair Leslie-Hughes
a101f89071 Rebase against b0ad8b8cfb6e664cc6cfdd87ddb28af077149417. 2023-11-16 11:07:12 +11:00
Alistair Leslie-Hughes
e278be7a45 Rebase against 137638e185e9302602bcd9cc796d7bcfa03caee5. 2023-11-15 15:40:46 +11:00
Alistair Leslie-Hughes
f32f8c62ac Release v8.20 2023-11-11 22:04:12 +11:00
Alistair Leslie-Hughes
284d054923 Updated vkd3d-latest patchset 2023-11-11 09:57:14 +11:00
Alistair Leslie-Hughes
88c8c3688e Rebase against 3a8d71041c159d76a76856867caa1de8ca297151. 2023-11-11 09:42:35 +11:00
Alistair Leslie-Hughes
e26a92bace Updated vkd3d-latest patchset 2023-11-07 16:14:23 +11:00
Zebediah Figura
0c217b7048 Rebase against b1bd72343e49f68e42b4493055b1f5de9796d335. 2023-11-06 17:23:28 -06:00
Zebediah Figura
c02c8b8c25 patchinstall.py: Force applying with --whitespace=warn. 2023-11-04 12:08:26 -05:00
Alistair Leslie-Hughes
9150a8751e Rebase against cb4939eb0ebfe24d6a818e3de060363a58ef9535. 2023-11-04 14:20:40 +11:00
Alistair Leslie-Hughes
aeddc191a7 Rebase against a3209daea543104fbfac5900bf9ec0c05a0a43fc. 2023-11-02 14:01:32 +11:00
Alistair Leslie-Hughes
753c2c9012 Rebase against 0170cd3a4c67bd99291234dd8e0d638a824d7715. 2023-11-01 12:11:07 +11:00
Alistair Leslie-Hughes
28a14dc978 Rebase against 28210162472459d2afe57e638e2f50ee37f2b63f. 2023-10-31 10:54:56 +11:00
Alistair Leslie-Hughes
c6e61e267a Release v8.19 2023-10-30 08:49:23 +11:00
Alistair Leslie-Hughes
519fde9b1a Updated vkd3d-latest patchset 2023-10-30 07:33:57 +11:00
Alistair Leslie-Hughes
e9a4c9a06f Updated fltmgr.sys-FltBuildDefaultSecurityDescriptor patchset 2023-10-30 07:33:57 +11:00
Alistair Leslie-Hughes
28180a60fd Rebase against 6391b8d5c99c206689c6e55a675b51086d8be821. 2023-10-19 09:21:42 +11:00
Alistair Leslie-Hughes
9486ca2543 Rebase against 0c7a09cb1f92d55d8381ff6460e13ed085d434db. 2023-10-18 08:56:48 +11:00
Alistair Leslie-Hughes
7d2672183d Rebase against de66ea9df6746917cada71d2c27b5cc38cbdd2f0. 2023-10-17 10:12:05 +11:00
Alistair Leslie-Hughes
3dcd383186 Remove Whitespace noise 2023-10-16 11:21:36 +11:00
Alistair Leslie-Hughes
a562590978 Release v8.18 2023-10-15 08:09:19 +11:00
Alistair Leslie-Hughes
428a6cdcd0 Rebase against 9d78031de6261f29d42e18db04f9925cfba24108. 2023-10-14 09:49:00 +11:00
Alistair Leslie-Hughes
9497ddf2fe Updated vkd3d-latest patchset 2023-10-13 10:12:25 +11:00
Alistair Leslie-Hughes
5967c68f85 Rebase against d177709b10ce07ddd234b0e8e00764ae4b1d8488. 2023-10-13 10:12:24 +11:00
Alistair Leslie-Hughes
5d9b555b72 Rebase against 8943fcbca4963ac6740a5c6e13d5fc9b7748cad2. 2023-10-11 19:13:43 +11:00
Alistair Leslie-Hughes
f8231c23e7 Rebase against eb06f991725d21e1ce4e3353a377e8708ae8471f. 2023-10-10 18:41:08 +11:00
Alistair Leslie-Hughes
72534ddaea Rebase against 41ab207c71cfaa82ef95c83b291654aba023a45c. 2023-10-06 08:38:46 +11:00
Alistair Leslie-Hughes
f75a04e4aa Rebase against 3f4f116dc52c2d37b98e62c3d9bdd8a79e44ccc1. 2023-10-06 06:59:15 +11:00
Alistair Leslie-Hughes
7ab0b0f5f5 Updated odbc-remove-unixodbc patchset 2023-10-06 06:59:15 +11:00
Paul Gofman
953c54145c Updated msxml3-FreeThreadedXMLHTTP60 patchset. 2023-10-05 13:53:15 -06:00
Alistair Leslie-Hughes
a777ae6b81 Rebase against d5b64a1f14b472563c95a02d0062ba592c64e06a. 2023-10-04 07:49:18 +11:00
Alistair Leslie-Hughes
a01941da19 Rebase against 209b2c23c5e302ed9211d67ab044386d3fe0bef4. 2023-10-03 09:48:06 +11:00
Alistair Leslie-Hughes
2827fd6727 Release v8.17.1 2023-10-02 13:02:27 +11:00
Alistair Leslie-Hughes
c55fa81f35 Updated sapi-ISpObjectToken-CreateInstance patchset 2023-10-01 09:43:09 +11:00
Alistair Leslie-Hughes
46ac00b4a4 Updated ntdll-Junction_Points patchset 2023-10-01 09:36:47 +11:00
Alistair Leslie-Hughes
3aed8374fa Updated d3d12core-D3D12GetInterface patchset 2023-10-01 09:33:09 +11:00
Alistair Leslie-Hughes
8b016d206e Updated eventfd_synchronization patchset 2023-10-01 08:49:40 +11:00
Alistair Leslie-Hughes
2e55aa06c2 Release v8.17 2023-09-30 12:24:25 +10:00
Alistair Leslie-Hughes
1f62a67dcc Added d3dx9_36_controller patchset 2023-09-30 10:32:04 +10:00
Alistair Leslie-Hughes
82924e9a17 Rebase against 3db7506221e44e8091887d7eb42fe1666d422166. 2023-09-30 09:55:54 +10:00
Alistair Leslie-Hughes
b7b4fbcd32 Updated vkd3d-latest patchset 2023-09-29 18:11:42 +10:00
Alistair Leslie-Hughes
83504ec21a Rebase against 9e0487c4cc36cdbf915d35222c875d23f54958ae. 2023-09-29 18:11:07 +10:00
Alistair Leslie-Hughes
0860bc1c5e Rebase against 416a273241e6eb7a8d15380387fef00e159b7277. 2023-09-28 08:40:53 +10:00
Alistair Leslie-Hughes
8bfcd6ad7d Rebase against 81c8c73de299c0d61d1fff8ad9b88a9deb5b9479. 2023-09-26 09:26:16 +10:00
Alistair Leslie-Hughes
d2cf83298d Rebase against 56e58cbed19bb5307598d4f433d5b3f01af91a1b. 2023-09-24 08:30:07 +10:00
Alistair Leslie-Hughes
6e8855e1a0 Updated user32-recursive-activation patchset
Fix warning.
2023-09-22 09:25:26 +10:00
Alistair Leslie-Hughes
a7511fa5da Updated vkd3d-latest to 1.9 2023-09-22 09:15:39 +10:00
Alistair Leslie-Hughes
b3e9ea1058 Rebase against ee17400c05d88fa29d0b895fa01902adfc91ba7f. 2023-09-21 08:08:08 +10:00
Alistair Leslie-Hughes
c4da0a8993 Rebase against 6558611fa2d24447297cb62d168b924c33839c43. 2023-09-20 08:16:07 +10:00
87 changed files with 23729 additions and 52909 deletions

View File

@@ -1,38 +1,17 @@
From 81a36b530261731d6020e09770237ae5bf58166d Mon Sep 17 00:00:00 2001
From ebe00ceb4f2d24f2611dbec87486d6597a3466a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 2 May 2014 20:46:19 +0200
Subject: [PATCH] user32: Decrease minimum SetTimer interval to 5 ms. (try 2)
---
dlls/user32/tests/msg.c | 2 ++
dlls/win32u/message.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
dlls/win32u/message.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 4519da6962d..304a3b87f46 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -10709,6 +10709,7 @@ static void test_timers(void)
start = GetTickCount();
while (GetTickCount()-start < 1001 && GetMessageA(&msg, info.hWnd, 0, 0))
DispatchMessageA(&msg);
+todo_wine
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|| broken(abs(count-64) <= TIMER_COUNT_TOLERANCE) /* most common */
|| broken(abs(count-43) <= TIMER_COUNT_TOLERANCE) /* w2k3, win8 */,
@@ -10779,6 +10780,7 @@ static void test_timers_no_wnd(void)
start = GetTickCount();
while (GetTickCount()-start < 1001 && GetMessageA(&msg, NULL, 0, 0))
DispatchMessageA(&msg);
+todo_wine
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|| broken(abs(count-64) <= TIMER_COUNT_TOLERANCE) /* most common */
|| broken(abs(count-43) <= TIMER_COUNT_TOLERANCE) /* w1064v1809 */,
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
index d00178e6aa4..513150a3d61 100644
index d2909339983..337d4a2cc1d 100644
--- a/dlls/win32u/message.c
+++ b/dlls/win32u/message.c
@@ -170,7 +170,7 @@ UINT_PTR WINAPI NtUserSetSystemTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIME
@@ -3975,7 +3975,7 @@ UINT_PTR WINAPI NtUserSetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC
if (proc) winproc = alloc_winproc( (WNDPROC)proc, TRUE );
@@ -42,5 +21,5 @@ index d00178e6aa4..513150a3d61 100644
SERVER_START_REQ( set_win_timer )
{
--
2.35.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 36b4dbb687232d783cc3203da1dee4a797606ba7 Mon Sep 17 00:00:00 2001
From e6354103c243e13c177f6a534a9e786cfdcf7c92 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,10 +9,10 @@ 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 255d5afef79..00add6728cc 100644
index 1a87f4d1f5e..31c0a3bae94 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -42,6 +42,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
WINE_DECLARE_DEBUG_CHANNEL(snoop);
WINE_DECLARE_DEBUG_CHANNEL(loaddll);
WINE_DECLARE_DEBUG_CHANNEL(imports);
@@ -20,7 +20,7 @@ index 255d5afef79..00add6728cc 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3536,6 +3537,7 @@ void WINAPI LdrShutdownProcess(void)
@@ -3749,6 +3750,7 @@ void WINAPI LdrShutdownProcess(void)
process_detach();
}
@@ -28,9 +28,9 @@ index 255d5afef79..00add6728cc 100644
/******************************************************************
* RtlExitUserProcess (NTDLL.@)
@@ -3955,6 +3957,9 @@ static void release_address_space(void)
@@ -4195,6 +4197,9 @@ static void release_address_space(void)
*/
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
void loader_init( CONTEXT *context, void **entry )
{
+ OBJECT_ATTRIBUTES staging_event_attr;
+ UNICODE_STRING staging_event_string;
@@ -38,7 +38,7 @@ index 255d5afef79..00add6728cc 100644
static int attach_done;
NTSTATUS status;
ULONG_PTR cookie;
@@ -4041,6 +4046,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
@@ -4274,6 +4279,16 @@ void loader_init( CONTEXT *context, void **entry )
if (NtCurrentTeb()->WowTebOffset) init_wow64( context );
#endif
@@ -56,5 +56,5 @@ index 255d5afef79..00add6728cc 100644
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
RtlReleasePebLock();
--
2.33.0
2.42.0

View File

@@ -18,7 +18,7 @@ index 8778b66138b..94d8fd4da00 100644
@@ -1 +1,4 @@
MODULE = d3d12core.dll
+
+C_SRCS = \
+SOURCES = \
+ d3d12core_main.c
diff --git a/dlls/d3d12core/d3d12core.spec b/dlls/d3d12core/d3d12core.spec
index c9c73bd4ee4..3f3e0a0f2e1 100644
@@ -60,7 +60,7 @@ index 00000000000..75a083ad276
+
+HRESULT WINAPI D3D12GetInterface(REFCLSID rclsid, REFIID riid, void **out)
+{
+ FIXME("%d, %s, %p\n", debugstr_guid(rclsid), debugstr_guid(riid), out);
+ FIXME("%s, %s, %p\n", debugstr_guid(rclsid), debugstr_guid(riid), out);
+
+ return E_NOINTERFACE;
+}

View File

@@ -210,7 +210,7 @@ index 984b2f6..a206e06 100644
+HRESULT WINAPI D3DXComputeTangent(ID3DXMesh *mesh, DWORD stage_idx, DWORD tangent_idx,
+ DWORD binorm_idx, DWORD wrap, const DWORD *adjacency)
+{
+ TRACE("mesh %p, stage_idx %d, tangent_idx %d, binorm_idx %d, wrap %d, adjacency %p.\n",
+ TRACE("mesh %p, stage_idx %ld, tangent_idx %ld, binorm_idx %ld, wrap %ld, adjacency %p.\n",
+ mesh, stage_idx, tangent_idx, binorm_idx, wrap, adjacency);
+
+ return D3DXComputeTangentFrameEx( mesh, D3DDECLUSAGE_TEXCOORD, stage_idx,

View File

@@ -174,18 +174,18 @@ index 1daec158a5f..64b02276843 100644
+ }
+
+ hr = D3DXCreateSkinInfoFVF(4, D3DFVF_XYZ | D3DFVF_NORMAL, 2, &skin_info);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#x\n", hr);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#lx\n", hr);
+
+ skin_info->lpVtbl->SetBoneInfluence(skin_info, 0, 2, bone0_vertices, bone0_weights);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#x\n", hr);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#lx\n", hr);
+ skin_info->lpVtbl->SetBoneOffsetMatrix(skin_info, 0, &matrix);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#x\n", hr);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#lx\n", hr);
+ skin_info->lpVtbl->SetBoneInfluence(skin_info, 1, 2, bone1_vertices, bone1_weights);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#x\n", hr);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#lx\n", hr);
+ skin_info->lpVtbl->SetBoneOffsetMatrix(skin_info, 1, &matrix);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#x\n", hr);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#lx\n", hr);
+ skin_info->lpVtbl->UpdateSkinnedMesh(skin_info, bones_matrix, NULL, vertices_src, vertices_dest);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#x\n", hr);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#lx\n", hr);
+ for (i = 0; i < 4; i++)
+ {
+ ok(compare(vertices_dest[i*2].x, vertices_ref[i*2].x), "Vertex[%d].position.x: got %g, expected %g\n",

View File

@@ -0,0 +1,27 @@
From 1772b5826cbd3adef3f5c09e6c0138a8d367fc8b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 28 Sep 2023 09:14:00 +1000
Subject: [PATCH 1/3] d3dx9: D3DXLoadMeshHierarchyFromXInMemory return default
Animation Controller
---
dlls/d3dx9_36/mesh.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index 8aa4ece69fb..442b56a7e19 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -4019,7 +4019,8 @@ HRESULT WINAPI D3DXLoadMeshHierarchyFromXInMemory(const void *memory, DWORD memo
if (anim_controller)
{
*anim_controller = NULL;
- FIXME("Animation controller creation not implemented.\n");
+ /*FIXME("Animation controller creation not implemented.\n");*/
+ D3DXCreateAnimationController(1, 1, 1, 1, anim_controller);
}
cleanup:
--
2.40.1

View File

@@ -0,0 +1,28 @@
From 164c33e29bfe06d99c58c1ee73dfd6f31dc4c663 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 30 Sep 2023 10:18:54 +1000
Subject: [PATCH] d3dx9: [HACK] D3DXIntersect - Assign hit to FALSE
This functions needs to be implement to make "Humanity Asset" to work correctly.
Added to stop the Infinite loop - Doesn't make the game playable.
---
dlls/d3dx9_36/mesh.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index 822b2d7d410..fdc642c4e0c 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -7645,6 +7645,8 @@ HRESULT WINAPI D3DXIntersect(ID3DXBaseMesh *mesh, const D3DXVECTOR3 *ray_pos, co
FIXME("mesh %p, ray_pos %p, ray_dir %p, hit %p, face_index %p, u %p, v %p, distance %p, all_hits %p, "
"count_of_hits %p stub!\n", mesh, ray_pos, ray_dir, hit, face_index, u, v, distance, all_hits, count_of_hits);
+ *hit = FALSE;
+
return E_NOTIMPL;
}
--
2.42.0

View File

@@ -0,0 +1,4 @@
Fixes: [39876] d3dx9: D3DXLoadMeshHierarchyFromXInMemory return a dummy ID3DXAnimationController.
# This allow Humanity Asset to get in game - Doesn't make the game playable though.
# Requires D3DXIntersect to be implemented.

View File

@@ -1,4 +1,4 @@
From e9f5c886b6b40ca77eb1dd7f0d21bbdc483b7a95 Mon Sep 17 00:00:00 2001
From 9d274e6d152c3f3961212f3cbd71dc8f14641367 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 6 Oct 2014 05:06:06 +0200
Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
@@ -9,7 +9,7 @@ Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/dbghelp/Makefile.in b/dlls/dbghelp/Makefile.in
index 74647820126..9f0aad2fc4f 100644
index 152ef80611a..06ebb65e2af 100644
--- a/dlls/dbghelp/Makefile.in
+++ b/dlls/dbghelp/Makefile.in
@@ -2,7 +2,7 @@ MODULE = dbghelp.dll
@@ -18,11 +18,11 @@ index 74647820126..9f0aad2fc4f 100644
EXTRAINCL = $(ZLIB_PE_CFLAGS)
-EXTRADEFS = -D_IMAGEHLP_SOURCE_
+EXTRADEFS = -D_IMAGEHLP_SOURCE_ -DBINDIR="L\"${bindir}\""
DELAYIMPORTS = version
C_SRCS = \
SOURCES = \
coff.c \
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
index a2a60752a68..a2bca11048f 100644
index 5ada8c70c9b..a9a6303c8d7 100644
--- a/dlls/dbghelp/elf_module.c
+++ b/dlls/dbghelp/elf_module.c
@@ -1457,6 +1457,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
@@ -34,5 +34,5 @@ index a2a60752a68..a2bca11048f 100644
}
--
2.40.1
2.42.0

View File

@@ -70,7 +70,7 @@ index 80556e96787..b3b63d7b361 100644
}
+ if (This->pick_record_size > 0)
+ heap_free(This->pick_records);
+ free(This->pick_records);
+
TRACE("Releasing render target %p.\n", This->rt_iface);
rt_iface = This->rt_iface;
@@ -353,7 +353,7 @@ index 13e639eda3f..bb050fe16b8 100644
+ {
+ if (device->pick_record_size == 0) device->pick_record_size = 1;
+ device->pick_record_size *= 2;
+ device->pick_records = heap_realloc(device->pick_records,
+ device->pick_records = realloc(device->pick_records,
+ sizeof(*device->pick_records) * device->pick_record_size);
+ }
+

View File

@@ -1,157 +0,0 @@
From 87bf08071997f446498bdea2d18d1bb539a1990e Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 2 Dec 2022 14:41:30 +1100
Subject: [PATCH] dmime: Implement IDirectMusicSegment8 Download
---
dlls/dmime/dmime_private.h | 2 +
dlls/dmime/performance.c | 7 +++
dlls/dmime/segment.c | 87 ++++++++++++++++++++++++++++++++++++--
3 files changed, 93 insertions(+), 3 deletions(-)
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index 6102fd5ec2f..da40b58ad9b 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -71,6 +71,8 @@ extern void set_audiopath_perf_pointer(IDirectMusicAudioPath*,IDirectMusicPerfor
extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
+extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
+
/*****************************************************************************
* Auxiliary definitions
*/
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index 1f8de0837d5..622939f3553 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -253,6 +253,13 @@ static inline struct performance *impl_from_IDirectMusicPerformance8(IDirectMusi
return CONTAINING_RECORD(iface, struct performance, IDirectMusicPerformance8_iface);
}
+IDirectSound *get_dsound_interface(IDirectMusicPerformance8* iface)
+{
+ struct performance *This = impl_from_IDirectMusicPerformance8(iface);
+ return This->dsound;
+}
+
+
/* IDirectMusicPerformance8 IUnknown part: */
static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface, REFIID riid, void **ret_iface)
{
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index 39a5333fbbb..ce49ddc9940 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -37,6 +37,7 @@ typedef struct IDirectMusicSegment8Impl {
PCMWAVEFORMAT wave_format;
void *wave_data;
int data_size;
+ IDirectSoundBuffer *buffer;
} IDirectMusicSegment8Impl;
IDirectMusicSegment8Impl *create_segment(void);
@@ -90,6 +91,8 @@ static ULONG WINAPI IDirectMusicSegment8Impl_Release(IDirectMusicSegment8 *iface
TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) {
+ if (This->buffer)
+ IDirectSoundBuffer_Release(This->buffer);
if (This->wave_data)
free(This->wave_data);
@@ -559,9 +562,87 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_Compose(IDirectMusicSegment8 *ifa
static HRESULT WINAPI IDirectMusicSegment8Impl_Download(IDirectMusicSegment8 *iface,
IUnknown *pAudioPath)
{
- IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
- FIXME("(%p, %p): stub\n", This, pAudioPath);
- return S_OK;
+ IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+ IDirectMusicPerformance8 *perf;
+ IDirectMusicAudioPath *audio;
+ IDirectSound *dsound;
+ HRESULT hr;
+ DSBUFFERDESC dsbd = {.dwSize = sizeof(dsbd)};
+ void *data;
+ DWORD size;
+ DWORD buffer = 0;
+
+ TRACE("(%p, %p)\n", This, pAudioPath);
+
+ if (!pAudioPath)
+ return E_INVALIDARG;
+
+ if (This->buffer)
+ {
+ TRACE("Using Cached buffer\n");
+ return S_OK;
+ }
+
+ /* pAudioPath can either be IDirectMusicAudioPath or IDirectMusicPerformance */
+ hr = IUnknown_QueryInterface(pAudioPath, &IID_IDirectMusicPerformance8, (void**)&perf);
+ if (FAILED(hr))
+ {
+ TRACE("Checking for IDirectMusicAudioPath interface\n");
+ hr = IUnknown_QueryInterface(pAudioPath, &IID_IDirectMusicAudioPath, (void**)&audio);
+ if (FAILED(hr))
+ {
+ WARN("Cannot query for IDirectMusicAudioPath\n");
+ return E_INVALIDARG;
+ }
+
+ IDirectMusicAudioPath_GetObjectInPath(audio, DMUS_PCHANNEL_ALL, DMUS_PATH_PERFORMANCE, buffer, &GUID_NULL,
+ 0, &IID_IDirectMusicPerformance, (void**)&perf);
+ IDirectMusicAudioPath_Release(audio);
+ }
+
+ if (!perf)
+ {
+ ERR("Failed to get IDirectMusicPerformance interface\n");
+ return E_INVALIDARG;
+ }
+
+ dsound = get_dsound_interface(perf);
+ if (!dsound)
+ {
+ ERR("Failed get_dsound_interface\n");
+ return E_INVALIDARG;
+ }
+
+ if (This->data_size == 0)
+ {
+ FIXME("No wave data skipping\n");
+ return S_OK;
+ }
+
+ dsbd.dwBufferBytes = This->data_size;
+ dsbd.lpwfxFormat = (WAVEFORMATEX*)&This->wave_format;
+
+ hr = IDirectSound_CreateSoundBuffer(dsound, &dsbd, &This->buffer, NULL);
+ if (FAILED(hr))
+ {
+ ERR("IDirectSound_CreateSoundBuffer failed 0x%08lx\n", hr);
+ return E_INVALIDARG;
+ }
+
+ TRACE("CreateSoundBuffer successful\n");
+
+ hr = IDirectSoundBuffer_Lock(This->buffer, 0, This->data_size, &data, &size, NULL, 0, 0);
+ TRACE("IDirectSoundBuffer_Lock hr 0x%08lx\n", hr);
+
+ memcpy(data, This->wave_data, This->data_size);
+
+ hr = IDirectSoundBuffer_Unlock(This->buffer, data, This->data_size, NULL, 0);
+ TRACE("IDirectSoundBuffer_Unlock hr 0x%08lx\n", hr);
+
+ /*hr = IDirectSoundBuffer_Play(This->buffer, 0, 0, 0);
+ TRACE("IDirectSoundBuffer_Play hr 0x%08lx\n", hr);*/
+
+ return S_OK;
}
static HRESULT WINAPI IDirectMusicSegment8Impl_Unload(IDirectMusicSegment8 *iface,
--
2.40.1

View File

@@ -1,80 +0,0 @@
From 43007318a6303312b6226c9ede009e4299826af3 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 12 Dec 2022 15:20:10 +1100
Subject: [PATCH] dmime: Play a sound in IDirectMusicPerformance8 PlaySegmentEx
---
dlls/dmime/dmime_private.h | 1 +
dlls/dmime/performance.c | 25 +++++++++++++++++++------
dlls/dmime/segment.c | 6 ++++++
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index da40b58ad9b..4532528f535 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -72,6 +72,7 @@ extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffe
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
+extern IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface);
/*****************************************************************************
* Auxiliary definitions
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index 622939f3553..c7b149f0686 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -1028,13 +1028,26 @@ static HRESULT WINAPI performance_PlaySegmentEx(IDirectMusicPerformance8 *iface,
WCHAR *pwzSegmentName, IUnknown *pTransition, DWORD dwFlags, __int64 i64StartTime,
IDirectMusicSegmentState **ppSegmentState, IUnknown *pFrom, IUnknown *pAudioPath)
{
- struct performance *This = impl_from_IDirectMusicPerformance8(iface);
+ struct performance *This = impl_from_IDirectMusicPerformance8(iface);
+ IDirectMusicSegment8 *segment;
+ IDirectSoundBuffer *buffer;
+ HRESULT hr;
- FIXME("(%p, %p, %p, %p, %ld, 0x%s, %p, %p, %p): stub\n", This, pSource, pwzSegmentName,
- pTransition, dwFlags, wine_dbgstr_longlong(i64StartTime), ppSegmentState, pFrom, pAudioPath);
- if (ppSegmentState)
- return create_dmsegmentstate(&IID_IDirectMusicSegmentState,(void**)ppSegmentState);
- return S_OK;
+ FIXME("(%p, %p, %p, %p, %ld, 0x%s, %p, %p, %p): semi-stub\n", This, pSource, pwzSegmentName,
+ pTransition, dwFlags, wine_dbgstr_longlong(i64StartTime), ppSegmentState, pFrom, pAudioPath);
+
+ hr = IUnknown_QueryInterface(pSource, &IID_IDirectMusicSegment8, (void**)&segment);
+ if (FAILED(hr))
+ return hr;
+
+ buffer = get_segment_buffer(segment);
+
+ if (segment)
+ hr = IDirectSoundBuffer_Play(buffer, 0, 0, 0);
+
+ if (ppSegmentState)
+ return create_dmsegmentstate(&IID_IDirectMusicSegmentState,(void**)ppSegmentState);
+ return S_OK;
}
static HRESULT WINAPI performance_StopEx(IDirectMusicPerformance8 *iface, IUnknown *pObjectToStop,
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index ce49ddc9940..ad121736acd 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -47,6 +47,12 @@ static inline IDirectMusicSegment8Impl *impl_from_IDirectMusicSegment8(IDirectMu
return CONTAINING_RECORD(iface, IDirectMusicSegment8Impl, IDirectMusicSegment8_iface);
}
+IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface)
+{
+ IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+ return This->buffer;
+}
+
static HRESULT WINAPI IDirectMusicSegment8Impl_QueryInterface(IDirectMusicSegment8 *iface,
REFIID riid, void **ret_iface)
{
--
2.40.1

View File

@@ -1,13 +0,0 @@
Fixes: [48220] dmime: Handle basic loading of Wave files and playing them.
Fixes: [61322] dmine: No Sound in Black Rockman Shooter.
Fixes: [34751] dmime: Aura: Fate of the Ages: sounds aren't played, but music works fine
Fixes: [9027] dmime: No sound for rise of nations - all versions.
# Also
# - Cloning Clyde demo
# Doesnt fix
# The following are known not to work, at the moment.
# [31586] : Myst sounds (Voices)
# [30969] : Tron 2.0 Background music
# [32896] : Serious Sam: The Random Encounter

View File

@@ -1,4 +1,4 @@
From d4094baaba721220b0a81170d1f9e6c276dae4ae Mon Sep 17 00:00:00 2001
From 05ebaac121b440567aa88de7a77d0ef19a8d9242 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 12:09:22 -0500
Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
@@ -16,10 +16,10 @@ Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
create mode 100644 dlls/ntdll/unix/esync.h
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index f8ca3e689ec..82af2152595 100644
index 74e6da5bb56..a2b498759a9 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -47,6 +47,7 @@ C_SRCS = \
@@ -48,6 +48,7 @@ SOURCES = \
unix/cdrom.c \
unix/debug.c \
unix/env.c \
@@ -345,7 +345,7 @@ index 00000000000..a50a755149a
+
+extern int receive_fd( obj_handle_t *handle ) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 5b8b6962b4a..92855f7cccc 100644
index 42b5aa9d84e..974a3624a28 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -87,6 +87,7 @@
@@ -354,9 +354,9 @@ index 5b8b6962b4a..92855f7cccc 100644
#include "unix_private.h"
+#include "esync.h"
#include "wine/list.h"
#include "ntsyscalls.h"
#include "wine/debug.h"
@@ -2055,6 +2056,7 @@ static void start_main_thread(void)
@@ -1811,6 +1812,7 @@ static void start_main_thread(void)
signal_alloc_thread( teb );
dbg_init();
startup_info_size = server_init_process();
@@ -365,7 +365,7 @@ index 5b8b6962b4a..92855f7cccc 100644
init_cpu_info();
init_files();
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 227784448d3..99563e43cc3 100644
index 7211457387c..cd8dbbdcc10 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -103,7 +103,7 @@ sigset_t server_block_set; /* signals to block during server calls */
@@ -377,7 +377,7 @@ index 227784448d3..99563e43cc3 100644
/* atomically exchange a 64-bit value */
static inline LONG64 interlocked_xchg64( LONG64 *dest, LONG64 val )
@@ -907,7 +907,7 @@ void wine_server_send_fd( int fd )
@@ -918,7 +918,7 @@ void wine_server_send_fd( int fd )
*
* Receive a file descriptor passed from the server.
*/
@@ -387,7 +387,7 @@ index 227784448d3..99563e43cc3 100644
struct iovec vec;
struct msghdr msghdr;
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index d1e4e5ee111..b5299c323e3 100644
index bfbcaf4a851..f21ceb80298 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -63,6 +63,7 @@
@@ -421,5 +421,5 @@ index 35b4833fd4c..75ef586df30 100644
int do_esync(void)
{
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 9ab2897d8c05a9950ce14200d1d7f374a31ee886 Mon Sep 17 00:00:00 2001
From e222dd363cf419eecb0d5c97390b60de15f37951 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Fri, 8 Jun 2018 18:51:40 -0500
Subject: [PATCH] server: Add an object operation to grab the esync file
@@ -43,7 +43,7 @@ Split off to decrease patch size.
34 files changed, 68 insertions(+)
diff --git a/server/async.c b/server/async.c
index 7aef28355f0..7ac675f75c4 100644
index 9cb251df5ce..337bba8631b 100644
--- a/server/async.c
+++ b/server/async.c
@@ -77,6 +77,7 @@ static const struct object_ops async_ops =
@@ -54,7 +54,7 @@ index 7aef28355f0..7ac675f75c4 100644
async_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -586,6 +587,7 @@ static const struct object_ops iosb_ops =
@@ -676,6 +677,7 @@ static const struct object_ops iosb_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -75,7 +75,7 @@ index ff0799f5880..d9824de8eac 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/change.c b/server/change.c
index 325782d8197..90d5bfa3019 100644
index 7a806abc017..e080511bb23 100644
--- a/server/change.c
+++ b/server/change.c
@@ -112,6 +112,7 @@ static const struct object_ops dir_ops =
@@ -111,7 +111,7 @@ index 6933195e72d..3d4be86a212 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/console.c b/server/console.c
index 5407fba1411..ef6bcb12f5a 100644
index b64283baf4a..1cc9eea6a50 100644
--- a/server/console.c
+++ b/server/console.c
@@ -81,6 +81,7 @@ static const struct object_ops console_ops =
@@ -191,7 +191,7 @@ index 48adb244b09..d85a2000684 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/device.c b/server/device.c
index d6288920bf4..80904d33d0d 100644
index 436dac6bfe9..f730fa81afa 100644
--- a/server/device.c
+++ b/server/device.c
@@ -66,6 +66,7 @@ static const struct object_ops irp_call_ops =
@@ -227,7 +227,7 @@ index d6288920bf4..80904d33d0d 100644
no_signal, /* signal */
device_file_get_fd, /* get_fd */
diff --git a/server/directory.c b/server/directory.c
index 2cd61be0838..ed3ab1ebb8f 100644
index 23d7eb0a2b7..bc161b9ab7e 100644
--- a/server/directory.c
+++ b/server/directory.c
@@ -69,6 +69,7 @@ static const struct object_ops object_type_ops =
@@ -247,7 +247,7 @@ index 2cd61be0838..ed3ab1ebb8f 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/esync.c b/server/esync.c
index 8faea3c790b..1fa81b96176 100644
index 6a63c0dd5e9..f95dc5a391f 100644
--- a/server/esync.c
+++ b/server/esync.c
@@ -122,6 +122,7 @@ static const struct object_ops esync_ops =
@@ -279,10 +279,10 @@ index f1b79b1b35e..c727bfdd1ba 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/fd.c b/server/fd.c
index cd8f7171e6e..a61c09559fe 100644
index 74ad95fd4d1..4ce498ec0ef 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -212,6 +212,7 @@ static const struct object_ops fd_ops =
@@ -172,6 +172,7 @@ static const struct object_ops fd_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -290,7 +290,7 @@ index cd8f7171e6e..a61c09559fe 100644
NULL, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -253,6 +254,7 @@ static const struct object_ops device_ops =
@@ -213,6 +214,7 @@ static const struct object_ops device_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -298,7 +298,7 @@ index cd8f7171e6e..a61c09559fe 100644
NULL, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -293,6 +295,7 @@ static const struct object_ops inode_ops =
@@ -253,6 +255,7 @@ static const struct object_ops inode_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -306,7 +306,7 @@ index cd8f7171e6e..a61c09559fe 100644
NULL, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -335,6 +338,7 @@ static const struct object_ops file_lock_ops =
@@ -295,6 +298,7 @@ static const struct object_ops file_lock_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
file_lock_signaled, /* signaled */
@@ -315,10 +315,10 @@ index cd8f7171e6e..a61c09559fe 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/file.c b/server/file.c
index 090d6c244f7..7edf612de73 100644
index b4f99ddc93b..1b4efb04bc5 100644
--- a/server/file.c
+++ b/server/file.c
@@ -123,6 +123,7 @@ static const struct object_ops file_ops =
@@ -94,6 +94,7 @@ static const struct object_ops file_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
default_fd_signaled, /* signaled */
@@ -327,7 +327,7 @@ index 090d6c244f7..7edf612de73 100644
no_signal, /* signal */
file_get_fd, /* get_fd */
diff --git a/server/handle.c b/server/handle.c
index 38ad80da267..53cc1e4eb43 100644
index 0595fdb403b..d41c7e86454 100644
--- a/server/handle.c
+++ b/server/handle.c
@@ -126,6 +126,7 @@ static const struct object_ops handle_table_ops =
@@ -387,7 +387,7 @@ index 2d8697ec9bd..4cf9b73f784 100644
no_signal, /* signal */
mailslot_device_file_get_fd, /* get_fd */
diff --git a/server/mapping.c b/server/mapping.c
index 8d4332d240f..1a8d480cfa9 100644
index 2d0a0b783e2..1acfb032bfd 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -67,6 +67,7 @@ static const struct object_ops ranges_ops =
@@ -427,7 +427,7 @@ index af0efe72132..4785a830e92 100644
mutex_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 3e6cf09d4f2..b8ec17a787a 100644
index f3404a33c3b..f28cb14cb45 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -119,6 +119,7 @@ static const struct object_ops named_pipe_ops =
@@ -471,7 +471,7 @@ index 3e6cf09d4f2..b8ec17a787a 100644
no_signal, /* signal */
named_pipe_device_file_get_fd, /* get_fd */
diff --git a/server/object.h b/server/object.h
index f6ad9e8ccdd..f4261d0d585 100644
index dfdd691601f..711af54b579 100644
--- a/server/object.h
+++ b/server/object.h
@@ -78,6 +78,8 @@ struct object_ops
@@ -484,7 +484,7 @@ index f6ad9e8ccdd..f4261d0d585 100644
void (*satisfied)(struct object *,struct wait_queue_entry *);
/* signal an object */
diff --git a/server/process.c b/server/process.c
index 60cc03032b2..c79a574d137 100644
index a0d5ea64d97..777bf7c2fe2 100644
--- a/server/process.c
+++ b/server/process.c
@@ -105,6 +105,7 @@ static const struct object_ops process_ops =
@@ -512,10 +512,10 @@ index 60cc03032b2..c79a574d137 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/queue.c b/server/queue.c
index 051aafc6c3d..375b3e33a6e 100644
index 348fdac3214..2cd8949a252 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -173,6 +173,7 @@ static const struct object_ops msg_queue_ops =
@@ -174,6 +174,7 @@ static const struct object_ops msg_queue_ops =
msg_queue_add_queue, /* add_queue */
msg_queue_remove_queue, /* remove_queue */
msg_queue_signaled, /* signaled */
@@ -523,7 +523,7 @@ index 051aafc6c3d..375b3e33a6e 100644
msg_queue_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -210,6 +211,7 @@ static const struct object_ops thread_input_ops =
@@ -211,6 +212,7 @@ static const struct object_ops thread_input_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -532,10 +532,10 @@ index 051aafc6c3d..375b3e33a6e 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/registry.c b/server/registry.c
index 93e8a309593..32a424cd842 100644
index 629d67c832f..d6b39b99b22 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -178,6 +178,7 @@ static const struct object_ops key_ops =
@@ -180,6 +180,7 @@ static const struct object_ops key_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -592,10 +592,10 @@ index 19b76d44c16..55cd6aa037e 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/sock.c b/server/sock.c
index 512b7c0f78e..7a8be919494 100644
index 52175b08987..77b41716cd1 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -249,6 +249,7 @@ static const struct object_ops sock_ops =
@@ -451,6 +451,7 @@ static const struct object_ops sock_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
default_fd_signaled, /* signaled */
@@ -603,7 +603,7 @@ index 512b7c0f78e..7a8be919494 100644
no_satisfied, /* satisfied */
no_signal, /* signal */
sock_get_fd, /* get_fd */
@@ -3124,6 +3125,7 @@ static const struct object_ops ifchange_ops =
@@ -3481,6 +3482,7 @@ static const struct object_ops ifchange_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -611,7 +611,7 @@ index 512b7c0f78e..7a8be919494 100644
no_satisfied, /* satisfied */
no_signal, /* signal */
ifchange_get_fd, /* get_fd */
@@ -3345,6 +3347,7 @@ static const struct object_ops socket_device_ops =
@@ -3702,6 +3704,7 @@ static const struct object_ops socket_device_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -632,7 +632,7 @@ index 27d48e2f994..8cb24b4ff6e 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/thread.c b/server/thread.c
index a8fa9a19585..b49b3f159d2 100644
index 0d5bdcf21d9..9dc38d4cce9 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -96,6 +96,7 @@ static const struct object_ops thread_apc_ops =
@@ -643,7 +643,7 @@ index a8fa9a19585..b49b3f159d2 100644
no_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -141,6 +142,7 @@ static const struct object_ops context_ops =
@@ -138,6 +139,7 @@ static const struct object_ops context_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
context_signaled, /* signaled */
@@ -651,7 +651,7 @@ index a8fa9a19585..b49b3f159d2 100644
no_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -190,6 +192,7 @@ static const struct object_ops thread_ops =
@@ -187,6 +189,7 @@ static const struct object_ops thread_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
thread_signaled, /* signaled */
@@ -672,10 +672,10 @@ index 96dc9d00ca1..f59902d5607 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/token.c b/server/token.c
index dcb2a879ba6..76a6bc279a5 100644
index 4df8d2e0c6e..8b4d2f0c1b1 100644
--- a/server/token.c
+++ b/server/token.c
@@ -150,6 +150,7 @@ static const struct object_ops token_ops =
@@ -143,6 +143,7 @@ static const struct object_ops token_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -684,10 +684,10 @@ index dcb2a879ba6..76a6bc279a5 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/window.c b/server/window.c
index 24059aac0fe..a79fda5ad80 100644
index 242e93f303a..3aa7ad4ad79 100644
--- a/server/window.c
+++ b/server/window.c
@@ -108,6 +108,7 @@ static const struct object_ops window_ops =
@@ -107,6 +107,7 @@ static const struct object_ops window_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -696,10 +696,10 @@ index 24059aac0fe..a79fda5ad80 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
diff --git a/server/winstation.c b/server/winstation.c
index 1408e1a9e65..a99c60a28ff 100644
index 5903497d61e..7692fbe3ed2 100644
--- a/server/winstation.c
+++ b/server/winstation.c
@@ -75,6 +75,7 @@ static const struct object_ops winstation_ops =
@@ -76,6 +76,7 @@ static const struct object_ops winstation_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -707,7 +707,7 @@ index 1408e1a9e65..a99c60a28ff 100644
NULL, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -115,6 +116,7 @@ static const struct object_ops desktop_ops =
@@ -116,6 +117,7 @@ static const struct object_ops desktop_ops =
no_add_queue, /* add_queue */
NULL, /* remove_queue */
NULL, /* signaled */
@@ -716,5 +716,5 @@ index 1408e1a9e65..a99c60a28ff 100644
no_signal, /* signal */
no_get_fd, /* get_fd */
--
2.34.1
2.42.0

View File

@@ -1,7 +1,7 @@
From 2a8ffcea70c41f013660d2b6168ab694c70246c0 Mon Sep 17 00:00:00 2001
From 8caf8262a8ae8b5f0275172a62d807240d86968d Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sun, 29 Aug 2021 13:26:53 +1000
Subject: [PATCH] fltmgr.sys: Implement FltBuildDefaultSecurityDescriptor
Subject: [PATCH 1/3] fltmgr.sys: Implement FltBuildDefaultSecurityDescriptor
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
@@ -45,7 +45,7 @@ index 39ce6798178..8943b9f85cf 100644
@ stub FltGetBottomInstance
@ stub FltGetContexts
diff --git a/dlls/fltmgr.sys/main.c b/dlls/fltmgr.sys/main.c
index e1016a4989c..68f242ab8e8 100644
index e1016a4989c..9a85f4b6c82 100644
--- a/dlls/fltmgr.sys/main.c
+++ b/dlls/fltmgr.sys/main.c
@@ -23,7 +23,6 @@
@@ -132,9 +132,8 @@ index e1016a4989c..68f242ab8e8 100644
+
+void WINAPI FltFreeSecurityDescriptor(PSECURITY_DESCRIPTOR descriptor)
+{
+ RtlFreeHeap(GetProcessHeap(), 0, descriptor);
+ ExFreePool(descriptor);
+}
\ No newline at end of file
diff --git a/include/ddk/fltkernel.h b/include/ddk/fltkernel.h
index 49c9d55dbaa..e5483d5a3fa 100644
--- a/include/ddk/fltkernel.h
@@ -150,5 +149,5 @@ index 49c9d55dbaa..e5483d5a3fa 100644
NTSTATUS WINAPI FltRegisterFilter(PDRIVER_OBJECT, const FLT_REGISTRATION *, PFLT_FILTER *);
NTSTATUS WINAPI FltStartFiltering(PFLT_FILTER);
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 9cb5114cbf5af7c360ffb653fc286b8bf9e21db3 Mon Sep 17 00:00:00 2001
From c1af142bac149b296b2dea06cd99c13e0f8814c9 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 30 Aug 2021 15:15:35 +1000
Subject: [PATCH 2/3] fltmgr.sys: Create import library
@@ -9,7 +9,7 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
1 file changed, 1 insertion(+)
diff --git a/dlls/fltmgr.sys/Makefile.in b/dlls/fltmgr.sys/Makefile.in
index bb1f34b4896..5540df35d6a 100644
index ae0e812cb22..ae02da9b5d6 100644
--- a/dlls/fltmgr.sys/Makefile.in
+++ b/dlls/fltmgr.sys/Makefile.in
@@ -1,4 +1,5 @@
@@ -19,5 +19,5 @@ index bb1f34b4896..5540df35d6a 100644
IMPORTS = ntoskrnl
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 8d12d4dac0cbc7194d11e398b4d3371bef8a1952 Mon Sep 17 00:00:00 2001
From c69247afcbd83af223f471342c67bc06deeffda0 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 30 Aug 2021 15:16:06 +1000
Subject: [PATCH] ntoskrnl.exe: Add FltBuildDefaultSecurityDescriptor test
@@ -6,11 +6,11 @@ Subject: [PATCH] ntoskrnl.exe: Add FltBuildDefaultSecurityDescriptor test
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/ntoskrnl.exe/tests/Makefile.in | 2 +-
dlls/ntoskrnl.exe/tests/driver.c | 65 +++++++++++++++++++++++++++++
2 files changed, 66 insertions(+), 1 deletion(-)
dlls/ntoskrnl.exe/tests/driver.c | 81 +++++++++++++++++++++++++++++
2 files changed, 82 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/tests/Makefile.in b/dlls/ntoskrnl.exe/tests/Makefile.in
index ab1db85adbb..9c89e44e70a 100644
index f610df6a947..97dee8b25cf 100644
--- a/dlls/ntoskrnl.exe/tests/Makefile.in
+++ b/dlls/ntoskrnl.exe/tests/Makefile.in
@@ -1,7 +1,7 @@
@@ -23,10 +23,10 @@ index ab1db85adbb..9c89e44e70a 100644
driver2_IMPORTS = winecrt0 ntoskrnl hal
driver2_EXTRADLLFLAGS = -nodefaultlibs -nostartfiles -Wl,--subsystem,native
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
index c8797e8d8e0..168b47941e8 100644
index ea4bd03ee44..844a181472c 100644
--- a/dlls/ntoskrnl.exe/tests/driver.c
+++ b/dlls/ntoskrnl.exe/tests/driver.c
@@ -32,6 +32,7 @@
@@ -36,6 +36,7 @@
#include "ddk/ntddk.h"
#include "ddk/ntifs.h"
#include "ddk/wdm.h"
@@ -34,7 +34,7 @@ index c8797e8d8e0..168b47941e8 100644
#include "driver.h"
@@ -2372,6 +2373,69 @@ static void test_default_modules(void)
@@ -2393,6 +2394,85 @@ static void test_default_modules(void)
ok(dxgmms1, "Failed to find dxgmms1.sys\n");
}
@@ -47,10 +47,17 @@ index c8797e8d8e0..168b47941e8 100644
+ PACL acl = NULL;
+ PACCESS_ALLOWED_ACE ace;
+ SID_IDENTIFIER_AUTHORITY auth = { SECURITY_NULL_SID_AUTHORITY };
+ PSID sid1, sid2;
+ SID_IDENTIFIER_AUTHORITY authwine7 = { SECURITY_NT_AUTHORITY };
+ PSID sid1, sid2, sidwin7;
+ BOOL ret;
+
+ status = FltBuildDefaultSecurityDescriptor(&sd, STANDARD_RIGHTS_ALL);
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
+ if (status != STATUS_SUCCESS)
+ {
+ win_skip("Skipping FltBuildDefaultSecurityDescriptor tests\n");
+ return;
+ }
+ ok(sd != NULL, "Failed to return descriptor\n");
+
+ status = RtlGetGroupSecurityDescriptor(sd, &group, &isdefault);
@@ -67,10 +74,17 @@ index c8797e8d8e0..168b47941e8 100644
+ ok(acl->AceCount == 2, "got %d\n", acl->AceCount);
+
+ sid1 = ExAllocatePool(NonPagedPool, RtlLengthRequiredSid(2));
+ RtlInitializeSid(sid1, &auth, 2);
+ status = RtlInitializeSid(sid1, &auth, 2);
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
+ *RtlSubAuthoritySid(sid1, 0) = SECURITY_BUILTIN_DOMAIN_RID;
+ *RtlSubAuthoritySid(sid1, 1) = DOMAIN_GROUP_RID_ADMINS;
+
+ sidwin7 = ExAllocatePool(NonPagedPool, RtlLengthRequiredSid(2));
+ status = RtlInitializeSid(sidwin7, &authwine7, 2);
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
+ *RtlSubAuthoritySid(sidwin7, 0) = SECURITY_BUILTIN_DOMAIN_RID;
+ *RtlSubAuthoritySid(sidwin7, 1) = DOMAIN_ALIAS_RID_ADMINS;
+
+ sid2 = ExAllocatePool(NonPagedPool, RtlLengthRequiredSid(1));
+ RtlInitializeSid(sid2, &auth, 1);
+ *RtlSubAuthoritySid(sid2, 0) = SECURITY_LOCAL_SYSTEM_RID;
@@ -83,7 +97,8 @@ index c8797e8d8e0..168b47941e8 100644
+ ok(ace->Header.AceFlags == 0, "got %#x\n", ace->Header.AceFlags);
+ ok(ace->Mask == STANDARD_RIGHTS_ALL, "got %#lx\n", ace->Mask);
+
+ ok(RtlEqualSid(sid1, (PSID)&ace->SidStart), "SID not equal\n");
+ ret = RtlEqualSid(sid1, (PSID)&ace->SidStart) || RtlEqualSid(sidwin7, (PSID)&ace->SidStart);
+ ok(ret, "SID not equal\n");
+
+ /* SECURITY_LOCAL_SYSTEM_RID */
+ status = RtlGetAce(acl, 1, (void**)&ace);
@@ -93,7 +108,8 @@ index c8797e8d8e0..168b47941e8 100644
+ ok(ace->Header.AceFlags == 0, "got %#x\n", ace->Header.AceFlags);
+ ok(ace->Mask == STANDARD_RIGHTS_ALL, "got %#lx\n", ace->Mask);
+
+ ok(RtlEqualSid(sid2, (PSID)&ace->SidStart), "SID not equal\n");
+ ret = RtlEqualSid(sid2, (PSID)&ace->SidStart) || RtlEqualSid(sidwin7, (PSID)&ace->SidStart);
+ ok(ret, "SID not equal\n");
+
+ ExFreePool(sid1);
+ ExFreePool(sid2);
@@ -104,7 +120,7 @@ index c8797e8d8e0..168b47941e8 100644
static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *stack)
{
void *buffer = irp->AssociatedIrp.SystemBuffer;
@@ -2417,6 +2481,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st
@@ -2438,6 +2518,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st
test_process_memory(test_input);
test_permanence();
test_driver_object_extension();
@@ -113,5 +129,5 @@ index c8797e8d8e0..168b47941e8 100644
IoMarkIrpPending(irp);
IoQueueWorkItem(work_item, main_test_task, DelayedWorkQueue, irp);
--
2.40.1
2.42.0

View File

@@ -1,31 +1,31 @@
From 5b1941f523b17f6131000ef5f188bc51a7a616c8 Mon Sep 17 00:00:00 2001
From db27b07e0751b2535f729fa433dc67ba9668a394 Mon Sep 17 00:00:00 2001
From: Torsten Kurbad <t.kurbad@iwm-kmrc.de>
Date: Tue, 22 Jul 2014 18:11:41 -0600
Subject: fonts: Add Liberation Sans as an Arial replacement. (v2)
Subject: [PATCH] fonts: Add Liberation Sans as an Arial replacement. (v2)
Changes in v2 by Sebastian Lackner <sebastian@fds-team.de>:
* Update to Liberation Sans version 1.07.4
---
fonts/Makefile.in | 1 +
fonts/arial.sfd | 86988 ++++++++++++++++++++++++++++++++++++++++++++++++++++
fonts/arial.sfd | 86988 ++++++++++++++++++++++++++++++++++++++++++++
fonts/arial.ttf | Bin 0 -> 134188 bytes
3 files changed, 86989 insertions(+)
create mode 100644 fonts/arial.sfd
create mode 100644 fonts/arial.ttf
diff --git a/fonts/Makefile.in b/fonts/Makefile.in
index 9d4ea9f..6bbc79c 100644
index a582d7be864..ab80e7b70f7 100644
--- a/fonts/Makefile.in
+++ b/fonts/Makefile.in
@@ -1,4 +1,5 @@
FONT_SRCS = \
SOURCES = \
+ arial.sfd \
courier.sfd \
fixedsys.sfd \
fixedsys_jp.sfd \
diff --git a/fonts/arial.sfd b/fonts/arial.sfd
new file mode 100644
index 0000000..8a04e04
index 00000000000..8a04e0486c2
--- /dev/null
+++ b/fonts/arial.sfd
@@ -0,0 +1,86988 @@
@@ -88782,5 +88782,5 @@ literal 0
HcmV?d00001
--
2.5.0
2.42.0

View File

@@ -1,22 +1,22 @@
From 52ceb247058041e8630175d4860261e871c571da Mon Sep 17 00:00:00 2001
From 5305bdbc5091ae02c179bf88ed35f1e7fe2a7aec Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 3 Sep 2015 01:30:37 +0200
Subject: fonts: Add Liberation Mono as an Courier New replacement.
Subject: [PATCH] fonts: Add Liberation Mono as an Courier New replacement.
---
fonts/Makefile.in | 1 +
fonts/cour.sfd | 67696 ++++++++++++++++++++++++++++++++++++++++++++++++++++
fonts/cour.sfd | 67696 ++++++++++++++++++++++++++++++++++++++++++++
fonts/cour.ttf | Bin 0 -> 108468 bytes
3 files changed, 67697 insertions(+)
create mode 100644 fonts/cour.sfd
create mode 100644 fonts/cour.ttf
diff --git a/fonts/Makefile.in b/fonts/Makefile.in
index 33f4f03..3777c54 100644
index f62f0e104fb..5326641b859 100644
--- a/fonts/Makefile.in
+++ b/fonts/Makefile.in
@@ -1,5 +1,6 @@
FONT_SRCS = \
SOURCES = \
arial.sfd \
+ cour.sfd \
courier.sfd \
@@ -24,7 +24,7 @@ index 33f4f03..3777c54 100644
fixedsys_jp.sfd \
diff --git a/fonts/cour.sfd b/fonts/cour.sfd
new file mode 100644
index 0000000..88d988a
index 00000000000..88d988a8caa
--- /dev/null
+++ b/fonts/cour.sfd
@@ -0,0 +1,67696 @@
@@ -69150,5 +69150,5 @@ literal 0
HcmV?d00001
--
2.5.0
2.42.0

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