[PATCH 1/3] ntdll: NtReadFileScatter results are reported asynchronously

Andrew Eikum aeikum at codeweavers.com
Thu Nov 30 13:36:40 CST 2017


On Thu, Nov 30, 2017 at 01:16:35PM -0600, Andrew Eikum wrote:
> On Thu, Nov 30, 2017 at 07:59:37PM +0100, Jacek Caban wrote:
> > Hi Andrew,
> > 
> > On 30.11.2017 18:23, Andrew Eikum wrote:
> > > diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
> > > index ca2afa0e89..12b1d0f6c5 100644
> > > --- a/dlls/ntdll/file.c
> > > +++ b/dlls/ntdll/file.c
> > > @@ -1105,7 +1105,7 @@ NTSTATUS WINAPI NtReadFileScatter( HANDLE file, HANDLE event, PIO_APC_ROUTINE ap
> > >  
> > >      if (send_completion) NTDLL_AddCompletion( file, cvalue, status, total );
> > >  
> > > -    return status;
> > > +    return STATUS_PENDING;
> > 
> > Are you sure it should always be a case? Your tests use overlaped file
> > handle, I guess that's what makes differences. At least that's what I've
> > seen with other similar APIs (eg. recent Windows versions always return
> > STATUS_PENDING for ioctls if handle is overlapped).
> > 
> 
> I thought it was weird that this behaved different from other ntdll
> functions. I hadn't thought of the file handle type. I'll try with a
> non-overlapped file and see what changes.
> 

Actually, MSDN says the handle must be created with
FILE_FLAG_OVERLAPPED, and a quick test confirms that.

Andrew



More information about the wine-devel mailing list