[英]Windows XP: can I look up the name of a generic driver?
我继承了 USB class 兼容的音频驱动程序。 它在 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 音频设备”),那么我们将 go 提前安装我们的。 然而,在意大利机器上,通用名称是“USB 扬声器”。 我们的比较失败,我们不安装。 在我看来,Windows 必须从注册表中的某个位置提取该名称。 我可能应该从同一个地方拉出来并与那个而不是硬连线的字符串进行比较。
我确实在以下位置看到了这个名字:
HKLM\Software\Microsoft\Window NT\CurrentVersion\drivers.desc: wdmaud.drv == USB Speakers
您可以使用SPDRP_SERVICE
然后从HKLM\SYSTEM\CurrentControlSet\services\<service name>\ImagePath
查找驱动程序
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.