Problem with USB device

Status
Not open for further replies.

rduff

Posts: 31   +0
Can anyone help with this query? I recently upgraded the Realtek sound card in my computer, however the Sennheiser USB headset I've used for ages is now displayed as a Micronas device. How can the PC recognise the same device as something else and is it possible to rename it? The operating system is Vista 32 SP1. Any tips are much appreciated!!
 
[post=746347]Here’s a simplified overview to how Windows finds drivers[/post] (which is why name changes can occur) Note "device names" are merely comments in Windows and aren't what's really important

What is important are underlying Identification strings you normally don't see (unless you know how to find them) so let me first ask
=> Are your headsets working?
=> Does its driver indicate Status= Working Properly or an error? (even tho its name has changed)
 
Yes the headset still works and driver indicates working properly. I know this isn't a critical issue, but it's bugging me. Should be simple enough simple to rename the device, if only I knew how!!
 
read the post i referred to. If you find the driver file it's using, you can rename it in the driver file... But it can be more trouble that its worth and you might accidently screw up your driver file if you make an error.. so might be best leave it be (but if you want to try.. i can point you in that direction.. but can't help if it screw it things up)
 
OK. But note you aren't going to change the driver file name!

Rather you have to find the driver file, and edit the file to change the device name which appears inside the file (that's where Windows gets the name it displays to you)

i should be a file with an .inf extension
Also to see the file you must first change your settings to "view hidden files"

Next, you need to find the right .inf file. It might be simplest to use Windows search to look for the text Micronas inside of all the .inf files in C:\Windows\inf.

If i recall you need open Control Panel->Search Options (Or similar name) to modify your options.. but would have to post details later as i don't have a vista machine in front me right now... but that's the idea.

Find the .inf containing the Micronas device name string it. That's where windows is getting the name. Then edit the name string. BUT make sure you edit the right name (especially if you find multiple occurences.). If you want, might be best you just attach the .inf file you find to a TechSpot post so i can see it first.

and point out the right string. (be sure to back things up before you attempt this tho!)

/* EDIT */
Actully, here;s an example of what you should find inside the right .inf file. See this example

Code:
PCI\VEN_11C1&CC_0C0010.DeviceDesc="AGERE OHCI Compliant IEEE 1394 Host Controller"
the string between the quotes is the name that would appear in Device Manager. You will find and can edit the device name in the .inf file when you find it
 
Thanks. The theory sounds great but in practice I can't find the relevant file. I've attached a screen print showing the device manager list, driver location and registry details which hopefully you'll be able to make sense of, but otherwise not sure how to proceed.
 

Attachments

  • Capture.jpg
    Capture.jpg
    200.3 KB · Views: 10
1) Unhide files per my previous post

2) Use Start->Programs->Accessories->Notepad and open C:\Windows\inf\wdma_usb.inf
3) Find the string Micronas USB Headset in the file inside the quotes (will look similar to my example in previous post). Check if multiple occurrences. You want the one with the Hardware ID you see in the screenshot
4) Edit the name Micronas USB Headset and save the file
5) Uninstall the device so Windows reinstalls
6) The name should now change
 
Done that but can't find any Micronas string....copied from notepad into Word and then used word search but nothing there. File is attached for reference.
 

Attachments

  • wdma_usb.inf.doc
    99 KB · Views: 16
Cool! You present an .inf file that works a bit different what i've seen before (i like a challenge :) )

For your specific case, i see the .inf doesn't assign the name directly. Rather it appears to do the assignment using a shell variable %USBGenericDesc% which must be defined prior to this .inf is invoked during the install process

First, let's try searching all the .inf files in the inf folder for the Micronas text string and see what's found
1) Folder options should unhide files
2) In a Vista Advanced Search Window
==> Set Location to C:\Windows\inf (you get there by Choosing Location option from the pulldown context menu of location and navigating to the folder)
==> Check the box labeled Include non-indexed, hidden, and system files
==> In the Search box in upper most right corner of the Advanced Search window type: micronas name:*.inf

3) It will come up blank but will show you Search in File Contents option in the empty Search result
4) Click and see what files it matches containing micronas

/* EDIT */
If that should fail to find anything, try again but this set Location to C:\Windows
 
OK...found two files after a lot of searching. Hope they mean something to you. I also like a challenge but am beginning to wonder if this is worth the effort!!
 
I also like a challenge but am beginning to wonder if this is worth the effort!!
Welcome to the Wonderful World of Windows!! :D

