1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00

wineandroid.drv: Return result through NtCallbackReturn for the start device callback.

This commit is contained in:
Alexandre Julliard 2024-01-19 13:43:10 +01:00
parent 643538a836
commit be44253c94
2 changed files with 4 additions and 4 deletions

View file

@ -1177,7 +1177,8 @@ void start_android_device(void)
{
void *ret_ptr;
ULONG ret_len;
thread = ULongToHandle( KeUserModeCallback( client_start_device, NULL, 0, &ret_ptr, &ret_len ));
KeUserModeCallback( client_start_device, NULL, 0, &ret_ptr, &ret_len );
if (ret_len == sizeof(thread)) thread = *(HANDLE *)ret_ptr;
}

View file

@ -34,7 +34,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(android);
extern NTSTATUS CDECL wine_ntoskrnl_main_loop( HANDLE stop_event );
static HANDLE stop_event;
static HANDLE thread;
static NTSTATUS WINAPI ioctl_callback( DEVICE_OBJECT *device, IRP *irp )
@ -97,10 +96,10 @@ static NTSTATUS WINAPI android_start_device(void *param, ULONG size)
HANDLE handles[2];
handles[0] = CreateEventW( NULL, TRUE, FALSE, NULL );
handles[1] = thread = CreateThread( NULL, 0, device_thread, handles[0], 0, NULL );
handles[1] = CreateThread( NULL, 0, device_thread, handles[0], 0, NULL );
WaitForMultipleObjects( 2, handles, FALSE, INFINITE );
CloseHandle( handles[0] );
return HandleToULong( thread );
return NtCallbackReturn( &handles[1], sizeof(handles[1]), STATUS_SUCCESS );
}