[wdmaudiodev] Re: Core Audio API Device ID lifetime

  • From: Frank Yerrace <Frank.Yerrace@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Tue, 3 Jul 2007 21:10:07 -0700

This ID is intended to be used as you describe. Roughly speaking, you can think 
of the lifetime of the ID as being tied to the lifetime of a particular 
installation of a device. If the user uninstalls the device and resinstalls it, 
it won't have the same ID. But if he just unplugs his USB device and then plugs 
it back in, the ID will remain valid.

While I can't make any guarantees, we would not intentionally change this ID 
through Windows Update or Service Pack unless there was a very good reason. 
(This however does not mean it's okay to parse the string.)

Frank Yerrace
Microsoft Corporation
This posting is provided "AS IS" with no warranties, and confers no rights.


From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Jeff Pages
Sent: Tuesday, July 03, 2007 6:56 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Core Audio API Device ID lifetime

Is the string returned by IMMDevice::GetID preserved across reboots? In other 
words, if I store the string in the registry, can I later, after a reboot, 
retrieve that string in order to open the same endpoint again with 
IMMDeviceEnumerator::GetDevice?

From my experimenting, that seems to be the case, but I'd like to make sure 
it's really a valid thing to be doing. The documentation says the ID string can 
be used in another process or at a later time, but how much later can "later" 
be, given the warning that the contents of the string may change in future 
implementations of the MMDevice API? Is a service pack or even a Windows Update 
going to break what I'm doing?

Jeff Pages

Other related posts: