Windows XP: могу ли я найти название универсального драйвера? - PullRequest
1 голос
/ 03 мая 2011

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

1 Ответ

1 голос
/ 03 мая 2011

Вы можете использовать SPDRP_SERVICE, а затем искать драйвер из HKLM\SYSTEM\CurrentControlSet\services\<service name>\ImagePath

...