May take me a couple days but will get back to you about the stuff in those files (I warned ya those .inf files are not at all very straightforward or simple to figure out ;) )
 
I'm still gonna look at those files and stuff (now that i'm also curious) but did occur to me there's also a "cheap and easy" band-aid solution that might do the job (for the most part)

The brief "big picture"
=> When Windows installs the driver for your headset its gettin the Micornas name from an unknown inf file or install driver command as yet still unknown
=> But whatever file or whatever it is that contains the original source of that Micronas name, it gets written into the registry (as can be seen in your registry snap-shot earlier)
=> The name written in the registry should only change if and when you should uninstall/reinstall the headset driver
=> So we might just also change it in the registry (which is a semi-permanent fix)

But i'll get back to you with more detail about either case
 
Well it all sounds very complicated. Basically I don't understand how it can show a Sennheiser headset is connected one day and Micronas the next?? Hopefully we can work it out.
 
How device names change is the part that's simple to explain. They can change anytime you add/remove driver files (those .inf files)

Open Device Manager. Find your headset. Rt click it and select Properties. Click the Details tab

You'll see a pull down menu. If you select Hardware Id and then Compatible Ids you'll see the Windows IDs for you headset device. That's how windows REALLY refers to and knows your device (the descriptive device name is just for us humans.. it's not important to Windows)

IT's THE WINDOWS IDS THAT ARE CONSTANT AND NEVER CHANGE FOR YOUR HEADSET DEVICE

Windows uses THESE IDs to find you a driver (amongst all those INF files). As soon as you add/change driver files (inf) files your device name can change (because device name is in the INF file)

Remember Windows uses the IDs to find a driver among the inf files
It then simply copies/pastes whatever name appears in the inf file and uses it as a name
If we put the word BALONEY in the file Windows will happily display it as the device name in Device Manager!~
The device name is nice for us humans but Windows doesn't care if/when it changes as it only looks at those IDs
 
I recently upgraded the Realtek sound card in my computer,

THAT's how it happened to change. That Reatek upgrade modified your driver files such that Windows now matches a driver file which happens to state Micronas!
 
So it is my fault then!!!
Further down the list in properties is 'Display name' which of course shows Micronas USB Headset. As you suggest, a possible quick fix is simply to amend the registry to change the name to Sennheiser...is this possible?
 
So it is my fault then!!!
Further down the list in properties is 'Display name' which of course shows Micronas USB Headset. As you suggest, a possible quick fix is simply to amend the registry to change the name to Sennheiser...is this possible?

