【问题标题】:C++ Windows 7 Get Symbolic Names of Installed driversC++ Windows 7 获取已安装驱动程序的符号名称
【发布时间】:2014-05-15 19:40:44
【问题描述】:

我有一个应用程序,它需要与一块定制硬件通信。我大致知道驱动程序将注册一个符号名称的格式,但是基于卡上的一些物理开关,卡将有一个有点动态的名称。我的问题是有没有办法找到注册的符号名称,或者找到驱动程序并创建符号名称。

我的应用程序将符号名称用于 CreateFile()、WriteFile() 等操作。

更新

驱动程序是 PNP,所以它真的只在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\V70QT\ 下创建一个子键,我可能会拥有超过 1 个卡。我想了一秒钟,我可以使用这个注册表项

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\V70QT\Enum]
"Count"=dword:00000001
"NextInstance"=dword:00000001
"0"="PCI\\VEN_10B5&DEV_2021&SUBSYS_202110B5&REV_03\\4&33c89357&0&08F0"

因为符号密钥名称以类似于 V70QTX_Y 的格式构建,其中 X 是卡 ID(打开硬件),Y 是通道(此处不相关)。我想我可以使用“NextInstance”值建立名称,但这不起作用,因为卡的开关 ID 可能为 4,并且是第一个实例。

【问题讨论】:

  • 我恭敬地询问为什么这个问题在一个多月后突然被否决,并且在我的另一个问题被否决的几秒钟内(shttps://stackoverflow.com/questions/22277684 /does-cakephp-recursively-pull-back-data)。如果这是一个不好的问题,我想知道,以便我可以修复或删除它。

标签: c++ windows-7 driver plug-and-play


【解决方案1】:

如果您的驱动程序出现在[HKLM\System\CurrentControlSet\Services] 下,则只需枚举那里的子键即可。

【讨论】:

  • 那么,不是驱动程序名称而是设备名称?
  • 我想我不确定,这就是我的知识有漏洞的地方。我知道当您安装卡的驱动程序(在设备管理器中)时,它将根据卡的 ID 注册一个符号名称。我可以立即使用该卡,无需重新启动。所以设备名称......可能......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
相关资源
最近更新 更多