Quantcast

how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

joey-44
Greetings,

I have "gitted" the libwdi and compiled it using MinGW. I've tested it
on a virtual box running windows xp sp3 and it seems to work quite well.
When I insert a second device of the same type (different serial number,
same VID, PID, interface number) the device did not attach to
libusb/winusb.

When I run zadic.exe on the second device it installed the drivers
properly. For most of my users installing the driver for each hardware
instance will not be a problem, but some of my users have dozens of
devices that must be inserted into the same machine and reinstall for
each instance would be a considerable inconvenience.

Is there any way to install the libusb/winusb driver in a way that
allows all devices to be recognized?

By the way, in installer.c, main()  I commented out  
"update_driver(device_id)", see below,  to see if the device_id had any
affect. This change did not seem to effect anything.
...
     if (b == true) {
         // Success
         plog("driver update completed");
         // TODO: remove this?
         plog("joey does not update drivers");
         //update_driver(device_id);
         ret = WDI_SUCCESS;
         goto out;
     }
...
Thanks in advance for any insight you can provide.

------------------------------------------------------------------------------

_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

joey-44
On 6/2/2010 10:30 AM, joey wrote:
Greetings,

I have "gitted" the libwdi and compiled it using MinGW. I've tested it 
on a virtual box running windows xp sp3 and it seems to work quite well. 
When I insert a second device of the same type (different serial number, 
same VID, PID, interface number) the device did not attach to 
libusb/winusb.

When I run zadic.exe on the second device it installed the drivers 
properly. For most of my users installing the driver for each hardware 
instance will not be a problem, but some of my users have dozens of 
devices that must be inserted into the same machine and reinstall for 
each instance would be a considerable inconvenience.

Is there any way to install the libusb/winusb driver in a way that 
allows all devices to be recognized?
  
 I've found the answer to my question in Jan Axelson's USB Complete 3rd Edition on page 276. Since our device is a HID which is a supported class, windows will always match the compatible ID (which contains the class of the device) with the class of windows generic HID drivers rather than libusb/winusb. This is because windows HID driver is digitally signed where as the .inf zadic.exe uses is digitally unsigned. Even though zadic's inf contains information to match itself with our device, windows will search for any match that exists in its digitally signed .inf files before attempting to associate unsigned .inf files to a device.

To get a Microsoft digital signature it seems that you must pass a WHQL test. What does it take to get a WHQL certification??

I will be thankful for any insight that can be provided by someone who knows anything about obtaining digital signatures from Microsoft.

Joseph,
 
------------------------------------------------------------------------------

_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel

  


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Pete Batard
Hi Joseph,

Apologies for missing your first post (and thanks for testing libwdi). I
must admit that I hadn't considered that installation of driver for all
devices of the same type would be an issue.

On 2010.06.04 15:28, joey wrote:
>> When I insert a second device of the same type (different serial number,
>> same VID, PID, interface number) the device did not attach to
>> libusb/winusb.

Interesting result. I checked what happened with a couple of Logitech
USB mice, and found that plugging one or the other in the same USB port
would keep the same driver (but these mice don't report a serial number
in their USB strings, and I believe if that wasn't the case, I would
have observed different results), while plugging any of these mice onto
a different port, after the WinUSB driver has been installed, would
still install the HidUSB driver.
Other devices, like an iPod where the default USBSTOR driver was
replaced with WinUSB will on the other hand use WinUSB regardless of the
slot.

>> For most of my users installing the driver for each hardware
>> instance will not be a problem, but some of my users have dozens of
>> devices that must be inserted into the same machine and reinstall for
>> each instance would be a considerable inconvenience.

Yes, I agree with that. I had not really considered that scenario.

>> Is there any way to install the libusb/winusb driver in a way that
>> allows all devices to be recognized?
>>
> I've found the answer to my question in Jan Axelson's _USB Complete 3rd
> Edition_ on page 276. Since our device is a HID which is a supported
> class, windows will always match the compatible ID (which contains the
> class of the device) with the class of windows generic HID drivers
> rather than libusb/winusb. This is because windows HID driver is
> digitally signed where as the .inf zadic.exe uses is digitally unsigned.
> Even though zadic's inf contains information to match itself with our
> device, windows will search for any match that exists in its digitally
> signed .inf files before attempting to associate unsigned .inf files to
> a device.

That seems to be matching the results I am observing with my mice, and
I'm quite glad you found that information.
This only seems to apply to HID devices however, as the USBSTOR driver,
which is digitally signed by Microsoft, does not overwrite other drivers.

