server: Avoid redefining the DuplicateHandle() constants.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d3df2b12ce
commit
584427fc89
10 changed files with 18 additions and 21 deletions
|
@ -273,7 +273,7 @@ HANDLE WINAPI ConvertToGlobalHandle(HANDLE hSrc)
|
||||||
{
|
{
|
||||||
HANDLE ret = INVALID_HANDLE_VALUE;
|
HANDLE ret = INVALID_HANDLE_VALUE;
|
||||||
DuplicateHandle( GetCurrentProcess(), hSrc, GetCurrentProcess(), &ret, 0, FALSE,
|
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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -213,7 +213,7 @@ done:
|
||||||
RtlLeaveCriticalSection( &vxd_section );
|
RtlLeaveCriticalSection( &vxd_section );
|
||||||
if (!DuplicateHandle( GetCurrentProcess(), handle, GetCurrentProcess(), &handle, 0,
|
if (!DuplicateHandle( GetCurrentProcess(), handle, GetCurrentProcess(), &handle, 0,
|
||||||
(sa && (sa->nLength>=sizeof(*sa)) && sa->bInheritHandle),
|
(sa && (sa->nLength>=sizeof(*sa)) && sa->bInheritHandle),
|
||||||
DUP_HANDLE_SAME_ACCESS ))
|
DUPLICATE_SAME_ACCESS ))
|
||||||
handle = 0;
|
handle = 0;
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
|
|
|
@ -975,7 +975,7 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||||
if (!sem) NtCreateSemaphore( &sem, SEMAPHORE_ALL_ACCESS, NULL, 0, 1 );
|
if (!sem) NtCreateSemaphore( &sem, SEMAPHORE_ALL_ACCESS, NULL, 0, 1 );
|
||||||
|
|
||||||
NtDuplicateObject( NtCurrentProcess(), sem, NtCurrentProcess(), &sem, 0, 0,
|
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;
|
heap->critSection.LockSemaphore = sem;
|
||||||
RtlFreeHeap( processHeap, 0, heap->critSection.DebugInfo );
|
RtlFreeHeap( processHeap, 0, heap->critSection.DebugInfo );
|
||||||
heap->critSection.DebugInfo = NULL;
|
heap->critSection.DebugInfo = NULL;
|
||||||
|
|
|
@ -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 ))
|
if (!wine_server_fd_to_handle( dup(fd), GENERIC_READ | SYNCHRONIZE, 0, &handle ))
|
||||||
DuplicateHandle( GetCurrentProcess(), handle, client, &ret,
|
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;
|
if (!ret) return -1;
|
||||||
return HandleToLong( ret );
|
return HandleToLong( ret );
|
||||||
|
@ -348,7 +348,7 @@ static int map_native_handle( union native_handle_buffer *dest, const native_han
|
||||||
{
|
{
|
||||||
HANDLE ret = 0;
|
HANDLE ret = 0;
|
||||||
if (!DuplicateHandle( GetCurrentProcess(), mapping, client, &ret,
|
if (!DuplicateHandle( GetCurrentProcess(), mapping, client, &ret,
|
||||||
DUPLICATE_SAME_ACCESS, FALSE, DUP_HANDLE_CLOSE_SOURCE ))
|
0, FALSE, DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE ))
|
||||||
return -ENOSPC;
|
return -ENOSPC;
|
||||||
dest->handle.numFds = 0;
|
dest->handle.numFds = 0;
|
||||||
dest->handle.numInts = 1;
|
dest->handle.numInts = 1;
|
||||||
|
|
|
@ -1259,9 +1259,6 @@ struct dup_handle_reply
|
||||||
int closed;
|
int closed;
|
||||||
char __pad_20[4];
|
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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5531,6 +5531,9 @@ typedef struct _QUOTA_LIMITS_EX {
|
||||||
|
|
||||||
#define DUPLICATE_CLOSE_SOURCE 0x00000001
|
#define DUPLICATE_CLOSE_SOURCE 0x00000001
|
||||||
#define DUPLICATE_SAME_ACCESS 0x00000002
|
#define DUPLICATE_SAME_ACCESS 0x00000002
|
||||||
|
#ifdef __WINESRC__
|
||||||
|
#define DUPLICATE_MAKE_GLOBAL 0x80000000 /* Not a Windows flag */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* File attribute flags */
|
/* File attribute flags */
|
||||||
#define FILE_SHARE_READ 0x00000001
|
#define FILE_SHARE_READ 0x00000001
|
||||||
|
|
|
@ -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 = obj->ops->map_access( obj, GENERIC_ALL );
|
||||||
src_access &= ~RESERVED_ALL;
|
src_access &= ~RESERVED_ALL;
|
||||||
|
|
||||||
if (options & DUP_HANDLE_SAME_ACCESS)
|
if (options & DUPLICATE_SAME_ACCESS)
|
||||||
access = src_access;
|
access = src_access;
|
||||||
else
|
else
|
||||||
access = obj->ops->map_access( obj, access ) & ~RESERVED_ALL;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options & DUP_HANDLE_MAKE_GLOBAL)
|
if (options & DUPLICATE_MAKE_GLOBAL)
|
||||||
res = alloc_global_handle( obj, access );
|
res = alloc_global_handle( obj, access );
|
||||||
else
|
else
|
||||||
res = alloc_handle_no_access_check( dst, obj, access, attr );
|
res = alloc_handle_no_access_check( dst, obj, access, attr );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (options & DUP_HANDLE_MAKE_GLOBAL)
|
if (options & DUPLICATE_MAKE_GLOBAL)
|
||||||
res = alloc_global_handle_no_access_check( obj, access );
|
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))
|
entry && !(entry->access & RESERVED_CLOSE_PROTECT))
|
||||||
{
|
{
|
||||||
if (attr & OBJ_INHERIT) access |= RESERVED_INHERIT;
|
if (attr & OBJ_INHERIT) access |= RESERVED_INHERIT;
|
||||||
|
@ -665,7 +665,7 @@ DECL_HANDLER(dup_handle)
|
||||||
reply->handle = 0;
|
reply->handle = 0;
|
||||||
if ((src = get_process_from_handle( req->src_process, PROCESS_DUP_HANDLE )))
|
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,
|
reply->handle = duplicate_handle( src, req->src_handle, NULL,
|
||||||
req->access, req->attributes, req->options );
|
req->access, req->attributes, req->options );
|
||||||
|
@ -677,7 +677,7 @@ DECL_HANDLER(dup_handle)
|
||||||
release_object( dst );
|
release_object( dst );
|
||||||
}
|
}
|
||||||
/* close the handle no matter what happened */
|
/* 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->closed = !close_handle( src, req->src_handle );
|
||||||
reply->self = (src == current->process);
|
reply->self = (src == current->process);
|
||||||
release_object( src );
|
release_object( src );
|
||||||
|
|
|
@ -1122,9 +1122,6 @@ typedef struct
|
||||||
int self; /* is the source the current process? */
|
int self; /* is the source the current process? */
|
||||||
int closed; /* whether the source handle has been closed */
|
int closed; /* whether the source handle has been closed */
|
||||||
@END
|
@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 */
|
/* Make an object temporary */
|
||||||
|
|
|
@ -1644,7 +1644,7 @@ DECL_HANDLER(select)
|
||||||
if (apc->result.type == APC_CREATE_THREAD) /* transfer the handle to the caller process */
|
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,
|
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 );
|
close_handle( current->process, apc->result.create_thread.handle );
|
||||||
apc->result.create_thread.handle = handle;
|
apc->result.create_thread.handle = handle;
|
||||||
clear_error(); /* ignore errors from the above calls */
|
clear_error(); /* ignore errors from the above calls */
|
||||||
|
@ -1740,7 +1740,7 @@ DECL_HANDLER(queue_apc)
|
||||||
{
|
{
|
||||||
/* duplicate the handle into the target process */
|
/* duplicate the handle into the target process */
|
||||||
obj_handle_t handle = duplicate_handle( current->process, apc->call.map_view.handle,
|
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;
|
if (handle) apc->call.map_view.handle = handle;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -376,7 +376,7 @@ void connect_process_winstation( struct process *process, struct thread *parent_
|
||||||
else if (parent_process->winstation)
|
else if (parent_process->winstation)
|
||||||
{
|
{
|
||||||
handle = duplicate_handle( parent_process, 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 );
|
winstation = (struct winstation *)get_handle_obj( process, handle, 0, &winstation_ops );
|
||||||
}
|
}
|
||||||
if (!winstation) goto done;
|
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;
|
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 );
|
if (handle) set_process_default_desktop( process, desktop, handle );
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue