嵌入式Windows XP中的网络接口设置

如何根据设备描述(即“设备属性 – >连接使用:”文本框中显示的字符串)获取网络接口名称(即出现在“网络连接”对话框中的名称)?

我们必须使用纯C / C ++语言,或通过一些标准命令行工具(例如netsh,ipconfig …)或两者的组合来实现。

由于部署问题,我们无法使用.NET API(应用程序必须在没有.NET Framework的情况下在嵌入式XP上运行)。

SDK API GetIfTable和GetIfEntry似乎很有希望,但在我们的系统上,所有MIB_IFROW字段都被正确填充,除了“wszName”字段,它仍然未初始化。

我能够通过注册表完成此操作。 使用提供IP_ADAPTER_INFO输出的GetAdaptersInfo()获取AdapterName字符串。 这应该是适配器的GUID。 对于(至少ipv4),在HKLM \ SYSTEM \ CurrentControlSet \ Control \ Network {4D36E972-E325-11CE-BFC1-08002BE10318} \ { INSERT GUID HERE } \ Connection下,值Name应包含“友好”网络名称。

我将不得不仔细检查,但我认为这可能是在某个地方的注册表…我会回到这个。

HKLM /系统/ CurrentControlSet /控制/网络

可能有帮助。

对不起,我没想到我的想法

编辑这可能也有帮助:

http://www.java2s.com/Tutorial/CSharp/0520__Windows/Getthenetworkdevicenamedeviceservicename.htm

具体来说:HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards \

我不知道这是否可以保证未来,或者不是“已批准”的方法,但它似乎有您需要的信息。

最好的办法是使用统称为“ IP Helper ”的Win32 API调用。 这将为您提供从CLI调用“ipconfig”时可以获得的所有相同信息。

特别是,我首先看一下“ GetAdaptersInfo ”函数。

当然,从Win32 API的这一部分开始,您可以使用纯C / C ++而无需解析外部实用程序的输出。