> To get a Microsoft digital signature it seems that you must pass a WHQL
> test.

Yes, to sign the inf, you have no choice but to go through the WHQL process.
Just a reminder that this is different from digitally signing the driver
itself, which can be done without Microsoft's intervention, with a code
signing certificate.

> What does it take to get a WHQL certification??

I think you probably want to read the WHQL related information from the
Windows Logo Program System and Device Requirements, Version 2.2.1a from
http://www.microsoft.com/whdc/winlogo/hwrequirements/v22.mspx

The document seems to list
http://www.microsoft.com/whdc/winlogo/getstart/testing.mspx as the
starting point.

Otherwise, I believe Orin went through the WHQL process, so he might be
able to give some pointers.

Regards,

/Pete

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Peter Stuge
Pete Batard wrote:
> Other devices, like an iPod where the default USBSTOR driver was
> replaced with WinUSB will on the other hand use WinUSB regardless
> of the slot.

iPod has a serial number set right? Then I would expect Windows to
remember which driver to use for that device. But what if another
iPod was plugged in?


//Peter

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Pete Batard
On 2010.06.04 16:51, Peter Stuge wrote:
> iPod has a serial number set right? Then I would expect Windows to
> remember which driver to use for that device. But what if another
> iPod was plugged in?

That's something I'd like to figure out as well. I'm trying to get my
hands on two USB Mass Storage devices with the same VID/PID (and a valid
serial) to test that.

Or, if someone has two such devices, they can just use zadig to install
the WinUSB driver against one, and see what happens when they plug in
the other.

Regards,

/Pete


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Orin Eman
In reply to this post by Pete Batard
On Fri, Jun 4, 2010 at 8:21 AM, Pete Batard <[hidden email]> wrote:


> What does it take to get a WHQL certification??

I think you probably want to read the WHQL related information from the
Windows Logo Program System and Device Requirements, Version 2.2.1a from
http://www.microsoft.com/whdc/winlogo/hwrequirements/v22.mspx

The document seems to list
http://www.microsoft.com/whdc/winlogo/getstart/testing.mspx as the
starting point.

Otherwise, I believe Orin went through the WHQL process, so he might be
able to give some pointers.


I'd say start by reading the docs and then ask again...  last year you needed a 2003 Server to host the tests.  What the latest set of tests require, I don't know, but I'd guess they still require a server OS - expensive if you don't have one already.

The device must comply with the USB specs or it won't pass.  I couldn't get our 1.1 device through the tests as it claimed it supported remote wakeup.  The tests failed as I couldn't get the device to send the wakeup.

Some form of certificate is required to sign WHQL requests.  Whether the special certificate that they were selling 'cheaply' is all you need, or whether you need a code-signing certificate now, I don't know.  You certainly need a code-signing certificate for drivers that load at boot time.

Orin.


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Tim Roberts
In reply to this post by Pete Batard
Pete Batard wrote:
> On 2010.06.04 16:51, Peter Stuge wrote:
>  
>> iPod has a serial number set right? Then I would expect Windows to
>> remember which driver to use for that device. But what if another
>> iPod was plugged in?
>>    

It is a new install -- a new "devnode", in Windows terms.  Windows will
go back to the INF file and use the driver specified therein.  If you
had done registry magic on some other device, you'd have to redo it for
the new device

This is one common use for a "class filter" driver.  Class filters get
loaded with all devices of a particular class, regardless of hardware
ID.  The class filter can then install a device filter if needed.

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Tim Roberts
In reply to this post by joey-44
joey wrote:

>>  
>  I've found the answer to my question in Jan Axelson's _USB Complete
> 3rd Edition_ on page 276. Since our device is a HID which is a
> supported class, windows will always match the compatible ID (which
> contains the class of the device) with the class of windows generic
> HID drivers rather than libusb/winusb. This is because windows HID
> driver is digitally signed where as the .inf zadic.exe uses is
> digitally unsigned. Even though zadic's inf contains information to
> match itself with our device, windows will search for any match that
> exists in its digitally signed .inf files before attempting to
> associate unsigned .inf files to a device.
>
> To get a Microsoft digital signature it seems that you must pass a
> WHQL test. What does it take to get a WHQL certification??

Time and money.

You need to fetch the Windows Logo Kit, then install and run the Driver
Test Manager.  This is not a trivial exercise.  It requires two
machines, one of which (the controller) much be running Windows Server
2003 or 2008.  You put your driver and your device on the other machine,
and DTM runs an extensive set of automated tests for whatever class your
device is in.

