2

我已经为虚拟设备编写了相当简单的第一个驱动程序。它还有一个 .inf ,我使用devcon.exe安装驱动程序。

它安装良好且功能正常,但我的问题是当我尝试卸载它时:devcon.exe 无法卸载它,并且在设备管理器中,驱动程序的卸载、回滚和禁用按钮被禁用。我现在主要关心的是卸载按钮。

我的驱动程序实现了DriverObject->DriverUnload. 我查看了 msdn 文档,现在我找不到DDUninstall驱动程序的任何 INF 部分。

当我查看%WinDir%\inf\setupapi.app.log时,当我尝试使用 devcon.exe 将其删除时,我看到以下错误:

>>>  [DIF_REMOVE - ROOT\HIDCLASS\0000]
>>>  Section start 2012/04/01 20:52:22.237
      cmd: devcon.exe  remove HID\MyDriver
!!!  dvi: Default installer: failed!
!!!  dvi: Error 0xe0000231: The device cannot be disabled.
<<<  Section end 2012/04/01 20:52:22.252
<<<  [Exit status: FAILURE(0xe0000231)]

我在代码或 .inf 文件中是否缺少任何内容,以便可以卸载我的驱动程序?

4

2 回答 2

2

我不确定这是一个与 inf 相关的问题。错误 0xe0000231 表示 ERROR_NOT_DISABLEABLE。

使用时不能卸载。所以问题应该是禁用。

您是否定义了任何关闭/清理回调?

于 2012-04-03T17:13:47.517 回答
0

Windows 不允许您在设备运行时禁用子设备。卸载根设备的最简单方法是使用DiUninstallDevice.

参考:https ://docs.microsoft.com/en-us/windows-hardware/drivers/install/using-setupapi-to-uninstall-devices-and-driver-packages

于 2019-08-11T19:02:02.083 回答