驱动程序的卸载按钮被禁用

时间:2012-04-01 14:14:23

标签: driver msdn inf device-manager wdf

我为虚拟设备编写了相当简单的第一个驱动程序。它还有一个.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文件中是否有任何遗漏,以便我的驱动程序可以卸载?

2 个答案:

答案 0 :(得分:2)

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

使用时无法卸载。所以问题应该是禁用。

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

答案 1 :(得分:0)

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

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