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

时间:2008-12-19 13:38:03

标签: c++ c winapi networking windows-xp-embedded

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我必须仔细检查,但我认为这可能是在某个地方的注册表......我会回到这个。

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

可能有所帮助。

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

EDIT 这也可能有所帮助:

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

具体为: HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards \

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

答案 2 :(得分:0)

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

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

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