Hi Ivan,
As the *biased* author of libwdi, which provides about the same feature
as what you're proposing here, I guess I'm going to chime in too.
Post by Ivan ShcherbakovOne advantage would be the support for FT2232 drivers (e.g. Olimex devices
require them), however that's rather useful to OpenOCD users. It is also
very easily customizable - users can add their own driver templates by
placing macros like $$HARDWARE_ID$$ inside the INF files.
libwdi can be used to package and install the proprietary FTDI drivers.
As a matter of fact, the libwdi signed driver walkthrough [1] uses the
FTDI drivers for OpenOCD as an example of how one can add a whole bunch
of drivers and create an application that allows users to select and
install one of them.
For more on embedding custom drivers in libwdi, see [2].
So, as much as I hate to say that, it looks to me like you've been
reinventing the wheel, and you could probably have spared some time if
you just reused libwdi to package the drivers you wanted into a library
and simply added your UI on top of it.
Post by Ivan ShcherbakovI would say, both tools are worth being mentioning in the wiki, as many
people who google for "libusb driver Windows" don't know about either of
them and end up editing the INF files manually...
Well, I'd tend to agree that your tool looks nice (nicer than Zadig as
far as I'm concerned), and, despite the fact that it is closed source
(please avoid that, especially if you're trying to find sympathy on a
mailing list for an Open Source library) I don't really see an issue
having it mentioned on the page and leaving users to choose... as long
as the Windows 8 problem detailed below is clearly highlighted.
Then again, users reading the libusb wiki should also be aware that they
don't have to edit an inf, unless they really want to, as Zadig is
featured as the simpler & preferred method of installing a libusb
compatible driver.
Now, with regards to Windows 8, you might want to be mindful of the
following:
1. You tool relies on .NET, however the version it requires is one that
doesn't come installed by default on Windows 8, so Windows 8 users have
to go through an update first. Of course, this is more of a
Microsoft/.NET issue than anything else.
2. Much more problematic: Unlike previous versions (which allowed this,
albeit with a scary warning) Windows 8 does not let users install any
unsigned driver packages. But your tool does not sign the WinUSB driver
packages it installs.
Thus, Windows 8 users cannot use your application to install WinUSB
drivers. If they try, they will get error 0xE000022F, i.e. "Driver
package failed signature validation".
Libwdi on the other hand (and by extension Zadig) does sign the WinUSB
driver packages it installs on the fly, which avoids both the Windows 8
issue and the scary Vista/Windows 7 installation prompts.
Regards,
/Pete
[1] https://github.com/pbatard/libwdi/wiki/Signed-Driver-Walkthrough
[2]
https://github.com/pbatard/libwdi/wiki/Signed-Driver-Walkthrough#wiki-Embedding_the_signed_files_in_libwdi