【发布时间】:2016-05-07 09:10:49
【问题描述】:
我找到了this article at SO,它告诉我们如何使用 SetupAPI 启用/禁用网络适配器。到目前为止,这工作正常。问题是我无法找到一种方法来获取已在 Windows XP 中禁用的网络连接(适配器)的设备索引。
我有:
- GUID 列表(来自 HKLM\SOFTWARE\Microsoft\Windows NT\Netcards)
- Win32_NetworkAadapter 中受 Windows XP 支持的所有内容
我试过没有成功:
- GetIfTable() - 禁用的适配器不在表中
- XP 不支持 Win32_NetworkAdapter::InterfaceIndex
- XP 不支持 Win32_NetworkAdapter::Enable()/Disable()
我还能做些什么来获取设备索引或重新启用已禁用的网络适配器?
【问题讨论】:
-
您是否浏览过 MSDN 上记录的 SetupAPI?您还执行了哪些其他 Google 搜索?
-
不幸的是,我对 SetupAPI 不是很熟悉,而且文档非常庞大。我搜索了很多,但大多数建议是 .NET 或脚本,或使用 XP 中不可用的功能。目前我正在考虑使用 SetupAPI 来枚举所有网络接口并找到与 Win32_NetowrkAdapert 中的信息匹配的内容。有什么建议吗?。
-
我刚刚搜索了“setupapi 获取网络适配器索引”,第一个结果是关于名为 how-to-get-network-adapter-index 的 SO。接受的答案使用 .Net NetworkInterface 和 C#。 XP 都支持 .NET 和 C#,对吧?
-
如标题中所述,我的问题是关于在 C++ 中执行此操作,而不是 C# 或 C# .NET。
-
C++ 可用于调用 .NET API,使用托管扩展。