我继承了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音频设备”),那么我们继续安装我们的设备。然而,在意大利机器上,通用名称是“USB扬声器”。我们的比较失败,我们不安装。在我看来,Windows必须从注册表中的某个位置提取该名称。我应该从同一个地方拉出来并与之比较而不是硬连线。
我确实在:
中看到了这个名字HKLM\Software\Microsoft\Window NT\CurrentVersion\drivers.desc: wdmaud.drv == USB Speakers
答案 0 :(得分:1)
您可以使用SPDRP_SERVICE
然后从HKLM\SYSTEM\CurrentControlSet\services\<service name>\ImagePath