server: Use async->iosb->status instead of async->status in async_satisfied().

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2021-08-31 19:23:49 -05:00 committed by Alexandre Julliard
parent be07015407
commit 8e7a5ec817
1 changed files with 5 additions and 1 deletions

View File

@ -112,13 +112,16 @@ static void async_satisfied( struct object *obj, struct wait_queue_entry *entry
struct async *async = (struct async *)obj;
assert( obj->ops == &async_ops );
/* we only return an async handle for asyncs created via create_request_async() */
assert( async->iosb );
if (async->direct_result)
{
async_set_result( &async->obj, async->iosb->status, async->iosb->result );
async->direct_result = 0;
}
set_wait_status( entry, async->status );
set_wait_status( entry, async->iosb->status );
/* close wait handle here to avoid extra server round trip */
if (async->wait_handle)
@ -398,6 +401,7 @@ void async_set_result( struct object *obj, unsigned int status, apc_param_t tota
if (async->timeout) remove_timeout_user( async->timeout );
async->timeout = NULL;
async->status = status;
if (async->iosb) async->iosb->status = status;
if (async->data.apc)
{