Compare commits

...

15 Commits
v6.5 ... v6.6

Author SHA1 Message Date
Zebediah Figura
00aab80494 Release v6.6 2021-04-09 17:47:34 -05:00
Zebediah Figura
86424f3ac1 bcrypt-ECDHSecretAgreement: Remove a commented "Disabled: true" directive. 2021-04-09 17:40:52 -05:00
Zebediah Figura
661df7b889 user32-rawinput-*: Replace with new patches from Rémi Bernon. 2021-04-09 17:39:38 -05:00
Zebediah Figura
64ea26c0cb Rebase against a24bdfc2c69c5648cbb3df762149b2647e209a09. 2021-04-09 15:23:33 -05:00
Zebediah Figura
9319c38de2 Rebase against 3269da9b46eaec8e3ea263fc8ecfcd24d3d8b6e6. 2021-04-08 18:18:17 -05:00
Zebediah Figura
03f7334e65 Actually rebase against ac65e1540960e64ce29e40ec19e4eade8369d520. 2021-04-07 18:35:45 -05:00
Zebediah Figura
eb40bf85d6 Rebase against ac65e1540960e64ce29e40ec19e4eade8369d520. 2021-04-07 17:30:55 -05:00
Zebediah Figura
d1169e15ee Rebase against 5a8bc554ef06c4a21d8b49ea8d936299f2cb2f34. 2021-04-06 18:45:52 -05:00
Zebediah Figura
0c295023f1 Rebase against 8d076bc5e46cc11ec94db631e7c608f62d75cee2. 2021-04-06 17:41:23 -05:00
Zebediah Figura
733a420dd7 server-Key_State: Replace with new patches from Rémi Bernon.
This also serves as a rebase against 2fcc1d0ecdebc55a5f515b1390ce715303f6a6ad.
2021-04-02 20:15:01 -05:00
Zebediah Figura
545073aafa Rebase against 97b420224e767b24d89722ff5efeca38a8ecf1e2. 2021-04-01 23:03:15 -05:00
Zebediah Figura
4e2dc89043 Rebase against 29d9659095fd76e303f204050ab4c85d0a0486e4. 2021-03-31 16:49:32 -05:00
Zebediah Figura
2929606a6a msxml3-FreeThreadedXMLHTTP60: Change bug reference to reflect split upstream bug. 2021-03-31 16:04:59 -05:00
Zebediah Figura
d90a798a26 Rebase against 7c62e6b169f18f4a5d5809490f8aebdb5a9375eb. 2021-03-30 17:06:03 -05:00
Zebediah Figura
2e42e7d996 Rebase against 6ca1a92684fcbaa1c569b60411a8036b6d11dc99. 2021-03-29 17:03:49 -05:00
80 changed files with 4152 additions and 2412 deletions

View File

@@ -1,4 +1,4 @@
From 0cf6433af95363c5fbba2af482b2ba50b863dfb7 Mon Sep 17 00:00:00 2001
From a4d9189613ecacb289595663302c1db8676c8d9d 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 20bc3f977d1..c2187a19397 100644
index 7a714a5aa6d..e5325ec31ff 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -20,15 +20,15 @@ index 20bc3f977d1..c2187a19397 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3456,6 +3457,7 @@ static void process_breakpoint(void)
__ENDTRY
@@ -3235,6 +3236,7 @@ void WINAPI LdrShutdownProcess(void)
process_detach();
}
+extern const char * CDECL wine_get_version(void);
/******************************************************************
* LdrInitializeThunk (NTDLL.@)
@@ -3465,6 +3467,9 @@ static void process_breakpoint(void)
* RtlExitUserProcess (NTDLL.@)
@@ -3597,6 +3599,9 @@ static void init_wow64(void)
*/
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
{
@@ -38,7 +38,7 @@ index 20bc3f977d1..c2187a19397 100644
static int attach_done;
int i;
NTSTATUS status;
@@ -3483,6 +3488,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
@@ -3614,6 +3619,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
entry = (void **)&context->u.s.X0;
#endif
@@ -56,5 +56,5 @@ index 20bc3f977d1..c2187a19397 100644
RtlEnterCriticalSection( &loader_section );
--
2.28.0
2.30.2

View File

@@ -1,4 +1,4 @@
From 3478a4e41c07a66e7e913c54bcf5ad52e16a8fee Mon Sep 17 00:00:00 2001
From 6d925cb20409888ada3e469a2a09b1bfc726fa79 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Fri, 2 Oct 2020 11:29:24 -0500
Subject: [PATCH] bcrypt: Allow multiple backends to coexist.
@@ -14,7 +14,7 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
create mode 100644 dlls/bcrypt/unixlib.c
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
index 24803fb2d7cb..46a20d473dd7 100644
index 24803fb2d7c..46a20d473dd 100644
--- a/dlls/bcrypt/Makefile.in
+++ b/dlls/bcrypt/Makefile.in
@@ -11,6 +11,7 @@ C_SRCS = \
@@ -27,7 +27,7 @@ index 24803fb2d7cb..46a20d473dd7 100644
RC_SRCS = version.rc
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
index eb1361115093..3c7110d05f84 100644
index eb136111509..3c7110d05f8 100644
--- a/dlls/bcrypt/bcrypt_internal.h
+++ b/dlls/bcrypt/bcrypt_internal.h
@@ -218,4 +218,7 @@ struct key_funcs
@@ -39,10 +39,10 @@ index eb1361115093..3c7110d05f84 100644
+
#endif /* __BCRYPT_INTERNAL_H */
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
index c065ac31fba3..9490ea8612a8 100644
index 2f0c62bc6da..4a9dcf9de8a 100644
--- a/dlls/bcrypt/gnutls.c
+++ b/dlls/bcrypt/gnutls.c
@@ -371,9 +371,12 @@ fail:
@@ -372,9 +372,12 @@ fail:
static void gnutls_uninitialize(void)
{
@@ -58,7 +58,7 @@ index c065ac31fba3..9490ea8612a8 100644
}
struct buffer
@@ -1949,19 +1952,28 @@ static const struct key_funcs key_funcs =
@@ -1899,19 +1902,28 @@ static const struct key_funcs key_funcs =
key_import_rsa
};
@@ -74,7 +74,7 @@ index c065ac31fba3..9490ea8612a8 100644
+ if (!gnutls_initialize()) return NULL;
+ return &key_funcs;
case DLL_PROCESS_DETACH:
gnutls_uninitialize();
if (libgnutls_handle) gnutls_uninitialize();
- break;
}
- return STATUS_SUCCESS;
@@ -95,7 +95,7 @@ index c065ac31fba3..9490ea8612a8 100644
+}
+#endif
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
index 44906519cef0..2a88aec8362c 100644
index 44906519cef..2a88aec8362 100644
--- a/dlls/bcrypt/macos.c
+++ b/dlls/bcrypt/macos.c
@@ -302,11 +302,21 @@ static const struct key_funcs key_funcs =
@@ -126,7 +126,7 @@ index 44906519cef0..2a88aec8362c 100644
#endif
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
new file mode 100644
index 000000000000..9cbb25f5740c
index 00000000000..9cbb25f5740
--- /dev/null
+++ b/dlls/bcrypt/unixlib.c
@@ -0,0 +1,211 @@
@@ -342,5 +342,5 @@ index 000000000000..9cbb25f5740c
+
+#endif
--
2.29.2
2.30.2

