我为虚拟设备编写了相当简单的第一个驱动程序。它还有一个.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文件中是否有任何遗漏,以便我的驱动程序可以卸载?
答案 0 :(得分:2)
我不确定这是一个与inf相关的问题。错误0xe0000231表示ERROR_NOT_DISABLEABLE。
使用时无法卸载。所以问题应该是禁用。
您是否定义了任何关闭/清除回调?
答案 1 :(得分:0)
Windows不允许您禁用正在运行的子设备的设备。卸载根设备的最简单方法是使用DiUninstallDevice
。