Я унаследовал аудио драйвер, совместимый с классом 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
- Есть ли лучший способ определить, является ли установленный в настоящее время драйвер универсальным?
- Если я останусь с этой строкой сравнения, есть ли место в реестре, чтобы найти имя универсального драйвера?