https://bugs.winehq.org/show_bug.cgi?id=56389
--- Comment #12 from Hristo Venev hristo@venev.name --- I may have found the bug:
If the IO was synchronous, NtReadFile updates the `IO_STATUS_BLOCK` and then sets the event. Then it does some RPCs, returns, and finally the wow64 shim updates the `IO_STATUS_BLOCK32`.
The problem here is that the event is already being waited on by another thread, so it checks the `IO_STATUS_BLOCK32` before the wow64 shim has updated it.