//Получаем Таблицу маршрутизации. static IPForwardTable ReadIPForwardTable(IntPtr tablePtr) { var result = (IPForwardTable)Marshal.PtrToStructure(tablePtr, typeof(IPForwardTable)); IPFORWARDROW[] table = new IPFORWARDROW[result.Size]; IntPtr p = new IntPtr(tablePtr.ToInt64() + Marshal.SizeOf(result.Size)); for (int i = 0; i < result.Size; ++i) { table[i] = (IPFORWARDROW)Marshal.PtrToStructure(p, typeof(IPFORWARDROW)); p = new IntPtr(p.ToInt64() + Marshal.SizeOf(typeof(IPFORWARDROW))); } result.Table = table; return(result); }
public static extern uint GetBestRoute( uint dwDestAddr, uint dwSourceAddr, out IPFORWARDROW pBestRoute);
private static extern int SetIpForwardEntry(IPFORWARDROW pRoute);