Ignore the serial number when enumerating a non-USB device

I have found several places now which document a special registry entry that allows you to tell Windows to ignore the device serial number when enumerating USB devices. (Specifically: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags\IgnoreHWSerNumVVVVPPPP.) When this set Windows will generate a unique ID based on the bus address. Does anyone know if a similar override is possible for non-USB devices?

In my particular case I have a PCI NIC which is being enumerated by MAC address (or rather a unique serial number formed from the MAC address). I would prefer that it be enumerated based on it’s bus address so that the MAC may be changed without Windows treating it as a new device. Is this possible?

PCIe devices use their serial number “descriptor” or whachhyuocallit as
InstanceId. It’s generally not the same as MAC address. If your particular
NIC makes it from MAC address, what holds you from finding another brand
which doesn’t do that?

And in any case, you can use software MAC address override through the NIC
property page. All compliant NICs must support it.

wrote in message news:xxxxx@ntdev…
>I have found several places now which document a special registry entry
>that allows you to tell Windows to ignore the device serial number when
>enumerating USB devices. (Specifically:
>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags\IgnoreHWSerNumVVVVPPPP.)
>When this set Windows will generate a unique ID based on the bus address.
>Does anyone know if a similar override is possible for non-USB devices?
>
> In my particular case I have a PCI NIC which is being enumerated by MAC
> address (or rather a unique serial number formed from the MAC address). I
> would prefer that it be enumerated based on it’s bus address so that the
> MAC may be changed without Windows treating it as a new device. Is this
> possible?
>

The problem is I need to (or at least would like to) support a NIC which does behave in this way. (It’s true, I’ve noticed that most NICs don’t.) Essentially I’m looking for a generic way to have Windows ignore the serial number “descriptor” (or whachhyuocallit) and generate its own InstanceId so rather than getting a complete Instance Key that looks like this:

PCI/VEN_15AD&DEV_07B0&SUBSYS_07B015AD&REV_01/FF565000900991FE00 <– derived from the MAC address

I get one that looks like this:

PCI/VEN_15AD&DEV_07A0&SUBSYS_07B015AD&REV_01/3&18d45aa6&0&C7 <– Windows generated InstanceId based on the PCI bus location (as I understand it)

This way, hopefully, even if the MAC address changes Windows will still treat it as the same device, so long as its the same hardware type and PCI bus location.

There is no global setting to ignore serial numbers or bus unique IDs. If there is no documented way to tell a specific conectivity bus to ignore it, there is no way to ignore it.

d

tiny phone keyboard + fat thumbs = you do the muth

-----Original Message-----
From: xxxxx@unidesk.com
Sent: Wednesday, March 24, 2010 7:00 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Ignore the serial number when enumerating a non-USB device

The problem is I need to (or at least would like to) support a NIC which does behave in this way. (It’s true, I’ve noticed that most NICs don’t.) Essentially I’m looking for a generic way to have Windows ignore the serial number “descriptor” (or whachhyuocallit) and generate its own InstanceId so rather than getting a complete Instance Key that looks like this:

PCI/VEN_15AD&DEV_07B0&SUBSYS_07B015AD&REV_01/FF565000900991FE00 <– derived from the MAC address

I get one that looks like this:

PCI/VEN_15AD&DEV_07A0&SUBSYS_07B015AD&REV_01/3&18d45aa6&0&C7 <– Windows generated InstanceId based on the PCI bus location (as I understand it)

This way, hopefully, even if the MAC address changes Windows will still treat it as the same device, so long as its the same hardware type and PCI bus location.


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

>it’s bus address so that the MAC may be changed without Windows treating it as a new device.

Embedded hardware MAC cannot be changed. The “currently used” MAC can, but I have major doubts the PCI instance ID is derived from this software value.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

“Maxim S. Shatskih” wrote in message
news:xxxxx@ntdev…
> Embedded hardware MAC cannot be changed. The “currently used” MAC can, but
> I have major doubts the PCI instance ID is derived from this software
> value.

Perhaps the opposite - the MAC address is derived from the “serial number”
in the config space.

It’s still not clear which real problem the OP tries to solve.

–pa