Arbitrary DOS device name
Daniel Kucera
wine at danman.eu
Thu Jan 27 13:52:11 CST 2022
On 2022-01-27 14:13, Daniel Kucera wrote:
>
> Now just the implementation... :)
>
Okay, so I have moved a bit further.
I can receive those ioctls in my driver which is great.
002b:trace:hantek:hantek_ioctl ioctl 222059 insize 10 outsize 10
002b:trace:hantek:hantek_ioctl indata
"\x00\x02\x00\xf7\xea\xf8\x00\x00\x00\x00"
Now I am trying to write the usb part, so I tried to use libusb but
there are two problems:
1. When I include libusb.h in my source file:
#include <libusb-1.0/libusb.h>
I am getting following when running ./configure --enable-win64 :
dlls/hantek.sys/main.c:31: error: system header libusb-1.0/libusb.h
cannot be used with msvcrt
so I have done this to allow the configure to proceed but it is dirty:
if (!strcmp( pFile->name, "stdarg.h" )) return NULL;
fprintf( stderr, "%s:%d: error: system header %s cannot be used
with msvcrt\n",
pFile->included_by->file->name, pFile->included_line,
pFile->name );
- exit(1);
+ //exit(1);
What is the proper way to fix this?
2. configure is generating broken Makefile:
hantek.sys.so hantek.sys.fake: hantek.sys.spec main.o
../../dlls/ntoskrnl.exe/libntoskrnl.def \
../../dlls/msvcrt/libmsvcrt.a ../../dlls/winecrt0/libwinecrt0.a \
../../dlls/kernel32/libkernel32.def ../../dlls/ntdll/libntdll.def
../../tools/winebuild/winebuild \
../../tools/winegcc/winegcc
../../tools/winegcc/winegcc -o $@ --wine-objdir ../.. -m64 -fPIC
-fasynchronous-unwind-tables \
-shared hantek.sys.spec -mno-cygwin -Wl,--subsystem,native main.o
-lntoskrnl -lusb-1 $(LDFLAGS)
note the -lusb-1
while in Makefile.in I have specified:
IMPORTS = ntoskrnl usb-1.0
I also tried 'usb-1.0' and usb-1\.0 but none of them works.
How to fix this one? I am now manually editing the generated Makefile to
-lusb-1.0
Despite these problems, the libusb seems to work correctly in the driver
and I can query it's version:
$ WINEDEBUG=trace+hantek wine Scope.exe
002a:trace:hantek:DriverEntry Using libusb v1.0.24.11584
002a:trace:hantek:DriverEntry (000000000011FCB0,
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Hantek")
hantek
002a:trace:hantek:DriverEntry create device hantek
(L"\\Device\\d6CDE-0") dos device (L"\\DosDevices\\d6CDE-0")
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and
serial are not available.
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and
serial are not available.
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and
serial are not available.
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and
serial are not available.
002b:trace:hantek:hantek_ioctl ioctl 222059 insize 10 outsize 10
002b:trace:hantek:hantek_ioctl indata
"\x00\x02\x00\xf7\xea\xf8\x00\x00\x00\x00"
Thank you in advance.
Daniel.
More information about the wine-devel
mailing list