启用&禁用设备
我正在尝试禁用然后启用 USB 设备 - 就像您在设备管理器中所做的那样。 我尝试过使用 devcon.exe,除了设备已经或正在使用时之外,它运行良好。 在这种情况下,它会告诉我重新启动系统后该设备将被禁用。 我不想重启系统!! 随后我的问题是:是否可以强制禁用 USB 设备或伪造重新启动(也许通过重新启动一些服务)。
感谢您的帮助 约翰
I am trying to disable then enable a usb device - like you can do in device manager.
I have tried using devcon.exe and it works perfectly, apart from when the device has been or is being used.
Under these circumstances it will tell me that the device will be disabled after restarting the system.
I don’t want the system to be restarted!!
Subsequently my question is: is it possible to force the disabling of a usb device or fake the reboot (maybe by restarting a number of services).
Thanks for your help
John
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
以下是一些可以修改以满足您的需求的代码。
我在 MSDN 上找到了这个:
http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/09912cee-4d2d-4efd-82a0-da20024b868b/
Here is some code that can be modified to accommodate your needs.
I found this on MSDN at:
http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/09912cee-4d2d-4efd-82a0-da20024b868b/
设备管理器和 devcon.exe 使用的函数是
SetupDiChangeState
。但看来您的问题与正在使用的设备有关,而不是与禁用它的详细信息有关。有像 oh.exe(列出打开句柄)这样的工具可以帮助找出需要关闭哪些应用程序,它们是通过将未记录的标志传递给
NtQueryInformationProcess
。The function used by device manager and devcon.exe is
SetupDiChangeState
.But it seems like your problem is related to the device being in-use more than the details of disabling it. There are tools like
oh.exe
(List Open Handles) that could help find out what applications need to be closed, they are implemented by passing undocumented flags toNtQueryInformationProcess
.您可能想尝试更简单的解决方法:设备管理 Powershell cmdlet。
微软在这里有一个很好的描述:https://gallery.technet.microsoft.com/Device-管理-7fad2388
易于设置模块并使用公开的 cmdlet。
Get-Device cmdlet 告诉您有关设备状态的信息。
Enable-Device 和 Disable-Device 是一个线性 cmdlet,用于启用/禁用任何 (USB) 设备。
You might want to try an easier work around : Device Management Powershell cmdlets.
Microsoft has an excellent description here : https://gallery.technet.microsoft.com/Device-Management-7fad2388
Easy to setup the module and work with the exposed cmdlets.
Get-Device cmdlet tells you about device state.
Enable-Device and Disable-Device are one liner cmdlets to enable/disable any (USB) device.