Browse Source

Because Windows.

Adam Ierymenko 10 years ago
parent
commit
6f46f0e0e1
1 changed files with 8 additions and 4 deletions
  1. 8 4
      osdep/WindowsEthernetTap.cpp

+ 8 - 4
osdep/WindowsEthernetTap.cpp

@@ -871,15 +871,19 @@ void WindowsEthernetTap::threadMain()
 
 
 	try {
 	try {
 		while (_run) {
 		while (_run) {
+			// Because Windows
+			setPersistentTapDeviceState(_deviceInstanceId.c_str(),false);
+			Sleep(500);
+			setPersistentTapDeviceState(_deviceInstanceId.c_str(),true);
+			Sleep(500);
+			setPersistentTapDeviceState(_deviceInstanceId.c_str(),false);
+			Sleep(500);
 			setPersistentTapDeviceState(_deviceInstanceId.c_str(),true);
 			setPersistentTapDeviceState(_deviceInstanceId.c_str(),true);
 			Sleep(500);
 			Sleep(500);
 
 
 			_tap = CreateFileA(tapPath,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_SYSTEM|FILE_FLAG_OVERLAPPED,NULL);
 			_tap = CreateFileA(tapPath,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_SYSTEM|FILE_FLAG_OVERLAPPED,NULL);
 			if (_tap == INVALID_HANDLE_VALUE) {
 			if (_tap == INVALID_HANDLE_VALUE) {
-				setPersistentTapDeviceState(_deviceInstanceId.c_str(),false);
-				Sleep(500);
-				setPersistentTapDeviceState(_deviceInstanceId.c_str(),true);
-				Sleep(500);
+				Sleep(1000);
 				continue;
 				continue;
 			}
 			}