Note that you must have both 32-bit and 64-bit drivers, and that means
you'll have to sign the 64-bit driver with an "approved" class 3
code-signing certificate.

Assuming you pass all the tests, DTM will help you create a submission
package, including all of the passing test logs.  Now, you create a
Winqual account.  To do that, you must have a Verisign certificate (no
other brand will do), although not necessarily a code-signing
certificate.  You then submit your submission package to Winqual.  A few
days later, you'll get your driver package back with the WHQL
signature.  You'll also have the right to use the "Designed for Windows
7" logo on your marketing material.

It costs $250 per operating system "family".  32 and 64-bit variants are
all part of one "family".  XP comes for free if you submit for Win 7 and
ask for it.

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Xiaofan Chen
In reply to this post by joey-44
On Wed, Jun 2, 2010 at 11:30 PM, joey <[hidden email]> wrote:
> I have "gitted" the libwdi and compiled it using MinGW. I've tested it
> on a virtual box running windows xp sp3 and it seems to work quite well.
> When I insert a second device of the same type (different serial number,
> same VID, PID, interface number) the device did not attach to
> libusb/winusb.


I can confirm this under a real Windows Vista 32bit box.

I added serial number 1234 and switched the Jan Axelson's Generic HID
Firmware to use WinUSB instead of HID driver.

libwdi:debug [wdi_create_list] got hardware ID: USB\VID_0925&PID_7001&REV_0001
libwdi:debug [wdi_create_list] WinUSB USB device (6): USB\VID_0925&PID_7001\1234
libwdi:debug [wdi_create_list] Device description: 'USB Human Interface Device'

I changed the serial number to 5678, downloaded the firmware and then
reset the device,
it comes back to use HID driver instead of WinUSB.
libwdi:debug [wdi_create_list] got hardware ID: USB\VID_0925&PID_7001&REV_0001
libwdi:debug [wdi_create_list] HidUsb USB device (6): USB\VID_0925&PID_7001\5678
libwdi:debug [wdi_create_list] Device description: 'USB Human Interface Device'


Next test will be trying out the Microchip USB Mass Storage Firmware.

--
Xiaofan http://mcuee.blogspot.com

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Xiaofan Chen
On Sat, Jun 5, 2010 at 10:17 AM, Xiaofan Chen <[hidden email]> wrote:
> Next test will be trying out the Microchip USB Mass Storage Firmware.
>

Original it was using USBStor driver and the serial number is 1234.
libwdi:debug [wdi_create_list] USBSTOR USB device (3):
USB\VID_04D8&PID_0009\1234
libwdi:debug [wdi_create_list] Device description: 'USB Mass Storage Device'
libwdi:debug [wdi_create_list] got hardware ID: USB\VID_04D8&PID_000B&REV_0000

I changed to use WinUSB.
libwdi:debug [wdi_create_list] got hardware ID: USB\VID_04D8&PID_0009&REV_0001
libwdi:debug [wdi_create_list] WinUSB USB device (3): USB\VID_04D8&PID_0009\1234
libwdi:debug [wdi_create_list] Device description: 'USB Mass Storage Device'

Then I changed the serial number to 5678, downloaded the firmware and then
reset the device. It goes back to use the default USB Mass Storage Device.
libwdi:debug [wdi_create_list] USBSTOR USB device (3):
USB\VID_04D8&PID_0009\5678
libwdi:debug [wdi_create_list] Device description: 'USB Mass Storage Device'
libwdi:debug [wdi_create_list] got hardware ID: USB\VID_04D8&PID_000B&REV_0000

So this is just what Windows match the best device driver to use. If Windows
detects multiple drivers for the same device, Windows assigns each driver a
rank that is based on several factors. Windows first compares the signing
scores of the competing drivers. If one driver has the highest signing score,
Windows installs that driver. That is happening here.

http://www.microsoft.com/whdc/driver/install/drvsign/pnp-driver.mspx

--
Xiaofan http://mcuee.blogspot.com

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Pete Batard
On 2010.06.05 04:57, Xiaofan Chen wrote:
> Then I changed the serial number to 5678, downloaded the firmware and then
> reset the device. It goes back to use the default USB Mass Storage Device.

Thanks for these tests. I was trying to avoid having to recreate the
Mass Storage firmware for my PIC18F2550 board, as the one from LakeView
Research is for a 18F4550.

> Windows first compares the signing
> scores of the competing drivers. If one driver has the highest signing score,
> Windows installs that driver. That is happening here.
>
> http://www.microsoft.com/whdc/driver/install/drvsign/pnp-driver.mspx

