hresult от IMbnInterfaceManager::GetInterfaces, когда устройства 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) в MbnApi.IMbnInterfaceManager.GetInterfaces() в foo.Program.configureConnection() в foo}
Вопрос Что нужно сделать, чтобы проверить интерфейс MBN перед вызовом GetInterfaces? Я могу просто поймать это исключение, но не могу найти документацию, в которой говорится, что это исключение равнозначно отсутствию интерфейсов.
Самая близкая вещь, которую я нашел в statckoverflow - это борьба с мобильными широкополосными api windows 7 и windows 8 с C#, не уверенным, что устанавливать, что подразумевает, что, возможно, windows 7 ведет себя иначе, чем windows 8.1.
1 ответ
Я получил то же самое Element not found
Исключение при попытке использовать GetSignalStrength() и MbnInterfaceManager Я обнаружил, что вместо этого вы можете получить много полезной информации с помощью WMI. Пожалуйста, посмотрите ответ здесь, используя SELECT * FROM Win32_PerfRawData_Tcpip_NetworkInterface
:
борется с мобильными широкополосными API Windows 7 и Windows 8 с C#, не уверен, что установить
ОБНОВИТЬ:
Обратите внимание, что я обнаружил, что вы не можете получить информацию о сети в Windows 8.1 так же, как в Windows 7. См. Как установить приложение, которому требуются возможности WMI в Windows 8.1 для определения доступной пропускной способности? и https://code.msdn.microsoft.com/windowsapps/network-information-sample-63aaa201