=?UTF-8?Q?R=C3=A9mi=20Bernon=20?=: ntdll: Directly call internal functions from APC handler.
Alexandre Julliard
julliard at winehq.org
Tue Aug 13 14:54:33 CDT 2019
Module: wine
Branch: master
Commit: 5328b9e083bf2e5ea15b21287e96e63643821f33
URL: https://source.winehq.org/git/wine.git/?a=commit;h=5328b9e083bf2e5ea15b21287e96e63643821f33
Author: Rémi Bernon <rbernon at codeweavers.com>
Date: Thu Aug 1 10:07:39 2019 +0200
ntdll: Directly call internal functions from APC handler.
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/server.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
index b82fbc5..16e73d4 100644
--- a/dlls/ntdll/server.c
+++ b/dlls/ntdll/server.c
@@ -391,6 +391,7 @@ BOOL invoke_apc( const apc_call_t *call, apc_result_t *result )
BOOL user_apc = FALSE;
SIZE_T size;
void *addr;
+ pe_image_info_t image_info;
memset( result, 0, sizeof(*result) );
@@ -429,10 +430,11 @@ BOOL invoke_apc( const apc_call_t *call, apc_result_t *result )
size = call->virtual_alloc.size;
if ((ULONG_PTR)addr == call->virtual_alloc.addr && size == call->virtual_alloc.size)
{
- result->virtual_alloc.status = NtAllocateVirtualMemory( NtCurrentProcess(), &addr,
- call->virtual_alloc.zero_bits, &size,
- call->virtual_alloc.op_type,
- call->virtual_alloc.prot );
+ result->virtual_alloc.status = virtual_alloc_aligned( &addr,
+ call->virtual_alloc.zero_bits, &size,
+ call->virtual_alloc.op_type,
+ call->virtual_alloc.prot,
+ 0 );
result->virtual_alloc.addr = wine_server_client_ptr( addr );
result->virtual_alloc.size = size;
}
@@ -534,11 +536,12 @@ BOOL invoke_apc( const apc_call_t *call, apc_result_t *result )
{
LARGE_INTEGER offset;
offset.QuadPart = call->map_view.offset;
- result->map_view.status = NtMapViewOfSection( wine_server_ptr_handle(call->map_view.handle),
- NtCurrentProcess(), &addr,
- call->map_view.zero_bits, 0,
- &offset, &size, ViewShare,
- call->map_view.alloc_type, call->map_view.prot );
+ result->map_view.status = virtual_map_section( wine_server_ptr_handle(call->map_view.handle),
+ &addr,
+ call->map_view.zero_bits, 0,
+ &offset, &size,
+ call->map_view.alloc_type, call->map_view.prot,
+ &image_info );
result->map_view.addr = wine_server_client_ptr( addr );
result->map_view.size = size;
}
More information about the wine-cvs
mailing list