[PATCH 1/4] Handle FSCTL in NtDeviceIoControlFile.

Alex Xu (Hello71) alex_y_xu at yahoo.ca
Mon Jul 26 09:13:12 CDT 2021


Excerpts from Chip Davis's message of July 25, 2021 4:06 pm:
> Needs tests showing that FSCTLs do indeed work with NtDeviceIoControlFile().
> 
> 
> Chip
> 

Yes, I see your point.

It looks like it should be simple to add NtDeviceIoControlFile in 
dlls/ntdll/tests/file.c, but I was wondering: there don't seem to be any 
tests already, and it seems like it should make more sense to add a test 
for DeviceIoControl instead (since that is what most applications will 
care about).

However, looking at that, there are two implementations of 
DeviceIoControl, in kernelbase and kernel32. Why doesn't the kernel32 
one forward to kernelbase like most kernel32 functions? Also, why is the 
kernelbase function different from the kernel32 function? I don't know 
anything about VxDs, but it seems odd that the kernel32 one uses 
Information only for non-overlapped IO, but kernelbase uses it for 
overlapped too. Actually, looking at dlls/ntdll, it doesn't seem like 
InternalHigh is actually used for anything? It seems like it might 
happen to work on little-endian machines by chance due to alignment of 
OVERLAPPED and IO_STATUS_BLOCK, but this doesn't seem like a reliable 
method.

I checked git history, seems like InternalHigh should actually be 
Information everywhere? Thoughts?

Regards,
Alex.



More information about the wine-devel mailing list