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

时间:2011-05-02 20:06:38

标签: windows winapi registry device-driver

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

1 个答案:

答案 0 :(得分:1)

您可以使用SPDRP_SERVICE然后从HKLM\SYSTEM\CurrentControlSet\services\<service name>\ImagePath

查找驱动程序