Module: wine Branch: master Commit: 584427fc89f943d40fb6ee4d51e14ff46b0f9300 URL: https://source.winehq.org/git/wine.git/?a=commit;h=584427fc89f943d40fb6ee4d5...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Feb 16 11:27:18 2021 +0100
server: Avoid redefining the DuplicateHandle() constants.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/kernel32/process.c | 2 +- dlls/krnl386.exe16/vxd.c | 2 +- dlls/ntdll/heap.c | 2 +- dlls/wineandroid.drv/device.c | 4 ++-- include/wine/server_protocol.h | 3 --- include/winnt.h | 3 +++ server/handle.c | 12 ++++++------ server/protocol.def | 3 --- server/thread.c | 4 ++-- server/winstation.c | 4 ++-- 10 files changed, 18 insertions(+), 21 deletions(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c index 085fff1454e..756d1ef3f87 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c @@ -273,7 +273,7 @@ HANDLE WINAPI ConvertToGlobalHandle(HANDLE hSrc) { HANDLE ret = INVALID_HANDLE_VALUE; DuplicateHandle( GetCurrentProcess(), hSrc, GetCurrentProcess(), &ret, 0, FALSE, - DUP_HANDLE_MAKE_GLOBAL | DUP_HANDLE_SAME_ACCESS | DUP_HANDLE_CLOSE_SOURCE ); + DUPLICATE_MAKE_GLOBAL | DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE ); return ret; }
diff --git a/dlls/krnl386.exe16/vxd.c b/dlls/krnl386.exe16/vxd.c index ab9d916d834..c259cd60775 100644 --- a/dlls/krnl386.exe16/vxd.c +++ b/dlls/krnl386.exe16/vxd.c @@ -213,7 +213,7 @@ done: RtlLeaveCriticalSection( &vxd_section ); if (!DuplicateHandle( GetCurrentProcess(), handle, GetCurrentProcess(), &handle, 0, (sa && (sa->nLength>=sizeof(*sa)) && sa->bInheritHandle), - DUP_HANDLE_SAME_ACCESS )) + DUPLICATE_SAME_ACCESS )) handle = 0; return handle; } diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c index 88db935746a..2d7b229174d 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -975,7 +975,7 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, if (!sem) NtCreateSemaphore( &sem, SEMAPHORE_ALL_ACCESS, NULL, 0, 1 );
NtDuplicateObject( NtCurrentProcess(), sem, NtCurrentProcess(), &sem, 0, 0, - DUP_HANDLE_MAKE_GLOBAL | DUP_HANDLE_SAME_ACCESS | DUP_HANDLE_CLOSE_SOURCE ); + DUPLICATE_MAKE_GLOBAL | DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE ); heap->critSection.LockSemaphore = sem; RtlFreeHeap( processHeap, 0, heap->critSection.DebugInfo ); heap->critSection.DebugInfo = NULL; diff --git a/dlls/wineandroid.drv/device.c b/dlls/wineandroid.drv/device.c index 5bebc5c7901..4a16e6836ed 100644 --- a/dlls/wineandroid.drv/device.c +++ b/dlls/wineandroid.drv/device.c @@ -332,7 +332,7 @@ static int duplicate_fd( HANDLE client, int fd )
if (!wine_server_fd_to_handle( dup(fd), GENERIC_READ | SYNCHRONIZE, 0, &handle )) DuplicateHandle( GetCurrentProcess(), handle, client, &ret, - DUPLICATE_SAME_ACCESS, FALSE, DUP_HANDLE_CLOSE_SOURCE ); + 0, FALSE, DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE );
if (!ret) return -1; return HandleToLong( ret ); @@ -348,7 +348,7 @@ static int map_native_handle( union native_handle_buffer *dest, const native_han { HANDLE ret = 0; if (!DuplicateHandle( GetCurrentProcess(), mapping, client, &ret, - DUPLICATE_SAME_ACCESS, FALSE, DUP_HANDLE_CLOSE_SOURCE )) + 0, FALSE, DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE )) return -ENOSPC; dest->handle.numFds = 0; dest->handle.numInts = 1; diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 416f1af9212..ec34867caf1 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -1259,9 +1259,6 @@ struct dup_handle_reply int closed; char __pad_20[4]; }; -#define DUP_HANDLE_CLOSE_SOURCE DUPLICATE_CLOSE_SOURCE -#define DUP_HANDLE_SAME_ACCESS DUPLICATE_SAME_ACCESS -#define DUP_HANDLE_MAKE_GLOBAL 0x80000000
diff --git a/include/winnt.h b/include/winnt.h index 8feb2e53a4c..48f1715c3b6 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -5531,6 +5531,9 @@ typedef struct _QUOTA_LIMITS_EX {
#define DUPLICATE_CLOSE_SOURCE 0x00000001 #define DUPLICATE_SAME_ACCESS 0x00000002 +#ifdef __WINESRC__ +#define DUPLICATE_MAKE_GLOBAL 0x80000000 /* Not a Windows flag */ +#endif
/* File attribute flags */ #define FILE_SHARE_READ 0x00000001 diff --git a/server/handle.c b/server/handle.c index a6fcb871e2d..ef0f595bf08 100644 --- a/server/handle.c +++ b/server/handle.c @@ -566,7 +566,7 @@ obj_handle_t duplicate_handle( struct process *src, obj_handle_t src_handle, str src_access = obj->ops->map_access( obj, GENERIC_ALL ); src_access &= ~RESERVED_ALL;
- if (options & DUP_HANDLE_SAME_ACCESS) + if (options & DUPLICATE_SAME_ACCESS) access = src_access; else access = obj->ops->map_access( obj, access ) & ~RESERVED_ALL; @@ -581,16 +581,16 @@ obj_handle_t duplicate_handle( struct process *src, obj_handle_t src_handle, str return 0; }
- if (options & DUP_HANDLE_MAKE_GLOBAL) + if (options & DUPLICATE_MAKE_GLOBAL) res = alloc_global_handle( obj, access ); else res = alloc_handle_no_access_check( dst, obj, access, attr ); } else { - if (options & DUP_HANDLE_MAKE_GLOBAL) + if (options & DUPLICATE_MAKE_GLOBAL) res = alloc_global_handle_no_access_check( obj, access ); - else if ((options & DUP_HANDLE_CLOSE_SOURCE) && src == dst && + else if ((options & DUPLICATE_CLOSE_SOURCE) && src == dst && entry && !(entry->access & RESERVED_CLOSE_PROTECT)) { if (attr & OBJ_INHERIT) access |= RESERVED_INHERIT; @@ -665,7 +665,7 @@ DECL_HANDLER(dup_handle) reply->handle = 0; if ((src = get_process_from_handle( req->src_process, PROCESS_DUP_HANDLE ))) { - if (req->options & DUP_HANDLE_MAKE_GLOBAL) + if (req->options & DUPLICATE_MAKE_GLOBAL) { reply->handle = duplicate_handle( src, req->src_handle, NULL, req->access, req->attributes, req->options ); @@ -677,7 +677,7 @@ DECL_HANDLER(dup_handle) release_object( dst ); } /* close the handle no matter what happened */ - if ((req->options & DUP_HANDLE_CLOSE_SOURCE) && (src != dst || req->src_handle != reply->handle)) + if ((req->options & DUPLICATE_CLOSE_SOURCE) && (src != dst || req->src_handle != reply->handle)) reply->closed = !close_handle( src, req->src_handle ); reply->self = (src == current->process); release_object( src ); diff --git a/server/protocol.def b/server/protocol.def index b210a4cf7d1..fb3ee3a52de 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -1122,9 +1122,6 @@ typedef struct int self; /* is the source the current process? */ int closed; /* whether the source handle has been closed */ @END -#define DUP_HANDLE_CLOSE_SOURCE DUPLICATE_CLOSE_SOURCE -#define DUP_HANDLE_SAME_ACCESS DUPLICATE_SAME_ACCESS -#define DUP_HANDLE_MAKE_GLOBAL 0x80000000 /* Not a Windows flag */
/* Make an object temporary */ diff --git a/server/thread.c b/server/thread.c index 38bc25ae5f5..3cee717e169 100644 --- a/server/thread.c +++ b/server/thread.c @@ -1644,7 +1644,7 @@ DECL_HANDLER(select) if (apc->result.type == APC_CREATE_THREAD) /* transfer the handle to the caller process */ { obj_handle_t handle = duplicate_handle( current->process, apc->result.create_thread.handle, - apc->caller->process, 0, 0, DUP_HANDLE_SAME_ACCESS ); + apc->caller->process, 0, 0, DUPLICATE_SAME_ACCESS ); close_handle( current->process, apc->result.create_thread.handle ); apc->result.create_thread.handle = handle; clear_error(); /* ignore errors from the above calls */ @@ -1740,7 +1740,7 @@ DECL_HANDLER(queue_apc) { /* duplicate the handle into the target process */ obj_handle_t handle = duplicate_handle( current->process, apc->call.map_view.handle, - process, 0, 0, DUP_HANDLE_SAME_ACCESS ); + process, 0, 0, DUPLICATE_SAME_ACCESS ); if (handle) apc->call.map_view.handle = handle; else { diff --git a/server/winstation.c b/server/winstation.c index 0403825b575..1c7552f0687 100644 --- a/server/winstation.c +++ b/server/winstation.c @@ -376,7 +376,7 @@ void connect_process_winstation( struct process *process, struct thread *parent_ else if (parent_process->winstation) { handle = duplicate_handle( parent_process, parent_process->winstation, - process, 0, 0, DUP_HANDLE_SAME_ACCESS ); + process, 0, 0, DUPLICATE_SAME_ACCESS ); winstation = (struct winstation *)get_handle_obj( process, handle, 0, &winstation_ops ); } if (!winstation) goto done; @@ -400,7 +400,7 @@ void connect_process_winstation( struct process *process, struct thread *parent_
if (!desktop || desktop->winstation != winstation) goto done;
- handle = duplicate_handle( parent_process, handle, process, 0, 0, DUP_HANDLE_SAME_ACCESS ); + handle = duplicate_handle( parent_process, handle, process, 0, 0, DUPLICATE_SAME_ACCESS ); } if (handle) set_process_default_desktop( process, desktop, handle );