GetIfEntry()是取一个特定Index接口的信息。
GetIfTable() 是取本机所有接口的信息。
调用了后者当然不用再调用前者了。
一般地,不考虑速度,调用这种需要未知缓冲区大小的函数是这样作的:
PMIB_IFTABLE pIf = NULL;
DWORD dwIfBufSize = 0;
BOOL bRet;
bRet = ::GetIfTable( pIf, &dwIfBufSize, TRUE );
if ( bRet == ERROR_INSUFFICIENT_BUFFER )
{
if( pIf != NULL )
delete[] pIf;
pIf = ( MIB_IFTABLE * ) new char[dwIfBufSize];
bRet = ::GetIfTable( pIf, &dwIfBufSize, TRUE );
}
.........................