Yup. And Microsoft treats two devices that only differ on the serial
number as two completely different devices.
Kind of defeats the whole point of asking manufacturers to use the same
PIDs for devices that are identical in USB functionality.
If end users installed a driver for a specific VID:PID, there's no
reason to believe they don't want to use the same driver for a similar
device with a different serial. I'm therefore not sure where Microsoft
is coming from on this one...

Looks like going through a class filter or WHQL (provided WHQL results
in the same score as Microsoft's own drivers, and that the most recent
driver wins) are going to be the options to avoid reinstalling the
driver over and over again. Either that, or you would need to have a
service running that detects USB devices as soon as they are plugged in
and installs the driver, if needed, whenever there's a VID:PID match,
which is similar to what the Apple iTunes service seems to be doing.

Oh, and it doesn't look like Microsoft provides any official means of
temporarily disabling restore points, at least on Vista and later.
Moreover, disabling them manually on these platforms, while greatly
speeding up the driver installation process, does result in all restore
points to be deleted => not a viable option.
It looks unlikely that we'll be able to speed up the installation
process from libwdi then, as long as we use the official driver
installation API.

Regards,

/Pete

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Michael Plante
Pete Batard wrote:
>> If end users installed a driver for a specific VID:PID, there's no
>> reason to believe they don't want to use the same driver for a similar
>> device with a different serial. I'm therefore not sure where Microsoft
>> is coming from on this one...


I use different drivers for the same VID:PID sometimes (and perhaps I'm
wrong not to change the PID, but here goes).

I have two FT2232D's(*), and I simultaneously use one with the virtual COM
port driver, while I use the other one with libftdi (libusb-win32-0.1
driver).  Both chips have the same VID:PID.  Note that for the former, I
can't even easily obtain the VID, PID, or serial number (it isn't enumerated
that way), so the fact that I use the serial primarily to label the board,
rather than to label the desired mode of operation, is still ok.  I'll grant
that I can change the VID:PID, but I haven't, as that's just more stuff that
I could potentially get wrong every time I switch things around (the
hardware on the two boards is identical), and also because I treat the PID
as a hierarchy level above the serial(**).

This is perhaps an obscure situation, and maybe not even applicable to
people who wish to giveaway/sell devices to strangers, but Microsoft's
decision helps me in this case.  Could I have worked around it if they had
done otherwise?  Yes, but it'd have introduced an unwelcome complication in
my host software.

Michael


(*)   The exact model is unimportant to the example, but that's my specific
case.  Additionally, there are usually more than 2, but that's also
irrelevant.

(**)  The host software assumes that all devices enumerated with that
VID:PID are capable of some similar basic communication (primarily returning
extra identification and status info), and yes I can enforce what devices
are physically plugged in.


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Xiaofan Chen
In reply to this post by Pete Batard
On Mon, Jun 7, 2010 at 7:23 AM, Pete Batard <[hidden email]> wrote:
> Oh, and it doesn't look like Microsoft provides any official means of
> temporarily disabling restore points, at least on Vista and later.

Driver installation can potential go wrong, so I think it is good that
Microsoft does not allow disabling restore points temporarily.

> Moreover, disabling them manually on these platforms, while greatly
> speeding up the driver installation process, does result in all restore
> points to be deleted => not a viable option.
> It looks unlikely that we'll be able to speed up the installation
> process from libwdi then, as long as we use the official driver
> installation API.

I think this should not be a real issue for most users. For
end users, it is not expected that they switch drivers
from time to time. For manufacturers who are doing
final testing (using same driver but with unique serial number),
there is a trick to ignore the serial number (so that
Windows does not prompt driver installation for every
device).
http://www.microchip.com/forums/fb.aspx?m=385062

Not so sure if this trick to ignore serial number work for this case.


--
Xiaofan http://mcuee.blogspot.com

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Pete Batard
On 2010.06.07 02:39, Xiaofan Chen wrote:
> http://www.microchip.com/forums/fb.aspx?m=385062
>
> Not so sure if this trick to ignore serial number work for this case.

Brilliant find once again!

I'm pretty sure the IgnoreHWSerNumVVVVPPPP key was made just for this
kind of situation (Microsoft probably knew their default choice was
disputable), and I'm ready to bet the trick still works on recent platforms.
If confirmed, I'll probably add an option to set the key in libwdi
during driver installation, if people don't want to get prompted for
devices that just differ from the serial.

Do you have means to find out if that key works on Vista (or Windows 7)
with your USBSTOR PIC device?