Yes, we can edit the registry but disadvantage: Next time Windows reinstalls the device it overwrites the registry with the Micronas device name. (Tho, Windows wouldn't likely reinstall it unless your first uninstalled it for whatever reason.) But before the registry route, let's try one more crack at your driver's .inf files. I think the steps below should be simple / not-to-much work to do

Step 1. See if all your driver .inf files are being stored in C:\Windows directory
The registry key DevicePath tells Windows Plug and Play (PnP) where to search for .inf files. DevicePath is a semi-colon ; separated list of directories
Start->Run, enter regedit. Navigate to HKEY-LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
Look for DevicePath
  • Does each directory in DevicePath start with either %SytstemRoot% or C:\Windows??
  • If, yes, then our search through C:\Windows should (I hope) find what we want
  • Fyi.. %SystemRoot% is a Windows' "variable". This variable equals the string value: C:\Windows)
In my example below, all directories in DevicePath (highlighted in yellow) start %SystemRoot% therefore all my PnP driver .inf files are being stored in different subdirectories all within directory C:\Windows. (Click image for full size)


Step 2. How to search through all the .inf files in directory C:\Windows
  • Download and open the file strings.zip. Unzip it. Put file strings.exe in directory C:\Windows\system32
  • AFTER you put strings.exe in the C:\windows\system32 directory, open an a Elevated commmand prompt window
  • Copy/paste the command below into the window. Ignore any findstr: line too long messages you might see. The command creates file micronas.txt on your desktop. Attach it to your next post
    Code:
    strings -a -s C:\Windows\*.inf | findstr /i /c:micronas > "%userprofile%\desktop\micronas.txt"
Hopefully, i'll see what i'm looking for in this file! Else, we can do the registry next​

/* EDIT */
Step3: One more step?
Uggh. Windows! I see there's something a bit different for "unattended" installs. Using Vista advanced search, check Hidden files and folders option and search for wdma_usb.inf (the file we can see in your registry snapshot). But search your entire C: drive for this file!

And/or maybe best of all do the command search below (tho will take a bit as it will search through all .inf files on your C drive. Take a bit of time at least would be thorough! Then also attach the additional file micronas2.txt
Code:
strings -a -s C:\*.inf | findstr /i /c:micronas > "%userprofile%\desktop\micronas2.txt"
 
Update

Hi again
Apologies for the delay in responding. I have attached the information you requested so hopefully you'll be able to make sense of it.
Thanks once again for your help.
 
Hey!

Been busy here myself so also took a few days before I could start looking through this stuff. I’ll follow-up with more info/detail (probably tomorrow) but first here’s some quick info (you might find interesting if you don't already know)…..
Don’t know if you are aware, but here’s the connection i found between Sennheiser and Micronas:
  • Micronas manufactures integrated circuits / silicon microchips used in both consumer and automotive electronic products
  • In fact, Micronas (since at least 2002) has developed and manufactured a line of audio microchips specifically designed to control/for use in USB headsets
  • As you obviously know, Sennheiser designs, manufactures and sells USB headsets. They buy (at least some the parts for their headsets) from vendors and apparently buy some of the audio microcontroller chips from Micronas. They use one of the Micronas audio chips inside your particular headset model

1) Would you know what model Sennheiser USB headset? (It’s probably written somewhere on the headset)

2) Could you check if you are running 32 or 64 bit Vista? Click for how to determine whether you are running 32 or 64 bit windows
 
Hi again
Thanks for the information on Micronas....it's all starting to make sense.
The Sennheiser headset is model PC35 for USB and I'm running Vista 32 bit.
 
So here’s some info (and a bit more work if you're still up to it)

Sennheiser PC 35 USB Firmware
I don’t think you are actually having problems using your headset with Vista? Or are you?
fyi..Here’s a Sennheiser link (about possible firmware upgrade for older PC35 headsets) If you aren’t having any problems with your headset
=> I’m not recommending nor discouraging you from trying a firmware upgrade
=> Just figured I’d point you toward the info, let you read it and then you can decide if it’s needed or not​
Editing your Registry
If you did a registry edit, i believe you would only need modify the key called FriendlyName
  • But i just noticed your registry shows two different device instances for your headset! (see my comments below)
  • I’d like to see the detail for both device instance (one instance might still be the definition for your old driver!)
  • To dump all your registry's USB enum data, open an elevated command prompt (it should have admin privileges) then copy/paste command below
    Code:
    reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB /s > "%userprofile%\desktop\reg.txt"
  • Vista will complain about permissions when you modify FriendlyName key. I still gotta double check on steps to allow those permissions
What I noticed in your registry about your headset
I happened to take another look the registry pic you provided earlier. I noticed something I overlooked before! (click the thumbnail below to help explain what i'm saying)
Your registry has TWO USB device "instances" for your headset. The image i marked up shows you
=> Your headset’s Device ID and
=> Two Instance IDs listed under the device (only one of which is expanded and displayed in the image)

Which translates to this: Look at your headset again in Device Manager. Rt click Properties->Details tab
  • Use the pull down menu to view the Device Instance Path
  • Note the Device Instance Path is a string made-up of 3 sub-strings. Here’s an example of what a Device Instance Path string (and the 3 sub-strings it's made up of):
    USB\VID_08BB&PID_2900&MI_00\8&2933D231&0&0000 where for this particular example:
    • USB is the Device Enumerator
    • VID_08BB&PID_2900&MI_00 is the Device ID
    • 8&2933D231&0&0000 is the Instance ID
  • If you open device manager then verify which Instance ID in the registry matches your USB headset in Device Manager

Finally, could you also re-run a command?
I would have expected different output the last time we tried. From a elevated command prompt window. It’s a large search so allow it several minutes to complete (like up to 5 minutes or so)
Code:
strings -a -s C:\Windows\*.inf | findstr /i /c:micronas > "%userprofile%\desktop\Search.txt"
 
Details as requested

I already have the firmware upgrade...in fact have to install it every time the headset is connected, otherwise the in line volume control and mute button don't work

I'm not sure but the command prompt results look identical to last time, hence have called it V2.

Let me know how you get on or if you need anything else.
 
Just to confirm in case you can't see the Device Path image very clearly, the Instance ID is the second one beginning 7&84b63.....
 
Status
Not open for further replies.
Back