【问题标题】:Remove oem.inf files corresponding to hardware id删除硬件id对应的oem.inf文件
【发布时间】:2012-07-13 10:59:08
【问题描述】:

我正在使用 dpinst.exe 安装我的驱动程序。但在安装我的驱动程序之前,我希望从与我的硬件 ID 对应的 inf 目录中删除所有 oem 文件。

我想以编程方式执行此操作。请建议我这样做。

**Update :**

我想在没有连接设备的情况下执行此操作,因为我可能会在连接设备之前预先安装驱动程序。我的设备是 PNP 设备。

【问题讨论】:

    标签: c windows winapi driver device-driver


    【解决方案1】:
    1. 使用SetupDiEnumDeviceInfoSetupDiGetDeviceRegistryProperty 来匹配您的硬件ID
    2. 使用SetupDiOpenDevRegKeyRegQueryValueEx读取对应的InfPath
    3. 致电SetupUninstallOEMInf

    【讨论】:

    • 此方法在设备未连接时适用于我,因此您可能使用了不同的参数。可以发一些代码吗?
    • 非常感谢PhilMy 的回复。我的设备是属于端口类的即插即用设备。一旦我拔下我的设备,设备管理器中的条目将作为 PNP 被删除。如果没有错,SetupDiEnumDeviceInfo 仅枚举设备管理器中可用的设备吗?如果我错了,请纠正我。对不起,我没有开始我的编码部分,因为我还在分析它..
    • 非常感谢您的明确回答。我终于完成了我的编码部分,请参考此链接pastebin.com/uHihC4gV。我在其中遇到了一些问题 1) 我的 RegQueryValueEx 失败并出现错误 (6) 和 2) SetupUninstallOEMInf 仅删除非只读文件。您能否检查我的代码以进行至少一些更正以消除 regqueryvalueEx 错误。
    • 检查hDeviceKey 是否设置为INVALID_HANDLE_VALUE,如果是,请致电GetLastError() 获取更多信息。 SetupUninstallOEMInf页面上有一条评论建议您可以提前手动clear the read-only attribute
    • 是的,你是对的,我通过检查“hDeviceKey”得到了“INVALID_HANDLE_VALUE”,但只有一次。我评论了 SetupUninstallOEMInf 并尝试仅打印 inf 文件的路径,这是输出的链接供您参考pastebin.com/2WPf1HsM。如果可能的话,任何解决这个问题的提示..
    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多