On Wed Jun 26 07:26:50 2024 +0000, Zhiyi Zhang wrote:
> This looks correct at first glance. Do you have an application affected
> by this? It seems to me changing this only reduces some time and -1 will
> be returned if it's the last item.
Yes, I have. It fails on asserting return value of sending LVM_GETNEXTITEM message. I agree about aftereffect of this fix. Anyway, for me it doesn't make sense to handle ahead of time incorrect item (== infoPtr->nItemCount).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5909#note_74482
Previously it was assumed that synchronous I/O fills the 64-bit IOSB, and
asynchronous I/O fills the 32-bit IOSB.
As the ntdll:wow64 tests show, this is incorrect. I/O on an overlapped handle,
whether it is synchronous or not, fills the 32-bit IOSB, and I/O on a
non-overlapped handle always fills the 64-bit IOSB.
The first half is important, since completion can be signaled before we even
return from the initial I/O call [NtReadFile() etc.] Filling the IOSB after
signaling completion is the cause of bug 56389. This patch series fixes that.
The second discrepancy does not cause any bugs, as far as I can see, and is
a bit harder to fix anyway. It is therefore not addressed by this patch series.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56389
--
v2: ntdll: Always fill the 32-bit iosb for overlapped handles, for regular read/write.
ntdll: Always fill the 32-bit iosb for overlapped handles, in set_async_direct_result().
ntdll: Always fill the 32-bit iosb for overlapped handles, in file_complete_async().
https://gitlab.winehq.org/wine/wine/-/merge_requests/5926
--
v4: mmdevapi/tests: Add test for capturing render loopback.
winepulse.drv: Implement pulse_get_loopback_capture_device().
winepulse.drv: Factor out wait_pa_operation_complete().
mmdevapi: Stub AUDCLNT_STREAMFLAGS_LOOPBACK support.
mmdevapi: Adjust timing after main loop start in client_Initialize().
https://gitlab.winehq.org/wine/wine/-/merge_requests/5870