Regards,

/Pete

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Pete Batard
^ Of course, this won't change the driver "election" system when plugged
on a different port, but that's a start. One has to wonder if there
might exist registry entries to tweak the driver eligibility as well...

/Pete

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Pete Batard
Apparently, there's also a global flag to ignore all USB serial numbers:
(See the end of http://www.uwe-sieber.de/usbtrouble_e.html)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags]
there is the value GlobalDisableSerNumGen:
0 disable all USB serials
1 enables USB serials

Lakeview Research also mentions similar information:
http://www.lvr.com/usbfaq.htm -> "How can I prevent Windows from asking
to install a new driver every time a device is attached?"

Some posts however seem to point out that this key is used to disable
the generation of serials for devices that don't have one, rather than
disable USB serial numbers globally, which would make sense with regards
to the choice of key name:
http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.kernel/2004-12/0109.html.


It also appears that at least the USBSTOR driver has some provisions for
tweaking, with usbstor.inf doing the following for iPod devices (05AC =
"Apple Inc.", 12xx, 13xx = iPod, with 1300 being the PID of an iPod
Shuffle for instance)
[DeviceSpecific]
HKLM,"System\CurrentControlSet\Control\usbstor\05AC12xx",
"DeviceHackFlags", 0x00010003, 0x20
HKLM,"System\CurrentControlSet\Control\usbstor\05AC13xx",
"DeviceHackFlags", 0x00010003, 0x20

Of course none of the DeviceHackFlags values are documented, and, while
I have the default set to 0x20 on my machine, changing it to 0 and
plugging an iPod didn't result in any noticeable change.

Regards,

/Pete



------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Xiaofan Chen
In reply to this post by Pete Batard
On Mon, Jun 7, 2010 at 7:56 PM, Pete Batard <[hidden email]> wrote:

> I'm pretty sure the IgnoreHWSerNumVVVVPPPP key was made just for this
> kind of situation (Microsoft probably knew their default choice was
> disputable), and I'm ready to bet the trick still works on recent platforms.
> If confirmed, I'll probably add an option to set the key in libwdi
> during driver installation, if people don't want to get prompted for
> devices that just differ from the serial.
>
> Do you have means to find out if that key works on Vista (or Windows 7)
> with your USBSTOR PIC device?
>

Somehow it is not listed in the "usbflags" category. And I am not
so sure what lists under "usbstor"means.

--
Xiaofan http://mcuee.blogspot.com

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Xiaofan Chen
On Mon, Jun 7, 2010 at 10:29 PM, Xiaofan Chen <[hidden email]> wrote:

> On Mon, Jun 7, 2010 at 7:56 PM, Pete Batard <[hidden email]> wrote:
>> I'm pretty sure the IgnoreHWSerNumVVVVPPPP key was made just for this
>> kind of situation (Microsoft probably knew their default choice was
>> disputable), and I'm ready to bet the trick still works on recent platforms.
>> If confirmed, I'll probably add an option to set the key in libwdi
>> during driver installation, if people don't want to get prompted for
>> devices that just differ from the serial.
>>
>> Do you have means to find out if that key works on Vista (or Windows 7)
>> with your USBSTOR PIC device?
>>
>
> Somehow it is not listed in the "usbflags" category. And I am not
> so sure what lists under "usbstor"means.
>

Hmm, it works. After creating a new string
IgnoreHWSerNum04d80009 with value of 1 under usbflags,
it does seem to ignore the serial number and continues to use the
WinUSB driver even though I change the serial number
of the firmware.

This is under Win 7 X64 Home Premium.

--
Xiaofan http://mcuee.blogspot.com

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

Pete Batard
On 2010.06.07 15:45, Xiaofan Chen wrote:
> Hmm, it works. After creating a new string
> IgnoreHWSerNum04d80009 with value of 1 under usbflags,
> it does seem to ignore the serial number and continues to use the
> WinUSB driver even though I change the serial number
> of the firmware.
>
> This is under Win 7 X64 Home Premium.

Thanks a lot! This is behaving as expected, and I think it'll be
worthwhile to provide the option to set this key automatically in libwdi.

Regards,

/Pete


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: how to key off of hardware instance instead of device instance with Installer_x86.exe/winusb

joey-44
IgnoreHWSerNumVVVVPPPP does exactly what I needed.

Thank You Pete and Xiaofan for all you amazing help.

In the near future I'll be doing some testing on windows 7 32 and 64
bit, so I'll be able to see if this works for those as well.

Joseph,

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
12
Loading...