puavo-org/puavo-os

LabQuest Mini does not work with Wined LoggerPro

Opened this issue · 0 comments

The problem seems to boil down to the following warning:

warn:plugplay:load_function_driver No driver registered for device 00F60158.

The warning is issued when the device is about to get "started":

/* Load the function driver for a newly created PDO, if one is present, and
 * send IRPs to start the device. */
static void start_device( DEVICE_OBJECT *device, HDEVINFO set, SP_DEVINFO_DATA *sp_device )
{
	load_function_driver( device, set, sp_device );
	if (device->DriverObject)
    	send_pnp_irp( device, IRP_MN_START_DEVICE );
}

So the root cause is that the device specific driver, which is brought in by the LoggerPro installer, does not get installed and used correctly.

When looking at code paths, it becomes apparent that there are more the one underlying cause for this:

  1. Wine's INF-reader does not handle %strtoken% keys correctly (Fixed by setupapi: use INF parser to read class GUID and class name)
  2. After fixing registry entries manually, loading the driver advanced a bit, the device registry entry seemed get created correctly but the driver still did not get loaded
  3. Service property does not get created for the device registry entry. It's value should be wineusb. So, the device requires wineusb Service, because it is USB device; load_function_driver() requries SPDRP_SERVICE property, otherwise it fails.
  4. The driver did not get loaded correctly, even after fixing the registry manually and added the missing Service property.

In Wine, the driver registry looks like this:

kuva

In Windows, the driver looks like this:

kuva

The device numeration looks like this:

kuva

The first MR got merged to master: setupapi: use INF parser to read class GUID and class name