On Wed Jun 7 22:34:48 2023 +0000, Zebediah Figura wrote:
This looks very wrong. Is this really supposed to be done in kernel32 and not ntdll? Is this really specific to IOCTL_STORAGE_GET_DEVICE_NUMBER?
Thanks for having a look.
That is the callstack up to the wineserver call: ``` in writev () from libc.so.6 in send_request (req=req@entry=0x22fbc0) at dlls/ntdll/unix/server.c:219 in server_call_unlocked (req_ptr=0x22fbc0) at dlls/ntdll/unix/server.c:292 in virtual_locked_server_call (req_ptr=0x22fbc0) at dlls/ntdll/unix/virtual.c:3821 in server_ioctl_file (handle=0x17c, ...) at dlls/ntdll/unix/file.c:5132 in NtDeviceIoControlFile (handle=0x17c, ..., in_size=4, out_buffer=0x60f428, out_size=12) at dlls/ntdll/unix/file.c:5985 in __wine_syscall_dispatcher () from dlls/ntdll/ntdll.so in NtDeviceIoControlFile@40 () from .wine/drive_c/windows/syswow64/ntdll.dll in DeviceIoControl@32 (...) at dlls/kernelbase/file.c:4168 in KERNEL32_DeviceIoControl@32 (...) at dlls/kernel32/file.c:411 in libKF5Solid!_ZN5Solid8Backends3Win16WinDeviceManager20getDeviceInfoPrivateI22_STORAGE_DEVICE_NUMBERPvEEvRK7QStringiPT_mPT0_ () from .wine/drive_c/digiKam/libKF5Solid.dll ```
So that has better to go into `NtDeviceIoControlFile` ?
I am not sure if there are other IOCTLs, I have just looked at this application with this specific IOCTL.