hresult from IMbnInterfaceManager::GetInterfaces when no MBN



我有以下代码在Windows 7中工作:

            MbnInterfaceManager mbnInfMgr = new MbnInterfaceManager();
            IMbnInterfaceManager mbnInfMgrInterface = mbnInfMgr as IMbnInterfaceManager;
            if (mbnInfMgrInterface != null)
            {
                IMbnInterface[] mobileInterfaces = mbnInfMgrInterface.GetInterfaces() as IMbnInterface[];
            }

当 MBN 设备存在时没有问题,但是当 MBN 设备不存在时,我在调用 GetInterfaces() 时出现以下异常:

{System.Runtime.InteropServices.COMException (0x80070490): 找不到元素。(HRESULT的例外:0x80070490) at MbnApi.IMbnInterfaceManager.GetInterfaces() 在福。Program.configureConnection() in foo}

问题在调用 GetInterfaces 之前,是否应该做一些事情来检查 MBN 接口? 我可以简单地捕获此异常,但我找不到任何文档说明此异常与没有接口相同。

我在statckoverflow上发现的最接近的东西是这个使用移动宽带 API Windows 7 和 Windows 8 与 C# 苦苦挣扎,不确定要安装什么这意味着Windows 7的行为可能与Windows 8.1不同。

我在尝试使用GetSignalStrength()和MbnInterfaceManager时遇到了相同的Element not found异常,而是发现您可以使用WMI获得很多有用的信息。 请使用SELECT * FROM Win32_PerfRawData_Tcpip_NetworkInterface在此处查看答案:

使用移动宽带 API Windows 7 和 Windows 8 与 C# 苦苦挣扎,不确定要安装什么

更新:

请注意,我发现您无法像在Windows 7中那样在Windows 8.1中获取网络信息。请参阅如何在 Windows 8.1 上安装需要 WMI 功能的应用程序以确定可用带宽?和 https://code.msdn.microsoft.com/windowsapps/network-information-sample-63aaa201

最新更新