UPDD USB considerations
UPDD is a general purpose touch driver that works with 100’s of
controllers (current and old legacy hardware) in a number of operating
systems. It also works with multiple touch
devices and catering for all these combinations brings certain challenges. It is also utilised on systems where there
may be competing drivers that are registered to handle the device.
USB devices also bring issues in that there are HID and non-HID devices
and the driver has to cater for, and integrate with, PnP management. To further complicate matters our driver can
be delivered in Windows as a signed or non-signed driver. Given the above it is important to understand
how drivers are associated with USB devices.
Basics for Windows
When a USB device is plugged into Windows the PnP manager is passed the
USB device descriptor and using this information the PnP manager passes the
device to the current registered driver or seeks to locate a matching driver
and registers the device with the driver if one is found. If more than one driver is found it will
favour signed drivers over non-signed drivers and select the most suitable
driver.
If a driver is not currently registered with the device the hardware
wizard is run to help the user locate the appropriate driver from the internet,
locally on the system or via external media, such a CD. It does this by processing appropriate INF
files that match the device identifiers of the plugged in device and builds up
a list of drivers from which to select.
This is sometimes referred to as an INF install.
However, with UPDD we pre install the software components prior to
device use, including the INF file and associated files (.INF, .CAT, .PNF)
which are placed in the [Windows]\INF folder and replicated in c:\program
files\updd.
When the software is installed the UPDD device handler function (built
into the user mode element of the driver) will search for any USB supported
devices and, if found, will automatically register them in the UPDD Console
program and link to the device.
Thereafter, on reboot or unplug/replug, UPDD will handle the device.
However, if devices are not plugged in at the time of UPDD installation
then the PnP manager will be invoked at the time the device is plugged in for
the first time (Hot plugged) to handle driver selection. At the same time UPDD
will process the Windows 'Device change message' and will take certain actions
depending on system driver selection:
HID devices
OS action
If a previous device driver was installed and handling the device this
will be selected. Manual intervention
will be required to switch to UPDD.
or…
The operating systems HID driver will be selected. No action is needed
to switch to UPDD as this is performed automatically.
UPDD action
UPDD will take control back from HID and register the device in such a
manner that subsequent hot plugs will select UPDD. It will not take control
from any other driver.
Non HID devices
If a previous OEM device driver was installed and handling the device
this will be selected. Manual
intervention will be required to switch to UPDD.
or
The UPDD will be selected.
or
In some cases, especially after a UPDD reinstall (over an existing UPDD
install), the Windows hardware wizard will run to select the driver. Use the
wizard to select UPDD and complete installation (locate the UPDD driver). If
you cancel the wizard you will get a Warning that the device may not be working
and the driver may not be correctly registered to handle the device resulting
in an unknown USB device or a named device appearing in the Windows device
manager showing a yellow exclamation mark.
In this case unplug and replug the device and complete the wizard or manually update the USB device entry
to associate the device with UPDD.
Signed driver note
UPDD INF and associated files are written to [windows]\INF and are also
placed c:\program files\updd. If using
the hardware wizard to install UPDD and the driver is known to be a signed
driver it is important to point the Wizard to the files in c:\program
files\updd and NOT [windows]\INF. Using the files in [windows]\INF the wizard
ignores the digital signature file and installs the driver as unsigned.