Hello,
is there any information what the data passed to Linux driver function 'long unlocked_ioctl (struct file *f, unsigned int cmd, unsigned long arg)' when Windows program makes the call of 'DeviceIoControl'?
Interested parameters 'cmd' and 'arg'. I found that data passed to argument 'cmd' doesn't corresponds to value of argument 'dwIoControlCode' which passed to DeviceIoControl.
PS: Wine version -- 1.6.2, Linux kernel -- 4.2.0
Wine program DeviceIoControl -> Linux driver unlocked_ioctl
-
- Newbie
- Posts: 2
- Joined: Sat Mar 12, 2016 12:00 pm
-
- Newbie
- Posts: 2
- Joined: Sat Mar 12, 2016 12:00 pm
Re: Wine program DeviceIoControl -> Linux driver unlocked_io
I had dived into Wine sources and found the following:
1. when win programm invokes 'DeviceIoControl' Wine creates request and passes it to 'wineserver';
2. 'wineserver' process the request and performes an 'ioctl' call to Linux driver.
But I can not understand how and where this call (syscal 'ioctl') was performed.
Can someone explain how the 'wineserver' performs a call of 'ioctl'?
PS: Wine has been updated to 1.9.2
Best regards
1. when win programm invokes 'DeviceIoControl' Wine creates request and passes it to 'wineserver';
2. 'wineserver' process the request and performes an 'ioctl' call to Linux driver.
But I can not understand how and where this call (syscal 'ioctl') was performed.
Can someone explain how the 'wineserver' performs a call of 'ioctl'?
PS: Wine has been updated to 1.9.2
Best regards
Re: Wine program DeviceIoControl -> Linux driver unlocked_io
Take a look the following file in the Wine source tree:
for the implementation of the DeviceIoControl() function wrapper.
Code: Select all
dlls/kernel32/file.c