View File

@@ -2,4 +2,3 @@ Fixes: [47699] Multiple games fail to connect to online services (missing BCrypt
# Needs to be moved to the unix lib, but that's a nontrivial amount of work, and
# using gcrypt is the wrong way forward (we should expose the missing APIs from
# gnutls instead).
#Disabled: true

View File

@@ -1,4 +1,4 @@
From 504969929eb7932fe22880768461f2172080f0eb Mon Sep 17 00:00:00 2001
From 4527c01f3e96ad841fb26002c1e73a2b4d9ac55e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 19 Jan 2017 16:56:56 +0100
Subject: [PATCH] d3d11: Initial implementation for deferred contexts.
@@ -8,7 +8,7 @@ Subject: [PATCH] d3d11: Initial implementation for deferred contexts.
1 file changed, 1041 insertions(+), 31 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 454003128dc..4beb7cea4fa 100644
index 47f43a796e3..ca21e9be6ea 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -16,6 +16,7 @@
@@ -18,8 +18,8 @@ index 454003128dc..4beb7cea4fa 100644
+#include "wine/list.h"
#define NONAMELESSUNION
#include "d3d11_private.h"
@@ -48,6 +49,174 @@ static BOOL d3d_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, S
#define WINE_NO_NAMELESS_EXTENSION
@@ -49,6 +50,174 @@ static BOOL d3d_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, S
return TRUE;
}
@@ -194,7 +194,7 @@ index 454003128dc..4beb7cea4fa 100644
/* ID3D11DeviceContext - deferred context */
struct d3d11_deferred_context
{
@@ -55,9 +224,532 @@ struct d3d11_deferred_context
@@ -56,9 +225,532 @@ struct d3d11_deferred_context
ID3D11Device *device;
LONG refcount;
@@ -727,7 +727,7 @@ index 454003128dc..4beb7cea4fa 100644
static void STDMETHODCALLTYPE d3d_null_wined3d_object_destroyed(void *parent) {}
static const struct wined3d_parent_ops d3d_null_wined3d_parent_ops =
@@ -1415,7 +2107,20 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
@@ -1428,7 +2120,20 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
static void STDMETHODCALLTYPE d3d11_immediate_context_ExecuteCommandList(ID3D11DeviceContext1 *iface,
ID3D11CommandList *command_list, BOOL restore_state)
{
@@ -749,7 +749,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_immediate_context_HSSetShaderResources(ID3D11DeviceContext1 *iface,
@@ -3169,6 +3874,7 @@ static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContex
@@ -3167,6 +3872,7 @@ static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContex
if (!refcount)
{
@@ -757,7 +757,7 @@ index 454003128dc..4beb7cea4fa 100644
wined3d_private_store_cleanup(&context->private_store);
ID3D11Device_Release(context->device);
HeapFree(GetProcessHeap(), 0, context);
@@ -3220,43 +3926,86 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(
@@ -3218,43 +3924,86 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetConstantBuffers(ID3D11DeviceContext *iface,
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
{
@@ -850,7 +850,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *iface,
@@ -3269,53 +4018,169 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *i
@@ -3267,53 +4016,169 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *i
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_Map(ID3D11DeviceContext *iface, ID3D11Resource *resource,
UINT subresource_idx, D3D11_MAP map_type, UINT map_flags, D3D11_MAPPED_SUBRESOURCE *mapped_subresource)
{
@@ -1029,7 +1029,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceContext *iface,
@@ -3344,7 +4209,16 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceCon
@@ -3342,7 +4207,16 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceCon
static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D11DeviceContext *iface,
D3D11_PRIMITIVE_TOPOLOGY topology)
{
@@ -1047,7 +1047,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11DeviceContext *iface,
@@ -3404,8 +4278,28 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11De
@@ -3402,8 +4276,28 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11De
UINT render_target_view_count, ID3D11RenderTargetView *const *render_target_views,
ID3D11DepthStencilView *depth_stencil_view)
{
@@ -1077,7 +1077,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorderedAccessViews(
@@ -3425,15 +4319,44 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
@@ -3423,15 +4317,44 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetBlendState(ID3D11DeviceContext *iface,
ID3D11BlendState *blend_state, const float blend_factor[4], UINT sample_mask)
{
@@ -1124,7 +1124,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_SOSetTargets(ID3D11DeviceContext *iface, UINT buffer_count,
@@ -3475,13 +4398,34 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11Devi
@@ -3473,13 +4396,34 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11Devi
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetState(ID3D11DeviceContext *iface,
ID3D11RasterizerState *rasterizer_state)
{
@@ -1161,7 +1161,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetScissorRects(ID3D11DeviceContext *iface,
@@ -3596,8 +4540,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11
@@ -3594,8 +4538,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShader(ID3D11DeviceContext *iface,
ID3D11HullShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
{
@@ -1181,7 +1181,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceContext *iface,
@@ -3610,36 +4564,62 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceC
@@ -3608,36 +4562,62 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceC
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetConstantBuffers(ID3D11DeviceContext *iface,
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
{
@@ -1249,7 +1249,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11DeviceContext *iface,
@@ -3940,7 +4920,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSGetConstantBuffers(ID3D11
@@ -3938,7 +4918,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSGetConstantBuffers(ID3D11
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearState(ID3D11DeviceContext *iface)
{
@@ -1266,7 +1266,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_Flush(ID3D11DeviceContext *iface)
@@ -3965,9 +4953,29 @@ static UINT STDMETHODCALLTYPE d3d11_deferred_context_GetContextFlags(ID3D11Devic
@@ -3963,9 +4951,29 @@ static UINT STDMETHODCALLTYPE d3d11_deferred_context_GetContextFlags(ID3D11Devic
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_FinishCommandList(ID3D11DeviceContext *iface,
BOOL restore, ID3D11CommandList **command_list)
{
@@ -1298,7 +1298,7 @@ index 454003128dc..4beb7cea4fa 100644
}
static const struct ID3D11DeviceContextVtbl d3d11_deferred_context_vtbl =
@@ -4582,6 +5590,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device
@@ -4580,6 +5588,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device
object->device = (ID3D11Device *)iface;
object->refcount = 1;
@@ -1308,5 +1308,5 @@ index 454003128dc..4beb7cea4fa 100644
wined3d_private_store_init(&object->private_store);
--
2.30.0
2.30.2

View File

@@ -1,18 +1,18 @@
From a6a89266f71551cd6ee6b80dc758825957087a37 Mon Sep 17 00:00:00 2001
From 7e0e8ea02fa2670a29e1c312f88205b870521a9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 30 May 2015 02:55:03 +0200
Subject: [PATCH] ddraw: Allow size and format conversions in
IDirect3DTexture2::Load.
---
dlls/ddraw/surface.c | 152 +++++++++++++++++++++++--------------------
1 file changed, 81 insertions(+), 71 deletions(-)
dlls/ddraw/surface.c | 153 +++++++++++++++++++++++--------------------
1 file changed, 82 insertions(+), 71 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 19a1ae3d2d2..ed46ff0534a 100644
index f5c3528cfa4..a8b919c05c2 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -5310,6 +5310,46 @@ static struct ddraw_surface *get_sub_mimaplevel(struct ddraw_surface *surface)
@@ -5316,6 +5316,46 @@ static struct ddraw_surface *get_sub_mimaplevel(struct ddraw_surface *surface)
return impl_from_IDirectDrawSurface7(next_level);
}
@@ -59,7 +59,7 @@ index 19a1ae3d2d2..ed46ff0534a 100644
/*****************************************************************************
* IDirect3DTexture2::Load
*
@@ -5331,7 +5371,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
@@ -5337,7 +5377,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
{
struct ddraw_surface *dst_surface = impl_from_IDirect3DTexture2(iface);
struct ddraw_surface *src_surface = unsafe_impl_from_IDirect3DTexture2(src_texture);
@@ -68,7 +68,7 @@ index 19a1ae3d2d2..ed46ff0534a 100644
HRESULT hr;
TRACE("iface %p, src_texture %p.\n", iface, src_texture);
@@ -5344,90 +5384,61 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
@@ -5350,90 +5390,62 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
wined3d_mutex_lock();
@@ -184,7 +184,8 @@ index 19a1ae3d2d2..ed46ff0534a 100644
- wined3d_resource_unmap(dst_resource, dst_surface->sub_resource_idx);
- wined3d_resource_unmap(src_resource, src_surface->sub_resource_idx);
+ hr = wined3d_texture_blt(ddraw_surface_get_default_texture(dst_surface, DDRAW_SURFACE_WRITE),
+ hr = wined3d_device_context_blt(dst_surface->ddraw->immediate_context,
+ ddraw_surface_get_default_texture(dst_surface, DDRAW_SURFACE_WRITE),
+ dst_surface->sub_resource_idx, &dst_rect,
+ ddraw_surface_get_default_texture(src_surface, DDRAW_SURFACE_READ),
+ src_surface->sub_resource_idx, &src_rect, 0, NULL, WINED3D_TEXF_LINEAR);
@@ -196,7 +197,7 @@ index 19a1ae3d2d2..ed46ff0534a 100644
}
if (src_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP)
@@ -5440,12 +5451,11 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
@@ -5446,12 +5458,11 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
else
dst_surface = NULL;
@@ -213,5 +214,5 @@ index 19a1ae3d2d2..ed46ff0534a 100644
wined3d_mutex_unlock();
--
2.20.1
2.30.2

View File

@@ -1,4 +1,4 @@
From 1aac9111b536d35eec696e20141b6c5d6d92579b Mon Sep 17 00:00:00 2001
From 2da453ad472ce69926e158bd4e933facd985d1cd Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:01:56 -0500
Subject: [PATCH] server: Create eventfd file descriptors for message queues.
@@ -8,7 +8,7 @@ Subject: [PATCH] server: Create eventfd file descriptors for message queues.
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/server/queue.c b/server/queue.c
index 263bb46ea00..4d416a88d88 100644
index 1f1392387df..d34bc284d08 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -43,6 +43,7 @@
@@ -19,15 +19,15 @@ index 263bb46ea00..4d416a88d88 100644
#define WM_NCMOUSEFIRST WM_NCMOUSEMOVE
#define WM_NCMOUSELAST (WM_NCMOUSEFIRST+(WM_MOUSELAST-WM_MOUSEFIRST))
@@ -141,6 +142,7 @@ struct msg_queue
struct hook_table *hooks; /* hook table */
@@ -144,6 +145,7 @@ struct msg_queue
timeout_t last_get_msg; /* time of last get message call */
int keystate_lock; /* owns an input keystate lock */
unsigned int ignore_post_msg; /* ignore post messages newer than this unique id */
+ int esync_fd; /* esync file descriptor (signalled on message) */
};
struct hotkey
@@ -157,6 +159,7 @@ static void msg_queue_dump( struct object *obj, int verbose );
@@ -160,6 +162,7 @@ static void msg_queue_dump( struct object *obj, int verbose );
static int msg_queue_add_queue( struct object *obj, struct wait_queue_entry *entry );
static void msg_queue_remove_queue( struct object *obj, struct wait_queue_entry *entry );
static int msg_queue_signaled( struct object *obj, struct wait_queue_entry *entry );
@@ -35,7 +35,7 @@ index 263bb46ea00..4d416a88d88 100644
static void msg_queue_satisfied( struct object *obj, struct wait_queue_entry *entry );
static void msg_queue_destroy( struct object *obj );
static void msg_queue_poll_event( struct fd *fd, int event );
@@ -172,7 +175,7 @@ static const struct object_ops msg_queue_ops =
@@ -175,7 +178,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 */
@@ -44,9 +44,9 @@ index 263bb46ea00..4d416a88d88 100644
msg_queue_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -309,12 +312,16 @@ static struct msg_queue *create_msg_queue( struct thread *thread, struct thread_
queue->hooks = NULL;
@@ -315,12 +318,16 @@ static struct msg_queue *create_msg_queue( struct thread *thread, struct thread_
queue->last_get_msg = current_time;
queue->keystate_lock = 0;
queue->ignore_post_msg = 0;
+ queue->esync_fd = -1;
list_init( &queue->send_result );
@@ -61,17 +61,17 @@ index 263bb46ea00..4d416a88d88 100644
thread->queue = queue;
}
if (new_input) release_object( new_input );
@@ -491,6 +498,9 @@ static inline void clear_queue_bits( struct msg_queue *queue, unsigned int bits
{
queue->wake_bits &= ~bits;
queue->changed_bits &= ~bits;
@@ -534,6 +541,9 @@ static inline void clear_queue_bits( struct msg_queue *queue, unsigned int bits
if (queue->keystate_lock) unlock_input_keystate( queue->input );
queue->keystate_lock = 0;
}
+
+ if (do_esync() && !is_signaled( queue ))
+ esync_clear( queue->esync_fd );
}
/* check whether msg is a keyboard message */
@@ -1004,6 +1014,13 @@ static int msg_queue_signaled( struct object *obj, struct wait_queue_entry *entr
@@ -1047,6 +1057,13 @@ static int msg_queue_signaled( struct object *obj, struct wait_queue_entry *entr
return ret || is_signaled( queue );
}
@@ -85,7 +85,7 @@ index 263bb46ea00..4d416a88d88 100644
static void msg_queue_satisfied( struct object *obj, struct wait_queue_entry *entry )
{
struct msg_queue *queue = (struct msg_queue *)obj;
@@ -2381,6 +2398,9 @@ DECL_HANDLER(get_queue_status)
@@ -2425,6 +2442,9 @@ DECL_HANDLER(get_queue_status)
reply->wake_bits = queue->wake_bits;
reply->changed_bits = queue->changed_bits;
queue->changed_bits &= ~req->clear_bits;
@@ -96,5 +96,5 @@ index 263bb46ea00..4d416a88d88 100644
else reply->wake_bits = reply->changed_bits = 0;
}
--
2.28.0
2.30.2

View File

@@ -1,4 +1,4 @@
From df50f6973c1fa60db18b408001ac50c03fb2fa07 Mon Sep 17 00:00:00 2001
From e0a89702e35941e75ce06f795966c92b3f195ed8 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:11:23 -0500
Subject: [PATCH] server, ntdll: Implement message waits.
@@ -105,10 +105,10 @@ index fcbe563bb5a..88490e08ef9 100644
{
struct stat st;
diff --git a/server/protocol.def b/server/protocol.def
index 9062a5020c2..789bc56e7f1 100644
index cf00ab99c63..ecbb78cc9bb 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3697,3 +3697,8 @@ enum esync_type
@@ -3734,3 +3734,8 @@ enum esync_type
int type;
unsigned int shm_idx;
@END
@@ -118,26 +118,26 @@ index 9062a5020c2..789bc56e7f1 100644
+ int in_msgwait; /* are we in a message wait? */
+@END
diff --git a/server/queue.c b/server/queue.c
index 4d416a88d88..efaf8a0f7e7 100644
index d34bc284d08..f4edb299dc3 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -143,6 +143,7 @@ struct msg_queue
timeout_t last_get_msg; /* time of last get message call */
@@ -146,6 +146,7 @@ struct msg_queue
int keystate_lock; /* owns an input keystate lock */
unsigned int ignore_post_msg; /* ignore post messages newer than this unique id */
int esync_fd; /* esync file descriptor (signalled on message) */
+ int esync_in_msgwait; /* our thread is currently waiting on us */
};
struct hotkey
@@ -313,6 +314,7 @@ static struct msg_queue *create_msg_queue( struct thread *thread, struct thread_
queue->last_get_msg = current_time;
@@ -319,6 +320,7 @@ static struct msg_queue *create_msg_queue( struct thread *thread, struct thread_
queue->keystate_lock = 0;
queue->ignore_post_msg = 0;
queue->esync_fd = -1;
+ queue->esync_in_msgwait = 0;
list_init( &queue->send_result );
list_init( &queue->callback_result );
list_init( &queue->pending_timers );
@@ -959,6 +961,10 @@ static int is_queue_hung( struct msg_queue *queue )
@@ -1002,6 +1004,10 @@ static int is_queue_hung( struct msg_queue *queue )
if (get_wait_queue_thread(entry)->queue == queue)
return 0; /* thread is waiting on queue -> not hung */
}
@@ -148,7 +148,7 @@ index 4d416a88d88..efaf8a0f7e7 100644
return 1;
}
@@ -3385,3 +3391,18 @@ DECL_HANDLER(get_rawinput_devices)
@@ -3416,3 +3422,18 @@ DECL_HANDLER(get_rawinput_devices)
devices[i++] = e->device;
}
}
@@ -168,5 +168,5 @@ index 4d416a88d88..efaf8a0f7e7 100644
+ set_fd_events( queue->fd, req->in_msgwait ? POLLIN : 0 );
+}
--
2.28.0
2.30.2

View File

@@ -1,8 +1,8 @@
From ac9e5c8733b503db651b358c78aef60294a70aff Mon Sep 17 00:00:00 2001
From b332f5a5dd03b7d71515a2fddefa787da3fb7b5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 9 Jan 2016 16:57:49 +0100
Subject: explorer: Create CurrentControlSet\Control\Video registry key as
non-volatile.
Subject: [PATCH] explorer: Create CurrentControlSet\Control\Video registry key
as non-volatile.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -14,10 +14,10 @@ Signed-off-by: Michael MĂĽller <michael@fds-team.de>
2 files changed, 16 insertions(+)
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c
index d1fe3f05f..011c2fcea 100644
index dfadd13ea8c..b3e5888da92 100644
--- a/dlls/advapi32/tests/registry.c
+++ b/dlls/advapi32/tests/registry.c
@@ -1345,6 +1345,13 @@ static void test_reg_create_key(void)
@@ -1318,6 +1318,13 @@ static void test_reg_create_key(void)
RegDeleteKeyA(hkey1, "");
RegCloseKey(hkey1);
@@ -32,10 +32,10 @@ index d1fe3f05f..011c2fcea 100644
hkey1 = NULL;
ret = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software", 0, NULL, 0, KEY_READ|KEY_WOW64_32KEY, NULL, &hkey1, NULL);
diff --git a/programs/explorer/desktop.c b/programs/explorer/desktop.c
index 2857fcfca..bfe3bec18 100644
index 94d178880a8..95f06e50b7d 100644
--- a/programs/explorer/desktop.c
+++ b/programs/explorer/desktop.c
@@ -754,6 +754,11 @@ static BOOL get_default_enable_shell( const WCHAR *name )
@@ -792,6 +792,11 @@ static BOOL get_default_enable_shell( const WCHAR *name )
static HMODULE load_graphics_driver( const WCHAR *driver, const GUID *guid )
{
@@ -47,9 +47,9 @@ index 2857fcfca..bfe3bec18 100644
static const WCHAR device_keyW[] = {
'S','y','s','t','e','m','\\',
'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
@@ -817,6 +822,10 @@ static HMODULE load_graphics_driver( const WCHAR *driver, const GUID *guid )
TRACE( "display %s driver %s\n", debugstr_guid(guid), debugstr_w(buffer) );
}
@@ -859,6 +864,10 @@ static HMODULE load_graphics_driver( const WCHAR *driver, const GUID *guid )
TRACE( "display %s driver %s\n", debugstr_guid(guid), debugstr_w(libname) );
+ /* create video key first without REG_OPTION_VOLATILE attribute */
+ if (!RegCreateKeyExW( HKEY_LOCAL_MACHINE, video_keyW, 0, NULL, 0, KEY_SET_VALUE, NULL, &hkey, NULL ))
@@ -59,5 +59,5 @@ index 2857fcfca..bfe3bec18 100644
guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7] );
--
2.21.0
2.30.2

View File

@@ -1,4 +1,4 @@
From 2ce47e07be60a3306855c625f4ffc75d039085ec Mon Sep 17 00:00:00 2001
From e1057892b7256a8c48b4abaa1b34fb11b6735973 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 4 Feb 2017 16:20:37 +0100
Subject: [PATCH] kernel32: Implement some processor group functions.
@@ -38,7 +38,7 @@ index 4998af04d9b..5ce8e24713b 100644
@ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
@ stdcall GetNumaAvailableMemoryNodeEx(long ptr) kernel32.GetNumaAvailableMemoryNodeEx
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index d14bf010383..d7eb984c0cd 100644
index 0312e044a86..06f524a8080 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -719,7 +719,7 @@
@@ -103,10 +103,10 @@ index 41a5b34af19..dc136365f50 100644
* GetFirmwareEnvironmentVariableA (KERNEL32.@)
*/
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index 762e114a988..4bf68401268 100644
index 433c12ff1fb..5049265684f 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -4327,6 +4327,26 @@ static void test_dead_process(void)
@@ -4297,6 +4297,26 @@ static void test_dead_process(void)
CloseHandle(pi.hThread);
}
@@ -133,14 +133,14 @@ index 762e114a988..4bf68401268 100644
START_TEST(process)
{
HANDLE job, hproc, h, h2;
@@ -4443,6 +4463,7 @@ START_TEST(process)
test_GetNumaProcessorNode();
@@ -4414,6 +4434,7 @@ START_TEST(process)
test_session_info();
test_GetLogicalProcessorInformationEx();
test_GetSystemCpuSetInformation();
+ test_GetActiveProcessorCount();
test_largepages();
test_ProcThreadAttributeList();
test_SuspendProcessState();
--
2.30.1
2.30.2

View File

@@ -1 +1 @@
Fixes: [49740] msxml3: Implement FreeThreadedXMLHTTP60.
Fixes: [50900] msxml3: Implement FreeThreadedXMLHTTP60.

View File

@@ -1,4 +1,4 @@
From 658a24832ee3e9a04a311600fd00b91b6d5cfb5f Mon Sep 17 00:00:00 2001
From 5b1520dd617c454ac8e482260b6b437f6f98d185 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 3 Apr 2017 01:06:26 +0200
Subject: [PATCH] ntdll: Add dummy apiset to PEB.
@@ -12,27 +12,27 @@ Subject: [PATCH] ntdll: Add dummy apiset to PEB.
create mode 100644 include/apiset.h
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index c7da728964c..addc5e0adfc 100644
index 7a714a5aa6d..62d1b38f4c0 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -169,6 +169,7 @@ static RTL_CRITICAL_SECTION peb_lock = { &peb_critsect_debug, -1, 0, 0, 0, 0 };
static PEB_LDR_DATA ldr = { sizeof(ldr), TRUE };
@@ -164,6 +164,7 @@ static PEB_LDR_DATA ldr =
static RTL_BITMAP tls_bitmap;
static RTL_BITMAP tls_expansion_bitmap;
+static API_SET_NAMESPACE_ARRAY apiset_map;
static WINE_MODREF *cached_modref;
static WINE_MODREF *current_modref;
@@ -4025,6 +4026,7 @@ static NTSTATUS process_init(void)
@@ -3626,6 +3627,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
peb->LdrData = &ldr;
peb->FastPebLock = &peb_lock;
+ peb->ApiSetMap = &apiset_map;
peb->TlsBitmap = &tls_bitmap;
peb->TlsExpansionBitmap = &tls_expansion_bitmap;
peb->LoaderLock = &loader_section;
peb->LdrData = &ldr;
peb->FastPebLock = &peb_lock;
+ peb->ApiSetMap = &apiset_map;
peb->TlsBitmap = &tls_bitmap;
peb->TlsExpansionBitmap = &tls_expansion_bitmap;
peb->LoaderLock = &loader_section;
diff --git a/include/Makefile.in b/include/Makefile.in
index 87cc175739b..ff9f0f692d9 100644
index 9133e5c6315..f56a60fae5e 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -15,6 +15,7 @@ SOURCES = \
@@ -87,7 +87,7 @@ index 00000000000..6801cd5f509
+
+#endif
diff --git a/include/winternl.h b/include/winternl.h
index cff261b6d7c..ca7a85d9578 100644
index 298ebbc2d36..163b7737e00 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -23,6 +23,7 @@
@@ -98,7 +98,7 @@ index cff261b6d7c..ca7a85d9578 100644
#ifdef __cplusplus
extern "C" {
@@ -316,7 +317,7 @@ typedef struct _PEB
@@ -321,7 +322,7 @@ typedef struct _PEB
PVOID KernelCallbackTable; /* 02c/058 */
ULONG Reserved; /* 030/060 */
ULONG AtlThunkSListPtr32; /* 034/064 */
@@ -108,5 +108,5 @@ index cff261b6d7c..ca7a85d9578 100644
PRTL_BITMAP TlsBitmap; /* 040/078 */
ULONG TlsBitmapBits[2]; /* 044/080 */
--
2.28.0
2.30.2

View File

@@ -1,4 +1,4 @@
From 5d866aebeeb7760eed0f35a206d43ef32bafbffe Mon Sep 17 00:00:00 2001
From e1c9210a92b5b3fda4767f3a9ba12eff5427314f Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 5 Aug 2017 03:38:38 +0200
Subject: [PATCH] ntdll: Add inline versions of RtlEnterCriticalSection /
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Add inline versions of RtlEnterCriticalSection /
1 file changed, 34 insertions(+)
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index b8f9dc28e63..444feb5d152 100644
index e50d48dc3cc..13a9123eb06 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -26,6 +26,7 @@
@@ -20,7 +20,7 @@ index b8f9dc28e63..444feb5d152 100644
#include "wine/asm.h"
#define DECLARE_CRITICAL_SECTION(cs) \
@@ -88,6 +89,39 @@ extern struct _KUSER_SHARED_DATA *user_shared_data DECLSPEC_HIDDEN;
@@ -85,6 +86,39 @@ extern struct _KUSER_SHARED_DATA *user_shared_data DECLSPEC_HIDDEN;
extern int CDECL NTDLL__vsnprintf( char *str, SIZE_T len, const char *format, __ms_va_list args ) DECLSPEC_HIDDEN;
extern int CDECL NTDLL__vsnwprintf( WCHAR *str, SIZE_T len, const WCHAR *format, __ms_va_list args ) DECLSPEC_HIDDEN;
@@ -59,7 +59,7 @@ index b8f9dc28e63..444feb5d152 100644
+
/* load order */
#ifndef _WIN64
#ifdef _WIN64
--
2.30.1
2.30.2

View File

@@ -1,13 +1,13 @@
From 45940635b59cf3183e26ab3ffd2b8f486161e5ad Mon Sep 17 00:00:00 2001
From 78e8d51910a41db9a31ec350228989a0c65cf899 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.
---
dlls/kernel32/tests/loader.c | 75 ++++++++++++++++++++++++++++++++++++
dlls/ntdll/loader.c | 65 +++++++++++++++++++++++++++++++
dlls/ntdll/loader.c | 60 +++++++++++++++++++++++++++++
include/winternl.h | 2 +-
3 files changed, 141 insertions(+), 1 deletion(-)
3 files changed, 136 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
index 1db68a191a3..bec46088518 100644
@@ -110,10 +110,10 @@ index 1db68a191a3..bec46088518 100644
test_dll_file( "kernel32.dll" );
test_dll_file( "advapi32.dll" );
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 01644df7763..8c6d05cb94e 100644
index 7a714a5aa6d..996a749ebaa 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -112,6 +112,9 @@ struct file_id
@@ -113,6 +113,9 @@ struct file_id
BYTE ObjectId[16];
};
@@ -123,7 +123,7 @@ index 01644df7763..8c6d05cb94e 100644
/* internal representation of loaded modules */
typedef struct _wine_modref
{
@@ -450,6 +453,52 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
@@ -458,6 +461,52 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
}
}
@@ -176,7 +176,7 @@ index 01644df7763..8c6d05cb94e 100644
/*************************************************************************
* get_modref
*
@@ -1196,7 +1245,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
@@ -1204,7 +1253,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
&wm->ldr.InLoadOrderLinks);
InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList,
&wm->ldr.InMemoryOrderLinks);
@@ -189,7 +189,7 @@ index 01644df7763..8c6d05cb94e 100644
if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT))
{
@@ -1876,6 +1930,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
@@ -1884,6 +1938,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);
@@ -197,7 +197,7 @@ index 01644df7763..8c6d05cb94e 100644
/* FIXME: there are several more dangling references
* left. Including dlls loaded by this dll before the
@@ -3277,6 +3332,7 @@ static void free_modref( WINE_MODREF *wm )
@@ -3314,6 +3369,7 @@ static void free_modref( WINE_MODREF *wm )
{
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
@@ -205,41 +205,22 @@ index 01644df7763..8c6d05cb94e 100644
if (wm->ldr.InInitializationOrderLinks.Flink)
RemoveEntryList(&wm->ldr.InInitializationOrderLinks);
@@ -3979,6 +4035,7 @@ static NTSTATUS process_init(void)
INITIAL_TEB stack;
TEB *teb = NtCurrentTeb();
PEB *peb = teb->Peb;
+ DWORD i;
@@ -3641,6 +3697,10 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
sizeof(peb->TlsExpansionBitmapBits) * 8 );
RtlSetBits( peb->TlsBitmap, 0, 1 ); /* TLS index 0 is reserved and should be initialized to NULL. */
peb->LdrData = &ldr;
peb->FastPebLock = &peb_lock;
@@ -4002,6 +4059,10 @@ static NTSTATUS process_init(void)
InitializeListHead( &ldr.InMemoryOrderModuleList );
InitializeListHead( &ldr.InInitializationOrderModuleList );
+ /* initialize hash table */
+ for (i = 0; i < HASH_MAP_SIZE; i++)
+ InitializeListHead(&hash_table[i]);
+ /* initialize hash table */
+ for (i = 0; i < HASH_MAP_SIZE; i++)
+ InitializeListHead( &hash_table[i] );
+
#ifndef _WIN64
is_wow64 = !!NtCurrentTeb64();
#endif
@@ -4050,6 +4111,10 @@ static NTSTATUS process_init(void)
teb->Tib.StackBase = stack.StackBase;
teb->Tib.StackLimit = stack.StackLimit;
teb->DeallocationStack = stack.DeallocationStack;
+
+ /* the windows version was not set yet when ntdll and kernel32 were loaded */
+ recompute_hash_map();
+
return STATUS_SUCCESS;
}
init_user_process_params();
load_global_options();
version_init();
diff --git a/include/winternl.h b/include/winternl.h
index fcdedaec8aa..6ea72da54f7 100644
index 298ebbc2d36..64aac3f955d 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -3040,8 +3040,8 @@ typedef struct _LDR_DATA_TABLE_ENTRY
@@ -3183,8 +3183,8 @@ typedef struct _LDR_DATA_TABLE_ENTRY
ULONG Flags;
SHORT LoadCount;
SHORT TlsIndex;

View File

@@ -1,4 +1,4 @@
From 1669a5998c69cf1f99b52d8917d0b0f977862374 Mon Sep 17 00:00:00 2001
From b8a8aafd5c57dba6be726cf5974dfce006ea8d06 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 30 May 2015 02:23:15 +0200
Subject: [PATCH] ntdll: Add support for hiding wine version information from
@@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Add support for hiding wine version information from
2 files changed, 103 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 61951663866..dca5551cdb7 100644
index 336b11c6344..46f74df7130 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -74,6 +74,9 @@ BOOL is_wow64 = FALSE;
@@ -20,10 +20,10 @@ index 61951663866..dca5551cdb7 100644
+#define IS_OPTION_TRUE(ch) ((ch) == 'y' || (ch) == 'Y' || (ch) == 't' || (ch) == 'T' || (ch) == '1')
+
+
static BOOL is_prefix_bootstrap; /* are we bootstrapping the prefix? */
static BOOL imports_fixup_done = FALSE; /* set once the imports have been fixed up, before attaching them */
static BOOL process_detaching = FALSE; /* set on process detach to avoid deadlocks with thread detach */
static int free_lib_count; /* recursion depth of LdrUnloadDll calls */
@@ -91,6 +94,8 @@ struct dll_dir_entry
@@ -92,6 +95,8 @@ struct dll_dir_entry
static struct list dll_dir_list = LIST_INIT( dll_dir_list ); /* extra dirs from LdrAddDllDirectory */
@@ -32,7 +32,7 @@ index 61951663866..dca5551cdb7 100644
struct ldr_notification
{
struct list entry;
@@ -1729,6 +1734,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic )
@@ -1673,6 +1678,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic )
}
@@ -129,7 +129,7 @@ index 61951663866..dca5551cdb7 100644
/******************************************************************
* LdrGetProcedureAddress (NTDLL.@)
*/
@@ -1748,7 +1843,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name,
@@ -1692,7 +1787,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name,
{
void *proc = name ? find_named_export( module, exports, exp_size, name->Buffer, -1, NULL )
: find_ordinal_export( module, exports, exp_size, ord - exports->Base, NULL );
@@ -138,7 +138,7 @@ index 61951663866..dca5551cdb7 100644
{
*address = proc;
ret = STATUS_SUCCESS;
@@ -1993,6 +2088,8 @@ static void build_ntdll_module(void)
@@ -1934,6 +2029,8 @@ static void build_ntdll_module(void)
assert( wm );
wm->ldr.Flags &= ~LDR_DONT_RESOLVE_REFS;
if (TRACE_ON(relay)) RELAY_SetupDLL( meminfo.AllocationBase );
@@ -148,10 +148,10 @@ index 61951663866..dca5551cdb7 100644
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index 9ebdeaebfe0..39bb0c1ff6f 100644
index 400ac9398a5..55695f2c370 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -136,6 +136,11 @@ static inline TEB64 *NtCurrentTeb64(void) { return (TEB64 *)NtCurrentTeb()->GdiB
@@ -100,6 +100,11 @@ static inline TEB64 *NtCurrentTeb64(void) { return (TEB64 *)NtCurrentTeb()->GdiB
NTSTATUS WINAPI RtlHashUnicodeString(PCUNICODE_STRING,BOOLEAN,ULONG,ULONG*);

View File

@@ -1,4 +1,4 @@
From 65673c61b09de27189b5f319073e6807d8dbed9e Mon Sep 17 00:00:00 2001
From b41fc553cecc9ba5c81cda41bb85e2ee1937586e Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Mon, 2 Nov 2020 20:24:07 -0600
Subject: [PATCH] ntdll: Reimplement Win32 futexes on top of thread-ID alerts.
@@ -261,10 +261,10 @@ index 25496609f08..4f395336428 100644
}
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 438ff474a92..a962eb46ead 100644
index 4c76865019b..d7fc60cad2f 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1757,9 +1757,6 @@ static struct unix_funcs unix_funcs =
@@ -1753,9 +1753,6 @@ static struct unix_funcs unix_funcs =
#endif
DbgUiIssueRemoteBreakin,
RtlGetSystemTimePrecise,
@@ -467,19 +467,19 @@ index 7d6423083e1..41005425a90 100644
- mutex_unlock( &addr_mutex );
-}
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
index 80e4eaefc75..72d115a556b 100644
index 04ae8230b1a..21e34842778 100644
--- a/dlls/ntdll/unixlib.h
+++ b/dlls/ntdll/unixlib.h
@@ -37,7 +37,7 @@ enum loadorder
};
@@ -26,7 +26,7 @@
struct _DISPATCHER_CONTEXT;
/* increment this when you change the function table */
-#define NTDLL_UNIXLIB_VERSION 119
+#define NTDLL_UNIXLIB_VERSION 120
-#define NTDLL_UNIXLIB_VERSION 120
+#define NTDLL_UNIXLIB_VERSION 121
struct unix_funcs
{
@@ -49,10 +49,6 @@ struct unix_funcs
@@ -38,10 +38,6 @@ struct unix_funcs
/* other Win32 API functions */
NTSTATUS (WINAPI *DbgUiIssueRemoteBreakin)( HANDLE process );
LONGLONG (WINAPI *RtlGetSystemTimePrecise)(void);

View File

@@ -1,4 +1,4 @@
From fd2100138729eece59f3af37c59ee6b166085cc6 Mon Sep 17 00:00:00 2001
From 7ac2eff4652e8ce16550c27b2378e2dc64d54122 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Mon, 31 Aug 2020 23:38:09 -0500
Subject: [PATCH] ntdll: Reimplement the critical section fast path on top of
@@ -83,10 +83,10 @@ index 09975ac3d45..97a5ce7fffa 100644
return ret;
}
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index a962eb46ead..6748c89ccac 100644
index d7fc60cad2f..fe710e9d1f5 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1757,9 +1757,6 @@ static struct unix_funcs unix_funcs =
@@ -1753,9 +1753,6 @@ static struct unix_funcs unix_funcs =
#endif
DbgUiIssueRemoteBreakin,
RtlGetSystemTimePrecise,
@@ -217,7 +217,7 @@ index 41005425a90..6b97028fb68 100644
/* Futex-based SRW lock implementation:
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index 8d80b824d28..8141554a7cd 100644
index 923b888ce68..1524a532a88 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -105,9 +105,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON
@@ -231,19 +231,19 @@ index 8d80b824d28..8141554a7cd 100644
extern NTSTATUS CDECL fast_RtlAcquireSRWLockExclusive( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
index 72d115a556b..d7c880eda04 100644
index 21e34842778..c67daa389a3 100644
--- a/dlls/ntdll/unixlib.h
+++ b/dlls/ntdll/unixlib.h
@@ -37,7 +37,7 @@ enum loadorder
};
@@ -26,7 +26,7 @@
struct _DISPATCHER_CONTEXT;
/* increment this when you change the function table */
-#define NTDLL_UNIXLIB_VERSION 120
+#define NTDLL_UNIXLIB_VERSION 121
-#define NTDLL_UNIXLIB_VERSION 121
+#define NTDLL_UNIXLIB_VERSION 122
struct unix_funcs
{
@@ -51,9 +51,6 @@ struct unix_funcs
@@ -40,9 +40,6 @@ struct unix_funcs
LONGLONG (WINAPI *RtlGetSystemTimePrecise)(void);
/* fast locks */

View File

@@ -1,4 +1,4 @@
From 6409c2d12ba290c5bb8c4335988bc144d08b35b7 Mon Sep 17 00:00:00 2001
From 65b24120d7a4bb05712bcb559d55a30d5a498002 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Mon, 31 Aug 2020 23:55:29 -0500
Subject: [PATCH] ntdll: Get rid of the direct futex path for condition
@@ -80,10 +80,10 @@ index 97a5ce7fffa..1e6afc4cfc8 100644
if (flags & RTL_CONDITION_VARIABLE_LOCKMODE_SHARED)
RtlAcquireSRWLockShared( lock );
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 6748c89ccac..81d8476e4c6 100644
index fe710e9d1f5..36899ba57e3 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1763,8 +1763,6 @@ static struct unix_funcs unix_funcs =
@@ -1759,8 +1759,6 @@ static struct unix_funcs unix_funcs =
fast_RtlAcquireSRWLockShared,
fast_RtlReleaseSRWLockExclusive,
fast_RtlReleaseSRWLockShared,
@@ -187,7 +187,7 @@ index 6b97028fb68..d4092438644 100644
-
#endif
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index 8141554a7cd..a22e7bdd4f4 100644
index 1524a532a88..91b6451ade1 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -111,10 +111,7 @@ extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLS
@@ -202,19 +202,19 @@ index 8141554a7cd..a22e7bdd4f4 100644
extern void CDECL virtual_release_address_space(void) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
index d7c880eda04..8518c7fba13 100644
index c67daa389a3..b0914d3f97e 100644
--- a/dlls/ntdll/unixlib.h
+++ b/dlls/ntdll/unixlib.h
@@ -37,7 +37,7 @@ enum loadorder
};
@@ -26,7 +26,7 @@
struct _DISPATCHER_CONTEXT;
/* increment this when you change the function table */
-#define NTDLL_UNIXLIB_VERSION 121
+#define NTDLL_UNIXLIB_VERSION 122
-#define NTDLL_UNIXLIB_VERSION 122
+#define NTDLL_UNIXLIB_VERSION 123
struct unix_funcs
{
@@ -57,9 +57,6 @@ struct unix_funcs
@@ -46,9 +46,6 @@ struct unix_funcs
NTSTATUS (CDECL *fast_RtlAcquireSRWLockShared)( RTL_SRWLOCK *lock );
NTSTATUS (CDECL *fast_RtlReleaseSRWLockExclusive)( RTL_SRWLOCK *lock );
NTSTATUS (CDECL *fast_RtlReleaseSRWLockShared)( RTL_SRWLOCK *lock );

View File

@@ -1,4 +1,4 @@
From cf50bc7987a6449ada2c801a78697c6299ffb07c Mon Sep 17 00:00:00 2001
From ddc8ae251a344ad7e7e11844b03fe0eaaa553084 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Sun, 22 Nov 2020 20:51:10 -0600
Subject: [PATCH] ntdll: Reimplement SRW locks on top of Win32 futexes.
@@ -392,10 +392,10 @@ index 1e6afc4cfc8..93a6a5fd7de 100644
/***********************************************************************
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 81d8476e4c6..575cc38d5f9 100644
index 36899ba57e3..6a7eb5d7af1 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1757,12 +1757,6 @@ static struct unix_funcs unix_funcs =
@@ -1753,12 +1753,6 @@ static struct unix_funcs unix_funcs =
#endif
DbgUiIssueRemoteBreakin,
RtlGetSystemTimePrecise,
@@ -747,7 +747,7 @@ index d4092438644..b67f5fc8f10 100644
-
-#endif
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index a22e7bdd4f4..cf7b194a14b 100644
index 91b6451ade1..ffce7328600 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -105,12 +105,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON
@@ -764,19 +764,19 @@ index a22e7bdd4f4..cf7b194a14b 100644
extern void CDECL virtual_release_address_space(void) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
index 8518c7fba13..650efb7f5e0 100644
index b0914d3f97e..fd6c1198e99 100644
--- a/dlls/ntdll/unixlib.h
+++ b/dlls/ntdll/unixlib.h
@@ -37,7 +37,7 @@ enum loadorder
};
@@ -26,7 +26,7 @@
struct _DISPATCHER_CONTEXT;
/* increment this when you change the function table */
-#define NTDLL_UNIXLIB_VERSION 122
+#define NTDLL_UNIXLIB_VERSION 123
-#define NTDLL_UNIXLIB_VERSION 123
+#define NTDLL_UNIXLIB_VERSION 124
struct unix_funcs
{
@@ -50,14 +50,6 @@ struct unix_funcs
@@ -39,14 +39,6 @@ struct unix_funcs
NTSTATUS (WINAPI *DbgUiIssueRemoteBreakin)( HANDLE process );
LONGLONG (WINAPI *RtlGetSystemTimePrecise)(void);

View File

@@ -1,87 +0,0 @@
From c65ffcf059cf2768a9ca6ee7a7e38d8a6a25fc44 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 22 May 2020 16:37:37 +1000
Subject: [PATCH] ntdll: NtQuerySystemInformation support
SystemCodeIntegrityInformation
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49192
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/ntdll/unix/system.c | 22 ++++++++++++++++++++++
include/winternl.h | 22 ++++++++++++++++++++++
2 files changed, 44 insertions(+)
diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
index 6fa71ddfb91..fad1d072962 100644
--- a/dlls/ntdll/unix/system.c
+++ b/dlls/ntdll/unix/system.c
@@ -2714,6 +2714,28 @@ NTSTATUS WINAPI NtQuerySystemInformation( SYSTEM_INFORMATION_CLASS class,
ret = STATUS_SUCCESS;
break;
+ case SystemCodeIntegrityInformation:
+ {
+ SYSTEM_CODEINTEGRITY_INFORMATION *scii = info;
+
+ FIXME("SystemCodeIntegrityInformation, size %u, info %p, stub!\n", size, info);
+
+ if (size < sizeof(SYSTEM_CODEINTEGRITY_INFORMATION))
+ {
+ ret = STATUS_INFO_LENGTH_MISMATCH;
+ break;
+ }
+
+ if (!info)
+ {
+ ret = STATUS_ACCESS_VIOLATION;
+ break;
+ }
+
+ scii->CodeIntegrityOptions = CODEINTEGRITY_OPTION_ENABLED;
+ break;
+ }
+
default:
FIXME( "(0x%08x,%p,0x%08x,%p) stub\n", class, info, size, ret_size );
diff --git a/include/winternl.h b/include/winternl.h
index fcdedaec8aa..618fab7d7c2 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -1550,11 +1550,33 @@ typedef enum _SYSTEM_INFORMATION_CLASS {
SystemMemoryListInformation = 80,
SystemFileCacheInformationEx = 81,
SystemDynamicTimeZoneInformation = 102,
+ SystemCodeIntegrityInformation = 103,
SystemLogicalProcessorInformationEx = 107,
SystemHypervisorSharedPageInformation = 197,
SystemInformationClassMax
} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS;
+typedef struct _SYSTEM_CODEINTEGRITY_INFORMATION
+{
+ ULONG Length;
+ ULONG CodeIntegrityOptions;
+} SYSTEM_CODEINTEGRITY_INFORMATION, *PSYSTEM_CODEINTEGRITY_INFORMATION;
+
+#define CODEINTEGRITY_OPTION_ENABLED 0x0001
+#define CODEINTEGRITY_OPTION_TESTSIGN 0x0002
+#define CODEINTEGRITY_OPTION_UMCI_ENABLED 0x0004
+#define CODEINTEGRITY_OPTION_UMCI_AUDITMODE_ENABLED 0x0008
+#define CODEINTEGRITY_OPTION_UMCI_EXCLUSIONPATHS_ENABLED 0x0010
+#define CODEINTEGRITY_OPTION_TEST_BUILD 0x0020
+#define CODEINTEGRITY_OPTION_PREPRODUCTION_BUILD 0x0040
+#define CODEINTEGRITY_OPTION_DEBUGMODE_ENABLED 0x0080
+#define CODEINTEGRITY_OPTION_FLIGHT_BUILD 0x0100
+#define CODEINTEGRITY_OPTION_FLIGHTING_ENABLED 0x0200
+#define CODEINTEGRITY_OPTION_HVCI_KMCI_ENABLED 0x0400
+#define CODEINTEGRITY_OPTION_HVCI_KMCI_AUDITMODE_ENABLED 0x0800
+#define CODEINTEGRITY_OPTION_HVCI_KMCI_STRICTMODE_ENABLED 0x1000
+#define CODEINTEGRITY_OPTION_HVCI_IUM_ENABLED 0x2000
+
typedef enum _THREADINFOCLASS {
ThreadBasicInformation = 0,
ThreadTimes,
--
2.30.2

View File

@@ -1 +0,0 @@
Fixes: [49192] ntdll: NtQuerySystemInformation support SystemCodeIntegrityInformation

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