Такая ситуация: есть две одинаковые USB звуковые карты, при перезагрузке windows они случайным образом меняются местами, т.е. при том же номере устройства (mme) или GUID (DirectSound) происходит работа с различными устройствами. Кто-нибудь знает как определить какая точно карта и под каким она ID?
Я думаю можно было бы определить это по уникальному серийному номеру устройства (если он есть). Если так то как определить этот номер.
Здравствуйте, _albert_, Вы писали:
__>Такая ситуация: есть две одинаковые USB звуковые карты, при перезагрузке windows они случайным образом меняются местами
__>Я думаю можно было бы определить это по уникальному серийному номеру устройства (если он есть).
Увы, такого номера нет. В общем случае USB-устройство определяется только идентификаторами контроллера и порта. Эти идентификаторы входят в состав Instance Id, который, в свою очередь, входит в состав полного имени интерфейса. Получить имя интерфейса можно запросом DRV_QUERYDEVICEINTERFACE. При желании, используя его, можно найти Instance Id в чистом виде с помощью функций SetupDiEnumDeviceInterfaces.
Беда только в том, что нигде не гарантируется сохранение Instance Id между перезагрузками — Node Id в нем обычно меняется. Постоянства формата тоже никто не гарантирует. В общем, Plug and Play в действии

... << RSDN@Home 1.1.4 beta 3 rev. 185>>