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