[PATCH 2/3] kernelbase: Set the proper error code in GetQueuedCompletionStatus{Ex} when the handle is closed.
Dmitry Timoshkov
dmitry at baikal.ru
Wed Apr 29 04:49:34 CDT 2020
Alexey Prokhin <alexey at prokhin.ru> wrote:
> if (status == STATUS_TIMEOUT) SetLastError( WAIT_TIMEOUT );
> + else if (status == ERROR_WAIT_NO_CHILDREN) SetLastError( ERROR_ABANDONED_WAIT_0 );
> else SetLastError( RtlNtStatusToDosError(status) );
> return FALSE;
> }
> @@ -980,6 +981,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetQueuedCompletionStatusEx( HANDLE port, OVERLAPP
> if (ret == STATUS_SUCCESS) return TRUE;
> else if (ret == STATUS_TIMEOUT) SetLastError( WAIT_TIMEOUT );
> else if (ret == STATUS_USER_APC) SetLastError( WAIT_IO_COMPLETION );
> + else if (ret == ERROR_WAIT_NO_CHILDREN) SetLastError( ERROR_ABANDONED_WAIT_0 );
> else SetLastError( RtlNtStatusToDosError(ret) );
> return FALSE;
> }
Probably 'ret' should be checked for appropriate STATUS_xxx code, accidently
ERROR_WAIT_NO_CHILDREN is equal STATUS_ABANDONED_WAIT_0.
--
Dmitry.
More information about the wine-devel
mailing list