Здравствуйте.
Написал функцию, с помощью которой можно узнать подключен ли сетевой кабель:
bool IsPluged(int Index)
{
MIB_IFROW iface;
ZeroMemory(&iface, sizeof(iface));
iface.dwIndex = Index;
DWORD dwRet;
dwRet = GetIfEntry(&iface);
if(dwRet==NO_ERROR)
{
if(iface.dwOperStatus==MIB_IF_OPER_STATUS_NON_OPERATIONAL) return false;
if(iface.dwOperStatus==MIB_IF_OPER_STATUS_OPERATIONAL) return true;
}
return false;
}
где Index значение полуенное при помощи GetAdaptersInfo.
Функция работает на большинстве машин, но на некоторых выдаёт iface.dwOperStatus равным MIB_IF_OPER_STATUS_UNREACHABLE. Причём не важно вставлен сетевой кабель или нет.
Подскажите что нужно доработать в этой функции, что бы достоверно определять подключение сетевого кабеля.
Может есть совершенно другой способ?..