Re[4]: route add как сделать программно?
От: Mikki  
Дата: 02.12.02 21:04
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Здравствуйте, Mikki, Вы писали:


V>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/categorical_listing.asp


За ссылку спасибо.

V>Тут надо внизу найти раздел Routing, там ссылки на функции:


V>CreateIpForwardEntry — это я как понял меня интересует


Но я побоялся сходу модифицировать routing table и как видно не зря.
Для начала попробовал получить её

void PASCAL ErrMsg()
{
LPVOID lpMsgBuf;

FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Display the string.
printf("%s\n",lpMsgBuf);
// Free the buffer.
LocalFree( lpMsgBuf );
return;
}

int main(int argc,char *argv[])
{
MIB_IPFORWARDTABLE IpForwardTable;
DWORD dwSize = sizeof(MIB_IPFORWARDTABLE);
DWORD rc;
rc=GetIpForwardTable(&IpForwardTable,&dwSize,FALSE);
switch (rc){
case NO_ERROR :
printf("Ok\n");
break;
case ERROR_INVALID_PARAMETER :
printf("INVALID_PARAMETER\n");
break;
case ERROR_INSUFFICIENT_BUFFER :
printf("ERROR_INSUFFICIENT_BUFFER %d\n",dwSize);
rc=GetIpForwardTable(&IpForwardTable,&dwSize,FALSE);
if (rc == 0)
printf("Ok\n");
else
ErrMsg();
break;
case ERROR_NOT_SUPPORTED :
printf("ERROR_NOT_SUPPORTED\n");
break;
default :
ErrMsg();
}
return 0;
}

Выдает следующее

ERROR_INSUFFICIENT_BUFFER 1580
The operation completed successfully.

Если не тяжело подскажи как с ним бороться.
Спасибо заранее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.