Я унаследовал аудиодрайвер, совместимый с классом USB. Он отлично работает в WinXP, Win7 и т.д.
Я обнаружил, что на итальянской машине XP (я еще не проверял другие языки) он не запускается. Наш установщик имеет (по сути) это:
...
SetupDiGetDeviceRegistryProperty( info, &data, SPDRP_DEVICEDESC, &type, (BYTE *)name, sizeof(name) ;
...
if( 0 == wcsicmp(name, "USB Audio Device") ) {
...
// install our driver
}
Итак, если у нас есть нужное устройство (USB\VID_0a73
) и если установлен универсальный драйвер («USB Audio Device»), мы устанавливаем наше. Однако на итальянской машине общее название «USB-динамики». Наше сравнение терпит неудачу, и мы не устанавливаем. Мне кажется, что Windows должна тянуть это имя откуда-то из реестра. Я, вероятно, должен взять из того же места и сравнить с ним, а не с зашитой струной.
Я вижу это имя в:
HKLM\Software\Microsoft\Window NT\CurrentVersion\drivers.desc: wdmaud.drv == USB Speakers
- Есть ли лучший способ определить, является ли текущий установленный драйвер универсальным?
- Если я останусь с этой строкой, сравните, есть ли в реестре место, где можно найти имя универсального драйвера?