forked from Mirrors/wine-wine
Pass inherit handle flag properly for CreateNamedPipe.
parent
0053b8b24b
commit
9ffce00940
|
@ -1062,6 +1062,7 @@ HANDLE WINAPI CreateNamedPipeW( LPCWSTR name, DWORD dwOpenMode,
|
||||||
req->outsize = nOutBufferSize;
|
req->outsize = nOutBufferSize;
|
||||||
req->insize = nInBufferSize;
|
req->insize = nInBufferSize;
|
||||||
req->timeout = nDefaultTimeOut;
|
req->timeout = nDefaultTimeOut;
|
||||||
|
req->inherit = (attr && (attr->nLength>=sizeof(*attr)) && attr->bInheritHandle);
|
||||||
wine_server_add_data( req, name, len * sizeof(WCHAR) );
|
wine_server_add_data( req, name, len * sizeof(WCHAR) );
|
||||||
SetLastError(0);
|
SetLastError(0);
|
||||||
if (!wine_server_call_err( req )) ret = reply->handle;
|
if (!wine_server_call_err( req )) ret = reply->handle;
|
||||||
|
|
|
@ -2414,6 +2414,7 @@ struct create_named_pipe_request
|
||||||
unsigned int outsize;
|
unsigned int outsize;
|
||||||
unsigned int insize;
|
unsigned int insize;
|
||||||
unsigned int timeout;
|
unsigned int timeout;
|
||||||
|
int inherit;
|
||||||
/* VARARG(name,unicode_str); */
|
/* VARARG(name,unicode_str); */
|
||||||
};
|
};
|
||||||
struct create_named_pipe_reply
|
struct create_named_pipe_reply
|
||||||
|
@ -3762,6 +3763,6 @@ union generic_reply
|
||||||
struct set_global_windows_reply set_global_windows_reply;
|
struct set_global_windows_reply set_global_windows_reply;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define SERVER_PROTOCOL_VERSION 131
|
#define SERVER_PROTOCOL_VERSION 132
|
||||||
|
|
||||||
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
|
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
|
||||||
|
|
|
@ -629,7 +629,7 @@ DECL_HANDLER(create_named_pipe)
|
||||||
{
|
{
|
||||||
server->state = ps_idle_server;
|
server->state = ps_idle_server;
|
||||||
reply->handle = alloc_handle( current->process, server,
|
reply->handle = alloc_handle( current->process, server,
|
||||||
GENERIC_READ|GENERIC_WRITE, 0 );
|
GENERIC_READ|GENERIC_WRITE, req->inherit );
|
||||||
server->pipe->instances++;
|
server->pipe->instances++;
|
||||||
release_object( server );
|
release_object( server );
|
||||||
}
|
}
|
||||||
|
|
|
@ -1705,6 +1705,7 @@ enum message_type
|
||||||
unsigned int outsize;
|
unsigned int outsize;
|
||||||
unsigned int insize;
|
unsigned int insize;
|
||||||
unsigned int timeout;
|
unsigned int timeout;
|
||||||
|
int inherit; /* inherit flag */
|
||||||
VARARG(name,unicode_str); /* pipe name */
|
VARARG(name,unicode_str); /* pipe name */
|
||||||
@REPLY
|
@REPLY
|
||||||
obj_handle_t handle; /* handle to the pipe */
|
obj_handle_t handle; /* handle to the pipe */
|
||||||
|
|
|
@ -2005,6 +2005,7 @@ static void dump_create_named_pipe_request( const struct create_named_pipe_reque
|
||||||
fprintf( stderr, " outsize=%08x,", req->outsize );
|
fprintf( stderr, " outsize=%08x,", req->outsize );
|
||||||
fprintf( stderr, " insize=%08x,", req->insize );
|
fprintf( stderr, " insize=%08x,", req->insize );
|
||||||
fprintf( stderr, " timeout=%08x,", req->timeout );
|
fprintf( stderr, " timeout=%08x,", req->timeout );
|
||||||
|
fprintf( stderr, " inherit=%d,", req->inherit );
|
||||||
fprintf( stderr, " name=" );
|
fprintf( stderr, " name=" );
|
||||||
dump_varargs_unicode_str( cur_size );
|
dump_varargs_unicode_str( cur_size );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue