[PATCH v3 4/5] ntdll: Return STATUS_PENDING from NtWriteFile() for async write.
gofmanp at gmail.com
Wed Feb 27 14:16:47 CST 2019
On 2/27/19 21:28, Jacek Caban wrote:
> I don't know, is STATUS_PENDING specific to regular files?
No, it is not specific. ntdll read / write can aleady return either
_PENDING or _SUCCESS for special files, depending on whether the
operation is actually performed asynchronously. But regular file
operations are currently never queued asynchronously in Wine. In the
bugs I am aware of the application expects _PENDING just for regular
files. I suppose it is not something to be unified across different file
handle types. If you agree with that it is probably much easier to deal
with regular files without relation to other cases.
> More like a code that calls ReadFile on a handle passed from an
> application that happens to be overlapped. Or overlapped file handle
> is created by accident, since with current code it doesn't matter for
> file handles. Anyway, it doesn't seem likely.
I think I can grep for read / write file calls and check cases which
seem suspicious in this regard. The amount of read / write calls must be
huge but hopefully there are limited number of places where _OVERLAPPED
is used explicitly or read / write on app provided handle is used.
More information about the wine-devel