在设备管理器中重置设备

时间:2010-11-01 07:43:00

标签: windows delphi winapi device-driver hardware-acceleration

我正在寻找关于如何重启任何允许在设备管理器中启用/禁用的设备的编程API,

,例如音频设备和网络适配器

2 个答案:

答案 0 :(得分:4)

您必须使用SetupApi / ConfigManager API。但请注意,在x64下你是app。必须也是x64启用/禁用设备(所以你现在不能直接在Delphi中做到 - 首先我认为这是x64下x86-app的文件/注册表重定向的问题,但它没有帮助)。设备枚举工作正常。在MSDN的一篇文章中有一些关于它的东西,但我现在找不到它。我在x64操作系统下为启用/禁用设备制作了FP / Lazarus x64应用程序。

您可以下载WDK并查找DevCon(C:\ WinDDK \ 7600.16385.1 \ src \ setup \ devcon)的源代码。在cmds.cpp中有功能ControlCallback,它使用SetupApi启用/禁用设备。但首先需要枚举设备类(通过GUID或ClassName),然后枚举设备实例或按DeviceInstanceId字符串打开设备。它在C中,但应该很容易学习如何使用该API。

不确定你在做什么,但也许使用devcon.exe会更容易(不知道许可是否允许)并通过它启用/禁用设备?

答案 1 :(得分:0)

我没有使用它的经验,但我认为您可以使用DeviceIoControl API。