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