繁体   English   中英

Windows XP:我可以查找通用驱动程序的名称吗?

[英]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  
  1. 有没有更好的方法来检测当前安装的驱动程序是否是通用驱动程序?
  2. 如果我保留这个字符串比较,注册表中是否有某个地方可以找到通用驱动程序的名称?

您可以使用SPDRP_SERVICE然后从HKLM\SYSTEM\CurrentControlSet\services\<service name>\ImagePath查找驱动程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM