ntoskrnl: Allow running user APC inside the device manager loop.

This commit is contained in:
Alexandre Julliard 2015-03-13 17:02:35 +09:00
parent 33e9798f72
commit c40239d989
1 changed files with 8 additions and 3 deletions

View File

@ -244,10 +244,15 @@ NTSTATUS CDECL wine_ntoskrnl_main_loop( HANDLE stop_event )
/* restart with larger buffer */
break;
case STATUS_PENDING:
if (WaitForMultipleObjects( 2, handles, FALSE, INFINITE ) == WAIT_OBJECT_0)
for (;;)
{
HeapFree( GetProcessHeap(), 0, in_buff );
return STATUS_SUCCESS;
DWORD ret = WaitForMultipleObjectsEx( 2, handles, FALSE, INFINITE, TRUE );
if (ret == WAIT_OBJECT_0)
{
HeapFree( GetProcessHeap(), 0, in_buff );
return STATUS_SUCCESS;
}
if (ret != WAIT_IO_COMPLETION) break;
}
break;
}