server: Use the common pattern for async I/O parameters in named pipe requests.
This commit is contained in:
parent
7b10348088
commit
eb3728d34e
|
@ -982,9 +982,10 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
|
|||
}
|
||||
SERVER_START_REQ(connect_named_pipe)
|
||||
{
|
||||
req->handle = handle;
|
||||
req->event = event ? event : internal_event;
|
||||
req->func = pipe_completion_wait;
|
||||
req->handle = handle;
|
||||
req->io_apc = pipe_completion_wait;
|
||||
req->io_sb = io;
|
||||
req->io_user = event ? event : internal_event;
|
||||
io->u.Status = wine_server_call(req);
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
|
@ -1018,8 +1019,9 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
|
|||
req->handle = handle;
|
||||
req->timeout = buff->TimeoutSpecified ? buff->Timeout.QuadPart / -10000L
|
||||
: NMPWAIT_USE_DEFAULT_WAIT;
|
||||
req->event = event ? event : internal_event;
|
||||
req->func = pipe_completion_wait;
|
||||
req->io_apc = pipe_completion_wait;
|
||||
req->io_sb = io;
|
||||
req->io_user = event ? event : internal_event;
|
||||
wine_server_add_data( req, buff->Name, buff->NameLength );
|
||||
io->u.Status = wine_server_call( req );
|
||||
}
|
||||
|
|
|
@ -2709,8 +2709,9 @@ struct connect_named_pipe_request
|
|||
{
|
||||
struct request_header __header;
|
||||
obj_handle_t handle;
|
||||
obj_handle_t event;
|
||||
void* func;
|
||||
void* io_apc;
|
||||
void* io_sb;
|
||||
void* io_user;
|
||||
};
|
||||
struct connect_named_pipe_reply
|
||||
{
|
||||
|
@ -2724,8 +2725,9 @@ struct wait_named_pipe_request
|
|||
struct request_header __header;
|
||||
obj_handle_t handle;
|
||||
unsigned int timeout;
|
||||
obj_handle_t event;
|
||||
void* func;
|
||||
void* io_apc;
|
||||
void* io_sb;
|
||||
void* io_user;
|
||||
/* VARARG(name,unicode_str); */
|
||||
};
|
||||
struct wait_named_pipe_reply
|
||||
|
@ -4692,6 +4694,6 @@ union generic_reply
|
|||
struct allocate_locally_unique_id_reply allocate_locally_unique_id_reply;
|
||||
};
|
||||
|
||||
#define SERVER_PROTOCOL_VERSION 280
|
||||
#define SERVER_PROTOCOL_VERSION 281
|
||||
|
||||
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
|
||||
|
|
|
@ -824,8 +824,7 @@ DECL_HANDLER(connect_named_pipe)
|
|||
case ps_wait_connect:
|
||||
assert( !server->fd );
|
||||
server->state = ps_wait_open;
|
||||
create_async( current, NULL, &server->wait_q,
|
||||
req->func, req->event, NULL );
|
||||
create_async( current, NULL, &server->wait_q, req->io_apc, req->io_user, req->io_sb );
|
||||
async_terminate_queue( &server->pipe->waiters, STATUS_SUCCESS );
|
||||
break;
|
||||
case ps_connected_server:
|
||||
|
@ -873,9 +872,9 @@ DECL_HANDLER(wait_named_pipe)
|
|||
/* there's already a server waiting for a client to connect */
|
||||
memset( &data, 0, sizeof(data) );
|
||||
data.type = APC_ASYNC_IO;
|
||||
data.async_io.func = req->func;
|
||||
data.async_io.user = req->event;
|
||||
data.async_io.sb = NULL;
|
||||
data.async_io.func = req->io_apc;
|
||||
data.async_io.user = req->io_user;
|
||||
data.async_io.sb = req->io_sb;
|
||||
data.async_io.status = STATUS_SUCCESS;
|
||||
thread_queue_apc( current, NULL, &data );
|
||||
release_object( server );
|
||||
|
@ -884,13 +883,13 @@ DECL_HANDLER(wait_named_pipe)
|
|||
{
|
||||
if (req->timeout == NMPWAIT_WAIT_FOREVER)
|
||||
create_async( current, NULL, &pipe->waiters,
|
||||
req->func, req->event, NULL );
|
||||
req->io_apc, req->io_user, req->io_sb );
|
||||
else
|
||||
{
|
||||
struct timeval when = current_time;
|
||||
if (req->timeout == NMPWAIT_USE_DEFAULT_WAIT) add_timeout( &when, pipe->timeout );
|
||||
else add_timeout( &when, req->timeout );
|
||||
create_async( current, &when, &pipe->waiters, req->func, req->event, NULL );
|
||||
create_async( current, &when, &pipe->waiters, req->io_apc, req->io_user, req->io_sb );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1997,8 +1997,9 @@ enum message_type
|
|||
/* Connect to a named pipe */
|
||||
@REQ(connect_named_pipe)
|
||||
obj_handle_t handle;
|
||||
obj_handle_t event;
|
||||
void* func;
|
||||
void* io_apc; /* APC routine to queue upon end of async */
|
||||
void* io_sb; /* I/O status block */
|
||||
void* io_user; /* data to pass back to caller */
|
||||
@END
|
||||
|
||||
|
||||
|
@ -2006,8 +2007,9 @@ enum message_type
|
|||
@REQ(wait_named_pipe)
|
||||
obj_handle_t handle;
|
||||
unsigned int timeout;
|
||||
obj_handle_t event;
|
||||
void* func;
|
||||
void* io_apc; /* APC routine to queue upon end of async */
|
||||
void* io_sb; /* I/O status block */
|
||||
void* io_user; /* data to pass back to caller */
|
||||
VARARG(name,unicode_str); /* pipe name */
|
||||
@END
|
||||
|
||||
|
|
|
@ -2425,16 +2425,18 @@ static void dump_open_named_pipe_reply( const struct open_named_pipe_reply *req
|
|||
static void dump_connect_named_pipe_request( const struct connect_named_pipe_request *req )
|
||||
{
|
||||
fprintf( stderr, " handle=%p,", req->handle );
|
||||
fprintf( stderr, " event=%p,", req->event );
|
||||
fprintf( stderr, " func=%p", req->func );
|
||||
fprintf( stderr, " io_apc=%p,", req->io_apc );
|
||||
fprintf( stderr, " io_sb=%p,", req->io_sb );
|
||||
fprintf( stderr, " io_user=%p", req->io_user );
|
||||
}
|
||||
|
||||
static void dump_wait_named_pipe_request( const struct wait_named_pipe_request *req )
|
||||
{
|
||||
fprintf( stderr, " handle=%p,", req->handle );
|
||||
fprintf( stderr, " timeout=%08x,", req->timeout );
|
||||
fprintf( stderr, " event=%p,", req->event );
|
||||
fprintf( stderr, " func=%p,", req->func );
|
||||
fprintf( stderr, " io_apc=%p,", req->io_apc );
|
||||
fprintf( stderr, " io_sb=%p,", req->io_sb );
|
||||
fprintf( stderr, " io_user=%p,", req->io_user );
|
||||
fprintf( stderr, " name=" );
|
||||
dump_varargs_unicode_str( cur_size );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue