0
Я пытался настроить TUN-TAP устройство в Windows, используя этот пример кода (все драйвера уже установлены правильно): http://www.varsanofiev.com/inside/TunTest.csкран окна установить TUN MTU
IntPtr ptr = CreateFile(UsermodeDeviceSpace + this.devGuid + ".tap", FileAccess.ReadWrite,
FileShare.ReadWrite, 0, FileMode.Open, FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_OVERLAPPED, IntPtr.Zero);
int len;
IntPtr pstatus = Marshal.AllocHGlobal(4);
Marshal.WriteInt32(pstatus, 1);
DeviceIoControl(ptr, TAP_CONTROL_CODE(6, METHOD_BUFFERED) /* TAP_IOCTL_SET_MEDIA_STATUS */, pstatus, 4,
pstatus, 4, out len, IntPtr.Zero);
IntPtr ptun = Marshal.AllocHGlobal(12);
Console.WriteLine("MTU? {0}",Marshal.ReadInt32(ptun, 12).ToString("X"));
Marshal.WriteInt32(ptun, 0, 0x0100030a);
Marshal.WriteInt32(ptun, 4, 0x0000030a);
Marshal.WriteInt32(ptun, 8, unchecked((int)0x00ffffff));
Marshal.WriteInt32(ptun, 12, 0x00000809); //MTU????
DeviceIoControl(ptr, TAP_CONTROL_CODE(10, METHOD_BUFFERED) /* TAP_IOCTL_CONFIG_TUN */, ptun, 12,
ptun, 12, out len, IntPtr.Zero);
//Console.WriteLine(ptr);
// SetMTU(this.TUN_MTU);
Tap = new FileStream(ptr, FileAccess.ReadWrite, true, TUNBufferLen, true);
Есть ли способ установить TUN MTU? Я не мог найти ничего об этом в C#.
спасибо.