SetIpForwardEntry问题~
我想实现1个添加路由的功能,在windows XP上使用下面代码可以正常实现。但是在windows 7下面SetIpForwardEntry返回160
错误,不知道是哪个参数有问题导致的呢?有哪位大侠知道的,求解,说明!谢谢!
BOOL AddRoute(LPCSTR lpstrDestAdr, LPCSTR lpstrMask, LPCSTR lpstrGateway,DWORD dwflag)
{
if((!lpstrDestAdr)||(!lpstrMask)||(!lpstrGateway))
{
PutLog( "AddRoute 参数不合法,返回失败![%s][%s][%s][%d]", lpstrDestAdr, lpstrMask, lpstrGateway, dwflag);
return FALSE;
}
MIB_IPFORWARDROW m_ip;
memset(&m_ip,0,sizeof(MIB_IPFORWARDROW));
m_ip.dwForwardAge = 0xFFFFFFF;
m_ip.dwForwardDest = inet_addr(lpstrDestAdr);
m_ip.dwForwardMask = inet_addr(lpstrMask);
m_ip.dwForwardMetric1 = 1;
m_ip.dwForwardMetric2 = 0xFFFFFFFF;
m_ip.dwForwardMetric3 = 0xFFFFFFFF;
m_ip.dwForwardMetric4 = 0xFFFFFFFF;
m_ip.dwForwardMetric5 = 0xFFFFFFFF;
m_ip.dwForwardNextHop = inet_addr(lpstrGateway);
m_ip.dwForwardNextHopAS = NULL;
m_ip.dwForwardPolicy = NULL;
m_ip.dwForwardProto = MIB_IPPROTO_NETMGMT;
m_ip.dwForwardType = 3;
m_ip.dwForwardIfIndex = 12;
DWORD dwErr = SetIpForwardEntry(&m_ip);
if(0 != dwErr)
{
PutLog( "调用SetIpForwardEntry返回【%ld】!", dwErr );
return FALSE;
}
return TRUE;
}