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(a)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(a)40 () from .wine/drive_c/windows/syswow64/ntdll.dll in DeviceIoControl(a)32 (...) at dlls/kernelbase/file.c:4168 in KERNEL32_DeviceIoControl(a)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. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3007#note_35041