Re: [PATCH] shell32: IShellDispatch_NameSpace: Special-folder argument shouldn't be negative.

2011-11-03 Thread Alexander Morozov

-1 in this test is only a sample of a bad constant. Do you sure
that S_OK should be returned for any positive argument?





Re: USB Osciloscope

2011-03-10 Thread Alexander Morozov
 wine-1.0.1

Try to use 1.3.15 with a patch for it.

 phoenox@firebird:~/.wine/drive_c/DSO8000$ WINEDEBUG=+winedevice,
 +ntoskrnl,+usbhub wine ezusb.sys

Do not run the driver manually. Put it in windows/system32/drivers and run 
your program under WINE, the driver will be loaded if your USB device is 
connected.




Re: Fail to use USB-Key/USB-Shield with wine USB patch :cannot start service 'SCardSvr':win error code:0x00000424

2011-01-17 Thread Alexander Morozov
 I have winedumped all the .sys files and tared them together here:
 http://goo.gl/bEu03
Drivers import smclib.sys and wmilib.sys which are not implemented. And I 
doubt that they will be implemented soon (or ever).
Also winscard way seems to me to be more right in this case.




Re: Fail to use USB-Key/USB-Shield with wine USB patch :cannot start service 'SCardSvr':win error code:0x00000424

2011-01-15 Thread Alexander Morozov
Hi,

Can you show an output of winedump -x for installed drivers?

In okenadmin.exe output there are fixme:winscard: messages. May be this patch 
can be useful:
http://www.idrix.fr/Root/SCard4Wine/winscard.tar.gz

Thanks,
Alexander




Shell.Application

2010-12-22 Thread Alexander Morozov
Some Windows programs use Shell.Application object (sample: 
http://bugs.winehq.org/show_bug.cgi?id=8987). This object has IShellDispatch, 
IShellDispatch2, IShellDispatch3, ... interfaces 
(http://www.com.it-berater.org/COM/windows_shell/interfaces/IShellDispatch.htm).
 
If IShellDispatch is sufficient for some application and I am going to add 
its declaration should I add IShellDispatch2, 3, ..., 5 in addition?




Re: crypt32/tests: Add tests for decoding enveloped messages.

2010-11-23 Thread Alexander Morozov
Thank you, I looked at test results and sent some patches.

 Could you have a look? If you need me to test something on my boxes
 (pv-winme and pv-nt4srvr) let me know (not all testbot machines fail here).




[do not apply] Re: crypt32/tests: Add tests for enveloped messages.

2010-11-01 Thread Alexander Morozov
Please do not apply this patch. Use [try 2]




Re: Fwd: Unable to Get Sony IC Recorder (Digital Voice Editor 3.3.01) to Work with 32-bit Wine (Windows Emulator) in 64-bit Fedora 11 x86_64 Linux

2010-09-17 Thread Alexander Morozov
Dear Teo En Ming,

Most likely something is not implemented in wine and usb patch and it is not 
so fast to fix it. You can run
wineserver -k
WINEDEBUG=+winedevice,+ntoskrnl,+usbhub,+setupapi,+file wine your_program  
log
and try to find what is bad in log

Best regards,
Alexander Morozov

On Friday 17 September 2010 17:48:00 Mr. Teo En Ming (Zhang Enming) 张恩鸣 of 
Singapore wrote:
 Dear Alexander Morozov,

 Thank you for your response.

 I have tried to ensure that the permissions for the Sony IC Recorder in
 /dev/bus/usb/005/009 is
 crw-rw-rw- by executing the following command:

 chmod o+rw /dev/bus/usb/005/009

 However, Sony Digital Voice Editor 3 still cannot detect the IC Recorder.

 Do you have any more ideas?

 Thank you.




Re: Fwd: Unable to Get Sony IC Recorder (Digital Voice Editor 3.3.01) to Work with 32-bit Wine (Windows Emulator) in 64-bit Fedora 11 x86_64 Linux

2010-09-17 Thread Alexander Morozov
 err:module:import_dll Library NDIS.SYS (which is needed by
 LC:\\windows\\system32\\drivers\\npf.sys) not found
 err:winedevice:ServiceMain driver Lnpf failed to load

Likely icdusb2.sys is not the only driver needed for your device. And other 
drivers installed by DVESetup_EN.exe are not working under wine.




Re: Fwd: Unable to Get Sony IC Recorder (Digital Voice Editor 3.3.01) to Work with 32-bit Wine (Windows Emulator) in 64-bit Fedora 11 x86_64 Linux

2010-09-17 Thread Alexander Morozov
 I have attached DVEdit.log.txt.

In addition to problem with loading npf.sys, icdusb2.sys tries to use 
KeInitializeDeviceQueue which is not implemented and crashes.




Re: USB Device Support

2010-09-14 Thread Alexander Morozov
 Before I go off and try to update your USB device support for the latest
 Wine release, are you continuing to maintain this code current to the Wine
 Development and Wine Stable trunks?
I will update patches.

Thanks,
Alexander




Re: kernel32: Prevent second loading of a library with specified path.

2009-06-09 Thread Alexander Morozov
 This should most likely be done in ntdll. Also please add tests for
 these different cases.

For tests should create dll which can be loaded. But I do not know how to 
implement this in tests on WINE. I tried to copy and rename .exe.so module 
but it seems like the problem is existing only for PE modules.




Re: kernel32: Prevent second loading of a library with specified path.

2009-06-09 Thread Alexander Morozov
 I think we already create our own dll's for testing purposes, see
 kernel32/tests/loader.c (test_Loader()).

 Will that suffice?

Thanks. This is what is need.




Re: Status of USB device support in wine

2009-04-27 Thread Alexander Morozov
 - The files from ftp://ftp.etersoft.ru/pub/people/amorozov/usb/current/ miss 
  lines in configure.ac to trigger the Makefile generation for usbd.sys and
 usbhub.sys.

The part which is generated by tools/make_makefiles is not included in these 
patches.

 Both dll/drivers pair (libusb0.dll/libusb0.sys and ftd2xx.dll/ftdibus.sys)
 work an a lot devices and so must scan the bus for matching devices. I
 didn't get wine with the patches to do anything sensible in that case.

As I understand drivers should not scan bus. They are loaded for devices with 
appropriate
VID and PID. On Windows should modify inf-file (see Device Driver Installation 
on
libusb-win32.sourceforge.net). On WINE with USB patches should add appropriate 
registry
entries.




Re: Loading of Mingw Provided .sys files

2009-04-08 Thread Alexander Morozov
 trying to use the supplied or the mingw (cross) compiled libusb0.sys from
 sourceforge with the USB enabled tree from
 http://git.etersoft.ru/people/lav/packages/wine.git
 
 loading libusb0.sys fails: 

Drivers built with WinDDK is not page-aligned and
(nt-OptionalHeader.SectionAlignment = page_mask) is true for them.
But libusb0.sys is page-aligned:
$ winedump libusb0.sys | grep section
  section align  0x1000 4096

See map_image() in dlls/ntdll/virtual.c:

/* check for non page-aligned binary */

if (nt-OptionalHeader.SectionAlignment = page_mask)
{
/* unaligned sections, this happens for native subsystem binaries */
/* in that case Windows simply maps in the whole file */
...
goto done;
}




Re: Status of USB driver support?

2009-02-20 Thread Alexander Morozov
On Thursday 19 February 2009 16:55:20 emiliano esposito wrote:
 Unhandled exception: unimplemented function
 usbd.sys.USBD_GetUSBDIVersion called in 32-bit code (0x7ee2e923)

You can try attached patch
From b7fad82130608126244ba2aee3f91b3337229fb3 Mon Sep 17 00:00:00 2001
From: Alexander Morozov amoro...@etersoft.ru
Date: Fri, 20 Feb 2009 12:14:33 +0300
Subject: [PATCH 3/3] usbd.sys: Implement USBD_GetUSBDIVersion.

---
 dlls/usbd.sys/usbd.c|7 +++
 dlls/usbd.sys/usbd.sys.spec |2 +-
 include/ddk/usb.h   |6 ++
 3 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/dlls/usbd.sys/usbd.c b/dlls/usbd.sys/usbd.c
index 8c2a8f9..c7c8fab 100644
--- a/dlls/usbd.sys/usbd.c
+++ b/dlls/usbd.sys/usbd.c
@@ -132,6 +132,13 @@ PURB WINAPI USBD_CreateConfigurationRequest(
 return urb;
 }
 
+void WINAPI USBD_GetUSBDIVersion( PUSBD_VERSION_INFORMATION VersionInformation 
)
+{
+TRACE( %p\n, VersionInformation );
+VersionInformation-USBDI_Version = 0x300;
+VersionInformation-Supported_USB_Version = 0x100;
+}
+
 NTSTATUS WINAPI DriverEntry( DRIVER_OBJECT *driver, UNICODE_STRING *path )
 {
 return STATUS_SUCCESS;
diff --git a/dlls/usbd.sys/usbd.sys.spec b/dlls/usbd.sys/usbd.sys.spec
index 5d0377c..a18bbf8 100644
--- a/dlls/usbd.sys/usbd.sys.spec
+++ b/dlls/usbd.sys/usbd.sys.spec
@@ -19,7 +19,7 @@
 @ stub USBD_GetInterfaceLength
 @ stub USBD_GetPdoRegistryParameter
 @ stub USBD_GetSuspendPowerState
-@ stub USBD_GetUSBDIVersion
+@ stdcall USBD_GetUSBDIVersion(ptr)
 @ stub USBD_InitializeDevice
 @ stub USBD_MakePdoName
 @ stub USBD_ParseConfigurationDescriptor
diff --git a/include/ddk/usb.h b/include/ddk/usb.h
index b8f5f3f..a5db726 100644
--- a/include/ddk/usb.h
+++ b/include/ddk/usb.h
@@ -82,6 +82,12 @@ typedef PVOID USBD_PIPE_HANDLE;
 typedef PVOID USBD_CONFIGURATION_HANDLE;
 typedef PVOID USBD_INTERFACE_HANDLE;
 
+typedef struct _USBD_VERSION_INFORMATION {
+ULONG USBDI_Version;
+ULONG Supported_USB_Version;
+} USBD_VERSION_INFORMATION;
+typedef struct _USBD_VERSION_INFORMATION *PUSBD_VERSION_INFORMATION;
+
 typedef enum _USBD_PIPE_TYPE {
 UsbdPipeTypeControl,
 UsbdPipeTypeIsochronous,
-- 
1.6.1.3.GIT




Re: Status of USB driver support?

2009-02-19 Thread Alexander Morozov
 Unhandled exception: unimplemented function
 usbd.sys.USBD_GetUSBDIVersion called in 32-bit code (0x7ee2e923)

Should implement USBD_GetUSBDIVersion to fix this.




Re: Status of USB driver support?

2009-02-18 Thread Alexander Morozov
 Now I kindly ask: is there a simple way to integrate the official branch
 with just the USB patches?

You can use patches for wine-1.1.15 and git am.

 If that USB Key is not of a supportable kind, then I apologize for asking.

I think you should try.




Re: Status of USB driver support?

2009-02-16 Thread Alexander Morozov
Minor updated patches:
ftp://ftp.etersoft.ru/pub/people/amorozov/usb/1.1.15/0001-Add-support-of-native-Windows-drivers-for-USB-tokens.txt
ftp://ftp.etersoft.ru/pub/people/amorozov/usb/1.1.15/0002-Re-generate-some-files.txt




Re: Status of USB driver support?

2009-02-16 Thread Alexander Morozov
This patch is made, first of all, for running applications protected with USB 
keys. 

For using native USB driver should copy 
HKLM\System\CurrentControlSet\Enum\USB\Vid_vidPid_pid and 
HKLM\System\CurrentControlSet\Services\driver_name from Windows registry. 
The driver should be put in the directory specified by 
HKLM\System\CurrentControlSet\Services\driver_name\ImagePath. Also you need 
to have permissions to read/write to USB device.

For using HASP HL keys aksclass.sys should be placed in windows/system32 
instead of windows/system32/drivers. Also you should copy 
HKLM\System\CurrentControlSet\Enum\Hasp from Windows registry.

I tested last patch with Eutron SmartKey 3 (eusk3usb.sys, vid:pid 
073d:0025) and HASP HL 3.21 (aksusb.sys, akshasp.sys, aksclass.sys, 
0529:0001). Also SafeNet UltraPro (sntnlusb.sys, 04b9:0300) should work 
(tested with previous versions). For testing keys I used protected 
applications and simple test programs using API from key vendors.

 E.g. I have FTDI devices, using ftd2xx.dll. Can I expect to get them
 working?

I know nothing about these devices and I did not test them. But I think for 
working with them a driver is also necessary (not only dll).




Support of native Windows drivers for USB tokens

2009-01-20 Thread Alexander Morozov
On Tuesday 07 October 2008 15:02:23 Alexandre Julliard wrote:
 Your design needs a lot more thought. You can't add all these
 Wine-specific modules, or make winedevice special-case usb devices, or
 poll the server for the add_device request like you do. All this needs
 to be properly integrated in the existing infrastructure.

I made big changes in the design since previous version. Now there are no new 
wine-specific modules and wineserver is not used for calling AddDevice. All 
drivers are running in a single winedevice process.

ftp://ftp.etersoft.ru/pub/people/amorozov/0001-Add-support-of-native-Windows-drivers-for-USB-tokens.txt
ftp://ftp.etersoft.ru/pub/people/amorozov/0002-Re-generate-some-files.txt
Second patch was generated with tools/make_requests  autoheader

After applying these patches should run tools/make_makefiles. For using native 
USB driver should copy 
HKLM\System\CurrentControlSet\Enum\USB\Vid_vidPid_pid and 
HKLM\System\CurrentControlSet\Services\driver_name from Windows registry. 
The driver should be put in the directory specified by 
HKLM\System\CurrentControlSet\Services\driver_name\ImagePath. Also you need 
to have permissions to read/write to USB device.




[try2] ntoskrnl.exe: Implement Io{Allocate, Get}DriverObjectExtension.

2008-12-17 Thread Alexander Morozov
Please, use this patch instead of previous ntoskrnl.exe: Implement 
Io{Allocate,Get}DriverObjectExtension.
From b5441d22fe51640849436b563ca3ab6c9a80c1a5 Mon Sep 17 00:00:00 2001
From: Alexander Morozov amoro...@etersoft.ru
Date: Wed, 17 Dec 2008 12:44:46 +0300
Subject: [PATCH] ntoskrnl.exe: Implement Io{Allocate,Get}DriverObjectExtension.

---
 dlls/ntoskrnl.exe/ntoskrnl.c |   53 +++--
 1 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index a669d3b..73054e3 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -63,6 +63,16 @@ struct IrpInstance
 IRP *irp;
 };
 
+static struct list DriverObjExtensions = LIST_INIT(DriverObjExtensions);
+
+struct DriverObjExtension
+{
+struct list entry;
+void *ptr;
+DRIVER_OBJECT *driver;
+void *id_addr;
+};
+
 #ifdef __i386__
 #define DEFINE_FASTCALL1_ENTRYPOINT( name ) \
 __ASM_GLOBAL_FUNC( name, \
@@ -267,9 +277,28 @@ NTSTATUS WINAPI IoAllocateDriverObjectExtension( 
PDRIVER_OBJECT DriverObject,
  ULONG 
DriverObjectExtensionSize,
  PVOID *DriverObjectExtension )
 {
-FIXME( %p, %p, %u, %p\n, DriverObject, ClientIdentificationAddress,
+struct DriverObjExtension *ext;
+
+TRACE( %p, %p, %u, %p\n, DriverObject, ClientIdentificationAddress,
 DriverObjectExtensionSize, DriverObjectExtension );
-return STATUS_NOT_IMPLEMENTED;
+
+*DriverObjectExtension = NULL;
+if (IoGetDriverObjectExtension( DriverObject, ClientIdentificationAddress 
))
+return STATUS_OBJECT_NAME_COLLISION;
+ext = ExAllocatePool( NonPagedPool, sizeof(*ext) );
+if (ext == NULL)
+return STATUS_INSUFFICIENT_RESOURCES;
+ext-ptr = ExAllocatePool( NonPagedPool, DriverObjectExtensionSize );
+if (ext-ptr == NULL)
+{
+ExFreePool( ext );
+return STATUS_INSUFFICIENT_RESOURCES;
+}
+ext-driver = DriverObject;
+ext-id_addr = ClientIdentificationAddress;
+list_add_tail( DriverObjExtensions, ext-entry );
+*DriverObjectExtension = ext-ptr;
+return STATUS_SUCCESS;
 }
 
 
@@ -279,7 +308,16 @@ NTSTATUS WINAPI IoAllocateDriverObjectExtension( 
PDRIVER_OBJECT DriverObject,
 PVOID WINAPI IoGetDriverObjectExtension( PDRIVER_OBJECT DriverObject,
  PVOID ClientIdentificationAddress )
 {
-FIXME( %p, %p\n, DriverObject, ClientIdentificationAddress );
+struct DriverObjExtension *ext;
+
+TRACE( %p, %p\n, DriverObject, ClientIdentificationAddress );
+
+LIST_FOR_EACH_ENTRY( ext, DriverObjExtensions, struct DriverObjExtension, 
entry )
+{
+if (DriverObject == ext-driver 
+ClientIdentificationAddress == ext-id_addr)
+return ext-ptr;
+}
 return NULL;
 }
 
@@ -1138,6 +1176,7 @@ PVOID WINAPI MmGetSystemRoutineAddress(PUNICODE_STRING 
SystemRoutineName)
 BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
 {
 LARGE_INTEGER count;
+struct DriverObjExtension *ext, *ext2;
 
 switch(reason)
 {
@@ -1146,6 +1185,14 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, 
LPVOID reserved )
 RtlAddVectoredExceptionHandler( TRUE, vectored_handler );
 KeQueryTickCount( count );  /* initialize the global KeTickCount */
 break;
+case DLL_PROCESS_DETACH:
+LIST_FOR_EACH_ENTRY_SAFE( ext, ext2, DriverObjExtensions,
+struct DriverObjExtension, entry )
+{
+list_remove( ext-entry );
+ExFreePool( ext-ptr );
+ExFreePool( ext );
+}
 }
 return TRUE;
 }
-- 
1.6.0.2.GIT




Re: hal: add stub for ExAcquireFastMutex

2008-12-09 Thread Alexander Morozov
On Tuesday 09 December 2008 03:52:01 ricardo filipe wrote:
 this is for http://bugs.winehq.org/show_bug.cgi?id=12628

This is fastcall function. It should be defined like KfAcquireSpinLock.




USB device drivers support

2008-12-01 Thread Alexander Morozov
Hello,

I sent patch Add support of WDM drivers for USB devices. in October and 
received such reply from Alexandre Julliard:

 Your design needs a lot more thought. You can't add all these
 Wine-specific modules, or make winedevice special-case usb devices, or
 poll the server for the add_device request like you do. All this needs
 to be properly integrated in the existing infrastructure.

I`d like to ask about better way of modifying patches which add USB device 
drivers support before doing something.

Wineusb and wineusbhub can be moved to usbhub.sys. This driver creates a 
device which is used as second argument for AddDevice on Windows XP. So no 
wine-specific modules will be added.

Using wineserver to call AddDevice can be avoided if move code which loads 
device drivers and code which enumerates devices and call AddDevice to one 
process. This can be made if use one winedevice process for all drivers. This 
will allow every driver to use IRP, DEVICE_OBJECTs and other structures 
created by other driver and will help to implement such functions as 
IoGetDeviceObjectPointer. Can I do so? Or there are some reasons which do not 
allow?

Thanks, Alexander




NT driver address space

2008-11-18 Thread Alexander Morozov
Hi,

Under Wine NT drivers are running in user address space. Some drivers do not 
work correctly because of this. For example Guardant USB token driver crashes 
when loading but this problem can be fixed with such patch (really I tested 
with our wine fork):

diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 78e38dc..f607f22 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -904,6 +904,7 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char 
*base, SIZE_T total_siz

 server_enter_uninterrupted_section( csVirtual, sigset );

+if (0x1 == base) base = 0x8100;
 if (base = (char *)0x11)  /* make sure the DOS area remains free */
 status = map_view( view, base, total_size, mask, FALSE,
VPROT_COMMITTED | VPROT_READ | VPROT_EXEC | 
VPROT_WRITECOPY | VPROT_IMAGE );
diff --git a/libs/wine/mmap.c b/libs/wine/mmap.c
index ff117cc..4c18683 100644
--- a/libs/wine/mmap.c
+++ b/libs/wine/mmap.c
@@ -346,7 +346,7 @@ void mmap_init(void)
 #if defined(__i386__)  !defined(__FreeBSD__) 
 !defined(__FreeBSD_kernel__)  /* commented out until FreeBSD gets fixed */
 char stack;
 char * const stack_ptr = stack;
-char *user_space_limit = (char *)0x7ffe;
+char *user_space_limit = (char *)0xaffe;

 reserve_malloc_space( 8 * 1024 * 1024 );


I see two ways of fixing this.
1. Modify wine to run winedevice.exe in kernel address space ( 0x8000) by 
checking name of executable.
2. Modify ExAllocatePool and some other functions to use kernel address space, 
modify functions which is used by drivers (ntoskrnl.exe exports etc.) to use 
only this memory allocation functions, modify winedevice.exe to load driver 
and create stack in kernel address space.
What is better decision?

Thanks,
Alexander Morozov




Re: [try 2] [6/9] Add usbd.sys.

2008-10-07 Thread Alexander Morozov
 Patchwatcher doesn't know what to do with partial
 resends yet (eventually it will ignore them).
 At the moment I have to delete them manually, else
 patchwatcher gets confused and waits for the rest of the series.
 - Dan

I looked at patchwatcher results. Making patch [5/9] failed because after 
applying this patch should run tools/make_requests. Also should run 
tools/make_makefiles and autoheader (for regenerating include/config.h.in).

I can resend the whole series of patches with second version of [6/9] but this 
is useless before fixing this problem.

Thanks, Alexander




Re: [6/9] Add usbd.sys.

2008-10-06 Thread Alexander Morozov
 2008/10/6 Alexander Morozov [EMAIL PROTECTED]:
  +@ stdcall [EMAIL PROTECTED](ptr ptr)
  USBD_CreateConfigurationRequestEx

 ...

  +@ stdcall [EMAIL PROTECTED](ptr ptr long long
  long long long) USBD_ParseConfigurationDescriptorEx +@ stub
  [EMAIL PROTECTED]

 The stdcall calling convention specifies a decoration of a leading
 underscore and an @ followed by the number of bytes to push onto the
 stack, which is added automatically by winebuild. Is there a reason
 why you are adding this on yourself?

winedump -x usbd.sys
with usbd.sys from Windows XP shows 2 entry points for some functions:
...
  0510 1 USBD_CreateConfigurationRequestEx
...
  0628 2 USBD_ParseConfigurationDescriptorEx
  05F0 3 USBD_ParseDescriptors
...
  051010 [EMAIL PROTECTED]
  062826 [EMAIL PROTECTED]
  05F027 [EMAIL PROTECTED]
...
Entry points with @ are used by SafeNet UltraPro USB token driver.

 Even if there is a good reason, you don't need to quote the @ symbols.

You are right. I will send new version of this patch.




ntoskrnl.exe tests

2008-09-02 Thread Alexander Morozov
Hello,

What should modify in these patches that they can be accepted:

[try 5] [1/4] dlls/Maketest.rules.in: Add support of building various 
resources for cross and usual tests
http://www.winehq.org/pipermail/wine-patches/2008-August/060204.html
[try 5] [2/4] Add tests for ntoskrnl.exe
http://www.winehq.org/pipermail/wine-patches/2008-August/060205.html
[try 5] [3/4] include/ddk/wdm.h: Add IO_TYPE_* defines
http://www.winehq.org/pipermail/wine-patches/2008-August/060203.html
[try 5] [4/4] ntoskrnl.exe/tests: Add tests for IoInitializeIrp and 
IoAllocateIrp
http://www.winehq.org/pipermail/wine-patches/2008-August/060206.html




Re: ntoskrnl tests - where to write them?

2008-07-21 Thread Alexander Morozov
 I have been looking at writing a couple of tests for ntoskrl functions 
 but I have had difficulty locating a suitable place.   It sort of looks 
 like ntdll/tests is the place  but it is not clear.  Is there a guide 
 for locating this one?
 
 Jeff

Now I am working on ntoskrnl tests. I am going to send theirs to wine-patches 
soon.




Re: Support of USB hardware tokens

2008-07-08 Thread Alexander Morozov
 Yes, add conformance tests for the new ntoskrnl functions
 and usbd.sys, and break the patch up a lot...

Conformance tests should consist of a driver and a program to load 
it. I do not know other method to call functions from ntoskrnl.exe and 
usbd.sys on Windows. But I have a problem with building drivers with MinGW. I 
was able to create a driver which is loading on Wine with manual editing of 
PE header but it does not work on Windows and I do not understand what should 
change to fix this. Did somebody build NT drivers with MinGW?




Support of USB hardware tokens

2008-07-07 Thread Alexander Morozov
Hello All,

I created a patch which adds support of USB hardware tokens with native 
Windows drivers (.sys):
ftp://ftp.etersoft.ru/pub/download/amorozov/0001-Support-of-native-Windows-drivers-for-USB-tokens.txt
Now SafeNet UltraPro (driver sntnlusb.sys, vid/pid 04b9:0300) and Eutron 
SmartKey 3 (driver eusk3usb.sys, vid/pid 073d:0025) are supported. These 
devices are used by some Windows applications for piracy defense.

This patch adds dlls/usbd.sys, dlls/wineusbhub and programs/wineusb. Usbd.sys 
is exist also in Windows. This is a kernel level DLL exporting some functions 
required for USB drivers. Wineusbhub plays a role of a lower driver in device 
stack (under USB token driver). Wineusb is a service calling driver`s 
AddDevice routine if there is a registry key corresponding to device and 
device is plugged. Now this check is executed only when wineusb is starting.

USB driver is loaded by programs/winedevice. Now AddDevice and some PNP 
functions are called in addition to DriverEntry. Calling DriverEntry is 
realized by means of wineserver requests. Some required ntoskrnl.exe 
functions are added.

For using native USB driver should copy 
HKLM\System\CurrentControlSet\Enum\USB\Vid_vidPid_pid and 
HKLM\System\CurrentControlSet\Services\driver_name from Windows registry. 
HKLM\System\CurrentControlSet\Services\driver_name\Start should be setted 
to 2.

I`d like to add this patch to Wine. What about this? I think should split my 
patch into many little commits. Should also add some tests or make some 
changes?

Thanks,
Alexander Morozov




Re: Support of USB hardware tokens

2008-07-07 Thread Alexander Morozov
 Split it at least into the sub driver/dll parts.

 You can leave out the configure part, it will be regenerated form
 configure. ac anyway. Same for dlls/Makefile.in

 The ntoskrnl changes might break the already working copy protection
 drivers, so either try them yourself after the patch or ask someone to try
 them. The ntoskrnl changes are also so large that you split them into
 parts, like perhaps:
   - stubs
   - header file changes / additions
   - new implementation functions
   - hook those functions into current framework (if the two steps
 are seperable)

 Ciao, Marcus

Thank you for your answer.

As I understand, working copy protection drivers are listed here:
http://wiki.winehq.org/CopyProtection?highlight=%28copy%29%7C%28protection%29
Can someone test theirs after applying my patch?




wininet: InternetErrorDlg should return ERROR_NOT_SUPPORTED if error is not supported

2008-06-25 Thread Alexander Morozov
Changelog:
InternetErrorDlg should return ERROR_NOT_SUPPORTED if error is not supported
From b89937296efd5a45772027f07b2fdbf80b5f480d Mon Sep 17 00:00:00 2001
From: Alexander Morozov [EMAIL PROTECTED]
Date: Wed, 25 Jun 2008 19:07:34 +0400
Subject: [PATCH] wininet: InternetErrorDlg should return ERROR_NOT_SUPPORTED if 
error is not supported

---
 dlls/wininet/dialogs.c   |2 +-
 dlls/wininet/tests/dialogs.c |1 -
 2 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/dlls/wininet/dialogs.c b/dlls/wininet/dialogs.c
index cf6ee5c..1ea9b9c 100644
--- a/dlls/wininet/dialogs.c
+++ b/dlls/wininet/dialogs.c
@@ -385,5 +385,5 @@ DWORD WINAPI InternetErrorDlg(HWND hWnd, HINTERNET hRequest,
 FIXME(Need to display dialog for error %d\n, dwError);
 return ERROR_SUCCESS;
 }
-return ERROR_INVALID_PARAMETER;
+return ERROR_NOT_SUPPORTED;
 }
diff --git a/dlls/wininet/tests/dialogs.c b/dlls/wininet/tests/dialogs.c
index 088ba01..168053f 100644
--- a/dlls/wininet/tests/dialogs.c
+++ b/dlls/wininet/tests/dialogs.c
@@ -66,7 +66,6 @@ static void test_InternetErrorDlg(void)
 
 ret = InternetErrorDlg(GetDesktopWindow(), hr,
 ERROR_FILE_NOT_FOUND, 0, NULL);
-todo_wine
 ok(ret == ERROR_NOT_SUPPORTED, InternetErrorDlg failed\n);
 
 end_thread = 0;
-- 
1.5.4.5.GIT




wininet/tests: add InternetErrorDlg tests

2008-06-25 Thread Alexander Morozov
Changelog:
Add InternetErrorDlg tests

I ran these tests on Win98 and WinXP
From 687f7d365b97d1da95db222e5bd5bbdf5c62c76f Mon Sep 17 00:00:00 2001
From: Alexander Morozov [EMAIL PROTECTED]
Date: Wed, 25 Jun 2008 19:01:42 +0400
Subject: [PATCH] wininet/tests: add InternetErrorDlg tests

---
 dlls/wininet/tests/Makefile.in |3 +-
 dlls/wininet/tests/dialogs.c   |  194 
 2 files changed, 196 insertions(+), 1 deletions(-)
 create mode 100644 dlls/wininet/tests/dialogs.c

diff --git a/dlls/wininet/tests/Makefile.in b/dlls/wininet/tests/Makefile.in
index ba8f662..92d875b 100644
--- a/dlls/wininet/tests/Makefile.in
+++ b/dlls/wininet/tests/Makefile.in
@@ -3,9 +3,10 @@ TOPOBJDIR = ../../..
 SRCDIR= @srcdir@
 VPATH = @srcdir@
 TESTDLL   = wininet.dll
-IMPORTS   = wininet ws2_32 kernel32
+IMPORTS   = wininet ws2_32 kernel32 user32
 
 CTESTS = \
+   dialogs.c \
ftp.c \
generated.c \
http.c \
diff --git a/dlls/wininet/tests/dialogs.c b/dlls/wininet/tests/dialogs.c
new file mode 100644
index 000..c2f3878
--- /dev/null
+++ b/dlls/wininet/tests/dialogs.c
@@ -0,0 +1,194 @@
+/*
+ * Wininet - dialog tests
+ *
+ * Copyright 2008 Alexander Morozov for Etersoft
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include windows.h
+#include wininet.h
+
+#include wine/test.h
+
+static LONG end_thread;
+
+static BOOL CALLBACK enum_wnd_proc(HWND hwnd, LPARAM lparam)
+{
+SendMessageA(hwnd, WM_CLOSE, 0, 0);
+InterlockedIncrement(end_thread);
+return TRUE;
+}
+
+static DWORD CALLBACK killer_thread(LPVOID param)
+{
+/* Without Sleep(50) a window failed to close sometimes */
+Sleep(50);
+while (!end_thread)
+EnumThreadWindows((DWORD)param, enum_wnd_proc, 0);
+return 0;
+}
+
+static void test_InternetErrorDlg(void)
+{
+HANDLE hThread;
+HINTERNET hi, hc, hr;
+DWORD ret, id;
+
+hi = InternetOpenA(winetest, 0, NULL, NULL, 0);
+ok(hi != NULL, InternetOpen failed\n);
+hc = InternetConnectA(hi, localhost, INTERNET_DEFAULT_HTTP_PORT,
+NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
+ok(hc != NULL, InternetConnect failed\n);
+hr = HttpOpenRequestA(hc, GET, /, NULL, NULL, NULL, 0, 0);
+ok(hr != NULL, HttpOpenRequest failed\n);
+
+ret = InternetErrorDlg(NULL, NULL, ERROR_SUCCESS, 0, NULL);
+todo_wine
+ok(ret == ERROR_INVALID_HANDLE, InternetErrorDlg failed\n);
+
+ret = InternetErrorDlg(GetDesktopWindow(), hr,
+ERROR_SUCCESS, 0, NULL);
+todo_wine
+ok(ret == ERROR_NOT_SUPPORTED, InternetErrorDlg failed\n);
+
+ret = InternetErrorDlg(GetDesktopWindow(), hr,
+ERROR_FILE_NOT_FOUND, 0, NULL);
+todo_wine
+ok(ret == ERROR_NOT_SUPPORTED, InternetErrorDlg failed\n);
+
+end_thread = 0;
+hThread = CreateThread(NULL, 0, killer_thread,
+(LPVOID)GetCurrentThreadId(), 0, id);
+ok(hThread != NULL, create thread failed\n);
+if (NULL != hThread)
+{
+ret = InternetErrorDlg(GetDesktopWindow(), hr,
+ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR, 0, NULL);
+ok(ret == ERROR_CANCELLED || ret == ERROR_SUCCESS,
+InternetErrorDlg failed\n);
+InterlockedIncrement(end_thread);
+ret = WaitForSingleObject(hThread, 3000);
+ok(ret == WAIT_OBJECT_0, thread wait failed\n);
+CloseHandle(hThread);
+}
+
+end_thread = 0;
+hThread = CreateThread(NULL, 0, killer_thread,
+(LPVOID)GetCurrentThreadId(), 0, id);
+ok(hThread != NULL, create thread failed\n);
+if (NULL != hThread)
+{
+ret = InternetErrorDlg(GetDesktopWindow(), hr,
+ERROR_INTERNET_POST_IS_NON_SECURE, 0, NULL);
+ok(ret == ERROR_CANCELLED || ret == ERROR_SUCCESS,
+InternetErrorDlg failed\n);
+InterlockedIncrement(end_thread);
+ret = WaitForSingleObject(hThread, 3000);
+ok(ret == WAIT_OBJECT_0, thread wait failed\n);
+CloseHandle(hThread);
+}
+
+end_thread = 0;
+hThread = CreateThread(NULL, 0, killer_thread,
+(LPVOID)GetCurrentThreadId(), 0, id);
+ok(hThread != NULL, create thread failed\n);
+if (NULL != hThread)
+{
+ret = InternetErrorDlg(GetDesktopWindow

wininet: fix crash

2008-06-25 Thread Alexander Morozov
Changelog:
fix InternetErrorDlg crash
From 6ab5655ebe26611387c2586b06fad78c16de7239 Mon Sep 17 00:00:00 2001
From: Alexander Morozov [EMAIL PROTECTED]
Date: Wed, 25 Jun 2008 19:05:40 +0400
Subject: [PATCH] wininet: fix crash

---
 dlls/wininet/dialogs.c   |3 +++
 dlls/wininet/tests/dialogs.c |3 +--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/wininet/dialogs.c b/dlls/wininet/dialogs.c
index dd5aa31..cf6ee5c 100644
--- a/dlls/wininet/dialogs.c
+++ b/dlls/wininet/dialogs.c
@@ -75,6 +75,9 @@ static BOOL WININET_GetProxyServer( HINTERNET hRequest, 
LPWSTR szBuf, DWORD sz )
 if (NULL == hIC)
return FALSE;
 
+if (NULL == hIC-lpszProxy)
+   return FALSE;
+
 lstrcpynW(szBuf, hIC-lpszProxy, sz);
 
 /* FIXME: perhaps it would be better to use InternetCrackUrl here */
diff --git a/dlls/wininet/tests/dialogs.c b/dlls/wininet/tests/dialogs.c
index c2f3878..088ba01 100644
--- a/dlls/wininet/tests/dialogs.c
+++ b/dlls/wininet/tests/dialogs.c
@@ -166,7 +166,6 @@ static void test_InternetErrorDlg(void)
 CloseHandle(hThread);
 }
 
-/* This crashes
 end_thread = 0;
 hThread = CreateThread(NULL, 0, killer_thread,
 (LPVOID)GetCurrentThreadId(), 0, id);
@@ -181,7 +180,7 @@ static void test_InternetErrorDlg(void)
 ret = WaitForSingleObject(hThread, 3000);
 ok(ret == WAIT_OBJECT_0, thread wait failed\n);
 CloseHandle(hThread);
-} */
+}
 
 InternetCloseHandle(hr);
 InternetCloseHandle(hc);
-- 
1.5.4.5.GIT




Re: unknown device issues after running winetest

2008-05-23 Thread Alexander Morozov
 Can someone confirm that after running the devinst tests, the registry on
 Wine still shows these:

 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\ROOT\LEGACY_BOGUS (and
 stuff below)

 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USB\BOGUS (and stuff
 below)

 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceClasses\{6A55B5A4
-3F65-11DB-B704-0011955C2BDB} (and stuff below)

I can confirm this. Diff file with changes after running make devinst.ok is 
attached.

--- system_1.reg	2008-05-23 11:30:23 +0400
+++ system.reg	2008-05-23 11:30:50 +0400
@@ -8476,7 +8476,7 @@ WINE REGISTRY Version 2
 Common Templates=str(2):%ALLUSERSPROFILE%\\\x428\x430\x431\x43b\x43e\x43d\x44b
 Favorites=str(2):%ALLUSERSPROFILE%\\\x418\x437\x431\x440\x430\x43d\x43d\x43e\x435
 
-[Software\\Microsoft\\Windows\\CurrentVersion\\Fonts] 1211527787
+[Software\\Microsoft\\Windows\\CurrentVersion\\Fonts] 1211527847
 Andale Mono (TrueType)=Z:\\usr\\share\\fonts\\ttf\\ms\\andalemo.ttf
 Arial (TrueType)=Z:\\usr\\share\\fonts\\ttf\\ms\\arial.ttf
 Arial Black (TrueType)=Z:\\usr\\share\\fonts\\ttf\\ms\\ariblk.ttf
@@ -10485,7 +10485,7 @@ WINE REGISTRY Version 2
 Auto=1
 Debugger=winedbg --auto %ld %ld
 
-[Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts] 1211527787
+[Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts] 1211527847
 @=
 Andale Mono (TrueType)=Z:\\usr\\share\\fonts\\ttf\\ms\\andalemo.ttf
 Arial (TrueType)=Z:\\usr\\share\\fonts\\ttf\\ms\\arial.ttf
@@ -11257,6 +11257,21 @@ WINE REGISTRY Version 2
 StemmerClass=
 WBreakerClass={369647e0-17b0-11ce-9950-00aa004bbb1f}
 
+[System\\CurrentControlSet\\Control\\DeviceClasses\\{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\##?#ROOT#LEGACY_BOGUS##{6A55B5A4-3F65-11DB-B704-0011955C2BDB}] 1211527847
+DeviceInstance=ROOT\\LEGACY_BOGUS\\
+
+[System\\CurrentControlSet\\Control\\DeviceClasses\\{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\##?#ROOT#LEGACY_BOGUS##{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\#] 1211527847
+SymbolicLink=?\\ROOT#LEGACY_BOGUS##{6A55B5A4-3F65-11DB-B704-0011955C2BDB}
+
+[System\\CurrentControlSet\\Control\\DeviceClasses\\{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\##?#ROOT#LEGACY_BOGUS##{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\#Oogah] 1211527847
+SymbolicLink=?\\ROOT#LEGACY_BOGUS##{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\Oogah
+
+[System\\CurrentControlSet\\Control\\DeviceClasses\\{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\##?#ROOT#LEGACY_BOGUS#0001#{6A55B5A4-3F65-11DB-B704-0011955C2BDB}] 1211527847
+DeviceInstance=ROOT\\LEGACY_BOGUS\\0001
+
+[System\\CurrentControlSet\\Control\\DeviceClasses\\{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\##?#ROOT#LEGACY_BOGUS#0001#{6A55B5A4-3F65-11DB-B704-0011955C2BDB}\\#] 1211527847
+SymbolicLink=?\\ROOT#LEGACY_BOGUS#0001#{6A55B5A4-3F65-11DB-B704-0011955C2BDB}
+
 [System\\CurrentControlSet\\Control\\Nls\\Codepage] 1211527787
 37=
 ACP=1252
@@ -11664,6 +11679,15 @@ WINE REGISTRY Version 2
 [System\\CurrentControlSet\\Control\\Windows] 1211527787
 CSDVersion=dword:0400
 
+[System\\CurrentControlSet\\Enum\\ROOT\\LEGACY_BOGUS\\] 1211527847
+ClassGUID={6A55B5A4-3F65-11DB-B704-0011955C2BDB}
+
+[System\\CurrentControlSet\\Enum\\ROOT\\LEGACY_BOGUS\\0001] 1211527847
+ClassGUID={6A55B5A4-3F65-11DB-B704-0011955C2BDB}
+
+[System\\CurrentControlSet\\Enum\\USB\\BOGUS\\] 1211527847
+ClassGUID={6A55B5A4-3F65-11DB-B704-0011955C2BDB}
+
 [System\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts] 1211527787
 FIXEDFON.FON=vgafixr.fon
 FONTS.FON=vgasysr.fon
--- user_1.reg	2008-05-23 11:30:28 +0400
+++ user.reg	2008-05-23 11:30:50 +0400
@@ -360,10 +360,10 @@ WINE REGISTRY Version 2
 RelayExclude=ntdll.RtlEnterCriticalSection;ntdll.RtlLeaveCriticalSection;kernel32.94;kernel32.95;kernel32.96;kernel32.97;kernel32.98
 RelayFromExclude=winex11.drv;user32;gdi32;advapi32;kernel32
 
-[Software\\Wine\\Fonts] 1211527787
+[Software\\Wine\\Fonts] 1211527847
 Codepages=1251,866
 
-[Software\\Wine\\Fonts\\External Fonts] 1211527787
+[Software\\Wine\\Fonts\\External Fonts] 1211527847
 Andale Mono (TrueType)=Z:\\usr\\share\\fonts\\ttf\\ms\\andalemo.ttf
 Arial (TrueType)=Z:\\usr\\share\\fonts\\ttf\\ms\\arial.ttf
 Arial Black (TrueType)=Z:\\usr\\share\\fonts\\ttf\\ms\\ariblk.ttf



Re: unknown device issues after running winetest

2008-05-23 Thread Alexander Morozov
 I just had a check for the testRegisterAndGetDetail test on Vista (dunno
 about the other tests and platforms yet).

 I added the SetupDiRemoveDevice (as was suggested by Alexander) at the end
 of this test.

 On a clean registry this works out fine (one DeviceClasses key is left but
 that one can be deleted without having to fiddle with permissions).

 When I however first run the old tests (with leftovers in the registry) and
 then run the new test again the registry keys are still present.
 When I do the SetupDiRemoveDevice twice at the end of
 testRegisterAndGetDetail the registry keys get deleted again (not that
 DeviceClasses key again).

 So what would be a good approach? Just doing 2 SetupDiRemoveDevice's at the
 end to make sure old stuff is gone as well?
 Or doing one, check if the Enum keys is still present and then do a second
 SetupDiRemoveDevice (with a trace message for clarity)?

I think the second way is better.
May be a number of Enum keys is equal a quantity of doing old test?




Re: unknown device issues after running winetest

2008-05-22 Thread Alexander Morozov
В сообщении от Tuesday 20 May 2008 17:31:48 Paul Vriens написал(а):
 Hi,

 On several windows boxes (VMware) I receive this nice message that Windows
 will try to find a driver for an unknown device.

 This device is added by the setupapi/devinst test and is not (or can't be?)
 properly removed after the tests.

 On NT/W2K I'm able to delete all the relevant registry keys (regedt32.exe)
 but on Vista I don't seem to be able to delete them

 Any idea? Do others have the same issue(s) ?

Hi,

I added testRegisterAndGetDetail and testDeviceRegistryPropertyA/W. I am sorry 
for creating discussed problem. I tried to use SetupDiRemoveDeviceInterface, 
SetupDiRemoveDevice and SetupDiDeleteDevRegKey but this is not fixing this 
bug. SetupDiRemoveDevice and SetupDiDeleteDevRegKey do not delete 
Enum/ROOT/LEGACY_BOGUS key (on WinXP at least). Now I do not know the right 
way to delete created keys. May be should use something like Paul Vriens`s 
change_reg_permissions.




Re: unknown device issues after running winetest

2008-05-22 Thread Alexander Morozov
I was mistaken. Enum/ROOT/LEGACY_BOGUS key can be deleted so:

SetLastError(0xdeadbeef);
set = pSetupDiGetClassDevsA(guid, NULL, 0, 0);
ok(set != INVALID_HANDLE_VALUE, SetupDiGetClassDevsA failed: %08x\n, 
GetLastError());
SetLastError(0xdeadbeef);
ret = pSetupDiEnumDeviceInfo(set, 0, devInfo);
ok(ret, SetupDiEnumDeviceInfo failed: %08x\n, GetLastError());
if (pSetupDiRemoveDevice)
{
SetLastError(0xdeadbeef);
ret = pSetupDiRemoveDevice(set, devInfo);
todo_wine
ok(ret, SetupDiRemoveDevice failed: %08x\n, GetLastError());
}
else
skip(SetupDiRemoveDevice is not available\n);
pSetupDiDestroyDeviceInfoList(set);




Re: ntoskrnl.exe: Change calling conventions [try 2]

2008-04-25 Thread Alexander Morozov
 Why didn't you fix InterlockedExchangeAdd too?

Yes, this function also should be fixed. I will send new patch. Sorry. I got 
confused because this function worked:

#include wdm.h

#pragma code_seg(INIT)
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath)
{
LONG a = 0xaa, b = 0xbb, *ptr = b, ret = 0xcc;

ret = InterlockedExchangeAdd(ptr, a);
DbgPrint(*ptr %x, ret %x\n, *ptr, ret);

return STATUS_SUCCESS;
}
#pragma code_seg()

...
   10628:   c7 45 fc aa 00 00 00movl   $0xaa,0xfffc(%ebp)
   1062f:   c7 45 f4 bb 00 00 00movl   $0xbb,0xfff4(%ebp)
   10636:   8d 45 f4lea0xfff4(%ebp),%eax
   10639:   89 45 f8mov%eax,0xfff8(%ebp)
   1063c:   c7 45 f0 cc 00 00 00movl   $0xcc,0xfff0(%ebp)
   10643:   8b 55 fcmov0xfffc(%ebp),%edx
   10646:   8b 4d f8mov0xfff8(%ebp),%ecx
   10649:   e8 42 fe ff ff  call   0x10490
...




Re: [1/2] Added a test: registering device interface and getting devicepath

2008-03-27 Thread Alexander Morozov
В сообщении от Thursday 27 March 2008 16:24:52 Dmitry Timoshkov написал(а):
 Alexander Morozov [EMAIL PROTECTED] wrote:
  Changelog:
  Added a test for setupapi: registering device interface and getting
  device path

 Please consistently print GetLastError() values as %u (not %08x or %d),
 otherwise the test looks good to me.

Edit every test in tests/devinst.c or only testRegisterAndGetDetail?