-1

我枚举了支持 RAS 的设备"RasEnumDevices",我得到了 DeviceName等"Communications cable between two computers #8""Communications cable between two computers #7"我的设备友好名称看起来不同"USB Device (COM10)",我通过了SetupDiGetDeviceRegistryProperty

这是正常的行为吗?因为当我尝试创建 Rasphonebook 时,我无法识别我连接的设备名称。有没有办法使设备名称和友好名称相同?

我尝试枚举"RasEnumDevices",但正在获取设备列表。

WAN Miniport (L2TP)
WAN Miniport (L2TP)
WAN Miniport (PPTP)
WAN Miniport (PPTP)
WAN Miniport (PPPOE)
Communications cable between two computers #14
Communications cable between two computers #13

如何从以上列表中选择我的设备?

或仅可用于列出连接的 RAS 设备的任何 API?

或任何 APIS 仅获取连接的设备名称?就我而言,例如“两台计算机之间的通信电缆#8”..

更新 :

RAS 设备

在上图中,我可以看到带有 COM 端口名称的 RAS 设备名称。有没有办法用 COM 端口名称枚举这些设备?

4

1 回答 1

1

不幸的是,您从 RasEnumDevices 看到的结果正是预期的结果。没有办法直接将 RASDEVINFO 结构与实际硬件或分配给它的端口联系起来,因为该结构实际​​上并没有为您提供任何唯一标识硬件的方法。

假设您有两个 PPTP VPN 端口,您无法区分端口 1 和端口 2……它们都会从 API 调用返回为“WAN Miniport (PPTP)”。

顺便说一句,如果您不想自己处理互操作代码,您可能需要查看 CodePlex 上的 DotRas SDK,它几乎包含了整个 RAS API。

using DotRas;

IEnumerable<RasDevice> devices = RasDevice.GetDevices();

这就是您使用上述 SDK 获取从 RasEnumDevices 列出的设备的调用。

如果你想要的话,这里有一个链接:http: //dotras.codeplex.com

编辑:我想补充一下,您的电话簿条目只需要具有“两台计算机之间的通信电缆#14”的名称,因为它知道它与哪个 COM 端口相关联。您不需要自己识别,如果您将 COM 端口信息附加到设备名称,该条目也不会起作用。

祝你好运!

于 2012-07-05T23:16:52.217 回答