Changeset 83805 in vbox for trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools
- Timestamp:
- Apr 18, 2020 11:08:25 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 137331
- Location:
- trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpInstall.cpp
r82968 r83805 71 71 { 72 72 WCHAR wsz[512]; 73 DWORD cch = GetModuleFileNameW(GetModuleHandle(NULL), &wsz[0], sizeof(wsz) / sizeof(wsz[0]));73 DWORD cch = GetModuleFileNameW(GetModuleHandle(NULL), &wsz[0], RT_ELEMENTS(wsz)); 74 74 if (cch > 0) 75 75 { … … 107 107 108 108 WCHAR wszInfFile[MAX_PATH]; 109 DWORD cwcInfFile = MyGetfullPathNameW(VBOX_NETADP_INF, sizeof(wszInfFile) / sizeof(wszInfFile[0]), wszInfFile);109 DWORD cwcInfFile = MyGetfullPathNameW(VBOX_NETADP_INF, RT_ELEMENTS(wszInfFile), wszInfFile); 110 110 if (cwcInfFile > 0) 111 111 { … … 119 119 120 120 if (hr == S_OK) 121 {122 121 wprintf(L"installed successfully\n"); 123 }124 122 else 125 { 126 wprintf(L"error installing VBoxNetAdp (0x%x)\n", hr); 127 } 123 wprintf(L"error installing VBoxNetAdp (%#lx)\n", hr); 128 124 129 125 VBoxNetCfgWinReleaseINetCfg(pnc, TRUE); 130 126 } 131 127 else 132 wprintf(L"VBoxNetCfgWinQueryINetCfg failed: hr = 0x%x\n", hr);128 wprintf(L"VBoxNetCfgWinQueryINetCfg failed: hr=%#lx\n", hr); 133 129 /* 134 130 hr = VBoxDrvCfgInfInstall(MpInf); … … 151 147 hr = VBoxNetCfgWinEnableStaticIpConfig(&guid, ip, mask); 152 148 if (SUCCEEDED(hr)) 153 {154 149 printf("installation successful\n"); 155 }156 150 else 157 printf("VBoxNetCfgWinEnableStaticIpConfig failed: hr = 0x%x\n", hr);151 printf("VBoxNetCfgWinEnableStaticIpConfig failed: hr=%#lx\n", hr); 158 152 } 159 153 else 160 printf("VBoxNetCfgWinGenHostOnlyNetworkNetworkIp failed: hr = 0x%x\n", hr);154 printf("VBoxNetCfgWinGenHostOnlyNetworkNetworkIp failed: hr=%#lx\n", hr); 161 155 } 162 156 else 163 printf("VBoxNetCfgWinCreateHostOnlyNetworkInterface failed: hr = 0x%x\n", hr);157 printf("VBoxNetCfgWinCreateHostOnlyNetworkInterface failed: hr=%#lx\n", hr); 164 158 */ 165 159 } … … 167 161 { 168 162 DWORD dwErr = GetLastError(); 169 wprintf(L"GetFullPathNameW failed: winEr = % d\n", dwErr);163 wprintf(L"GetFullPathNameW failed: winEr = %lu\n", dwErr); 170 164 hr = HRESULT_FROM_WIN32(dwErr); 171 165 } … … 173 167 } 174 168 else 175 wprintf(L"Error initializing COM ( 0x%x)\n", hr);176 177 VBoxNetCfgWinSetLogging(NULL); 178 179 return SUCCEEDED(hr) ? 0 : 1;169 wprintf(L"Error initializing COM (%#lx)\n", hr); 170 171 VBoxNetCfgWinSetLogging(NULL); 172 173 return SUCCEEDED(hr) ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; 180 174 } 181 175 … … 194 188 hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, L"Net", VBOX_NETADP_HWID, 0/* could be SUOI_FORCEDELETE */); 195 189 if (SUCCEEDED(hr)) 196 {197 190 printf("uninstallation successful\n"); 198 }199 191 else 200 192 printf("uninstalled successfully, but failed to remove infs\n"); 201 193 } 202 194 else 203 printf("uninstall failed, hr = 0x%x\n", hr);204 CoUninitialize(); 205 } 206 else 207 printf("Error initializing COM ( 0x%x)\n", hr);208 209 VBoxNetCfgWinSetLogging(NULL); 210 211 return SUCCEEDED(hr) ? 0 : 1;195 printf("uninstall failed, hr=%#lx\n", hr); 196 CoUninitialize(); 197 } 198 else 199 printf("Error initializing COM (%#lx)\n", hr); 200 201 VBoxNetCfgWinSetLogging(NULL); 202 203 return SUCCEEDED(hr) ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; 212 204 } 213 205 … … 237 229 } 238 230 else 239 printf("update failed, hr = 0x%x\n", hr);240 241 CoUninitialize(); 242 } 243 else 244 printf("Error initializing COM ( 0x%x)\n", hr);245 246 VBoxNetCfgWinSetLogging(NULL); 247 248 return SUCCEEDED(hr) ? 0 : 1;231 printf("update failed, hr=%#lx\n", hr); 232 233 CoUninitialize(); 234 } 235 else 236 printf("Error initializing COM (%#lx)\n", hr); 237 238 VBoxNetCfgWinSetLogging(NULL); 239 240 return SUCCEEDED(hr) ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; 249 241 } 250 242 … … 260 252 hr = VBoxNetCfgWinPropChangeAllNetDevicesOfId(VBOX_NETADP_HWID, VBOXNECTFGWINPROPCHANGE_TYPE_DISABLE); 261 253 if (SUCCEEDED(hr)) 262 {263 254 printf("disabling successful\n"); 264 } 265 else 266 printf("disable failed, hr = 0x%x\n", hr); 267 268 CoUninitialize(); 269 } 270 else 271 printf("Error initializing COM (0x%x)\n", hr); 272 273 VBoxNetCfgWinSetLogging(NULL); 274 275 return SUCCEEDED(hr) ? 0 : 1; 255 else 256 printf("disable failed, hr=%#lx\n", hr); 257 258 CoUninitialize(); 259 } 260 else 261 printf("Error initializing COM (%#lx)\n", hr); 262 263 VBoxNetCfgWinSetLogging(NULL); 264 265 return SUCCEEDED(hr) ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; 276 266 } 277 267 … … 287 277 hr = VBoxNetCfgWinPropChangeAllNetDevicesOfId(VBOX_NETADP_HWID, VBOXNECTFGWINPROPCHANGE_TYPE_ENABLE); 288 278 if (SUCCEEDED(hr)) 289 {290 279 printf("enabling successful\n"); 291 } 292 else 293 printf("enabling failed, hr = 0x%x\n", hr); 294 295 CoUninitialize(); 296 } 297 else 298 printf("Error initializing COM (0x%x)\n", hr); 299 300 VBoxNetCfgWinSetLogging(NULL); 301 302 return SUCCEEDED(hr) ? 0 : 1; 280 else 281 printf("enabling failed, hr=%#lx\n", hr); 282 283 CoUninitialize(); 284 } 285 else 286 printf("Error initializing COM (%#lx)\n", hr); 287 288 VBoxNetCfgWinSetLogging(NULL); 289 290 return SUCCEEDED(hr) ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; 303 291 } 304 292 … … 323 311 { 324 312 printUsage(); 325 return 1;313 return RTEXITCODE_SYNTAX; 326 314 } 327 315 … … 338 326 339 327 printUsage(); 340 return !strcmp(argv[1], "h") ;341 } 328 return !strcmp(argv[1], "h") ? RTEXITCODE_SUCCESS : RTEXITCODE_SYNTAX; 329 } -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpUninstall.cpp
r82968 r83805 32 32 33 33 #ifdef NDIS60 34 # define VBOX_NETADP_HWID L"sun_VBoxNetAdp6"35 #else /* !NDIS60 */36 # define VBOX_NETADP_HWID L"sun_VBoxNetAdp"37 #endif /* !NDIS60 */34 # define VBOX_NETADP_HWID L"sun_VBoxNetAdp6" 35 #else 36 # define VBOX_NETADP_HWID L"sun_VBoxNetAdp" 37 #endif 38 38 39 static VOID winNetCfgLogger 39 static VOID winNetCfgLogger(LPCSTR szString) 40 40 { 41 41 printf("%s", szString); 42 42 } 43 43 44 static int VBoxNetAdpUninstall( )44 static int VBoxNetAdpUninstall(void) 45 45 { 46 int r = 1;46 int rcExit = RTEXITCODE_FAILURE; 47 47 VBoxNetCfgWinSetLogging(winNetCfgLogger); 48 48 … … 57 57 hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, L"Net", VBOX_NETADP_HWID, 0/* could be SUOI_FORCEDELETE */); 58 58 if (hr == S_OK) 59 {60 59 printf("uninstalled successfully\n"); 61 }62 60 else 63 {64 61 printf("uninstalled successfully, but failed to remove infs\n"); 65 } 66 r = 0; 62 rcExit = RTEXITCODE_SUCCESS; 67 63 } 68 64 else 69 { 70 printf("uninstall failed, hr = 0x%x\n", hr); 71 } 65 printf("uninstall failed, hr=%#lx\n", hr); 72 66 73 67 CoUninitialize(); 74 68 } 75 69 else 76 { 77 wprintf(L"Error initializing COM (0x%x)\n", hr); 78 } 70 wprintf(L"Error initializing COM (%#lx)\n", hr); 79 71 80 72 VBoxNetCfgWinSetLogging(NULL); 81 73 82 return r ;74 return rcExit; 83 75 } 84 76 -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetFltInstall.cpp
r82968 r83805 36 36 37 37 38 static VOID winNetCfgLogger 38 static VOID winNetCfgLogger(LPCSTR szString) 39 39 { 40 40 printf("%s", szString); … … 58 58 { 59 59 WCHAR wsz[512]; 60 DWORD cch = GetModuleFileNameW(GetModuleHandle(NULL), &wsz[0], sizeof(wsz) / sizeof(wsz[0]));60 DWORD cch = GetModuleFileNameW(GetModuleHandle(NULL), &wsz[0], RT_ELEMENTS(wsz)); 61 61 if (cch > 0) 62 62 { … … 64 64 cch--; 65 65 unsigned i = 0; 66 while (cch < sizeof(wsz) / sizeof(wsz[0]))66 while (cch < RT_ELEMENTS(wsz)) 67 67 { 68 68 wsz[cch] = pwszFilePart[i++]; … … 85 85 static int VBoxNetFltInstall() 86 86 { 87 WCHAR PtInf[MAX_PATH];88 WCHAR MpInf[MAX_PATH];87 WCHAR wszPtInf[MAX_PATH]; 88 WCHAR wszMpInf[MAX_PATH]; 89 89 INetCfg *pnc; 90 LPWSTR lpszLockedBy = NULL; 91 int r = 1; 90 int rcExit = RTEXITCODE_FAILURE; 92 91 93 92 VBoxNetCfgWinSetLogging(winNetCfgLogger); … … 96 95 if (hr == S_OK) 97 96 { 98 int i = 0; 99 do 97 for (int i = 0;; i++) 100 98 { 101 hr = VBoxNetCfgWinQueryINetCfg(&pnc, TRUE, VBOX_NETCFG_APP_NAME, 10000, &lpszLockedBy); 99 LPWSTR pwszLockedBy = NULL; 100 hr = VBoxNetCfgWinQueryINetCfg(&pnc, TRUE, VBOX_NETCFG_APP_NAME, 10000, &pwszLockedBy); 102 101 if (hr == S_OK) 103 102 { 104 103 DWORD dwSize; 105 dwSize = MyGetfullPathNameW(VBOX_NETFLT_PT_INF, sizeof(PtInf)/sizeof(PtInf[0]),PtInf);104 dwSize = MyGetfullPathNameW(VBOX_NETFLT_PT_INF, RT_ELEMENTS(wszPtInf), wszPtInf); 106 105 if (dwSize > 0) 107 106 { 108 /** @todo add size check for ( sizeof(PtInf)/sizeof(PtInf[0])) == dwSize (string length in sizeof(PtInf[0])) */107 /** @todo add size check for (RT_ELEMENTS(wszPtInf) == dwSize (string length in WCHARs) */ 109 108 110 dwSize = MyGetfullPathNameW(VBOX_NETFLT_MP_INF, sizeof(MpInf)/sizeof(MpInf[0]),MpInf);109 dwSize = MyGetfullPathNameW(VBOX_NETFLT_MP_INF, RT_ELEMENTS(wszMpInf), wszMpInf); 111 110 if (dwSize > 0) 112 111 { 113 /** @todo add size check for ( sizeof(MpInf)/sizeof(MpInf[0])) == dwSize (string length in sizeof(MpInf[0])) */112 /** @todo add size check for (RT_ELEMENTS(wszMpInf) == dwSize (string length in WHCARs) */ 114 113 115 LPCWSTR a Infs[] = {PtInf, MpInf};116 hr = VBoxNetCfgWinNetFltInstall(pnc, a Infs, 2);114 LPCWSTR apwszInfs[] = { wszPtInf, wszMpInf }; 115 hr = VBoxNetCfgWinNetFltInstall(pnc, apwszInfs, 2); 117 116 if (hr == S_OK) 118 117 { 119 118 wprintf(L"installed successfully\n"); 120 r = 0;119 rcExit = RTEXITCODE_SUCCESS; 121 120 } 122 121 else 123 { 124 wprintf(L"error installing VBoxNetFlt (0x%x)\n", hr); 125 } 122 wprintf(L"error installing VBoxNetFlt (%#lx)\n", hr); 126 123 } 127 124 else 128 125 { 129 126 hr = HRESULT_FROM_WIN32(GetLastError()); 130 wprintf(L"error getting full inf path for VBoxNetFltM.inf ( 0x%x)\n", hr);127 wprintf(L"error getting full inf path for VBoxNetFltM.inf (%#lx)\n", hr); 131 128 } 132 129 } … … 134 131 { 135 132 hr = HRESULT_FROM_WIN32(GetLastError()); 136 wprintf(L"error getting full inf path for VBoxNetFlt.inf ( 0x%x)\n", hr);133 wprintf(L"error getting full inf path for VBoxNetFlt.inf (%#lx)\n", hr); 137 134 } 138 139 135 140 136 VBoxNetCfgWinReleaseINetCfg(pnc, TRUE); 141 137 break; 142 138 } 143 else if (hr == NETCFG_E_NO_WRITE_LOCK && lpszLockedBy) 139 140 if (hr == NETCFG_E_NO_WRITE_LOCK && pwszLockedBy) 144 141 { 145 if (i < VBOX_NETFLT_RETRIES && !wcscmp( lpszLockedBy, L"6to4svc.dll"))142 if (i < VBOX_NETFLT_RETRIES && !wcscmp(pwszLockedBy, L"6to4svc.dll")) 146 143 { 147 wprintf(L"6to4svc.dll is holding the lock, retrying %d out of %d\n", ++i, VBOX_NETFLT_RETRIES);148 CoTaskMemFree( lpszLockedBy);144 wprintf(L"6to4svc.dll is holding the lock, retrying %d out of %d\n", i + 1, VBOX_NETFLT_RETRIES); 145 CoTaskMemFree(pwszLockedBy); 149 146 } 150 147 else 151 148 { 152 wprintf(L"Error: write lock is owned by another application (%s), close the application and retry installing\n", lpszLockedBy); 153 r = 1; 154 CoTaskMemFree(lpszLockedBy); 149 wprintf(L"Error: write lock is owned by another application (%s), close the application and retry installing\n", pwszLockedBy); 150 CoTaskMemFree(pwszLockedBy); 155 151 break; 156 152 } … … 158 154 else 159 155 { 160 wprintf(L"Error getting the INetCfg interface (0x%x)\n", hr); 161 r = 1; 156 wprintf(L"Error getting the INetCfg interface (%#lx)\n", hr); 162 157 break; 163 158 } 164 } while (true);159 } 165 160 166 161 CoUninitialize(); 167 162 } 168 163 else 169 { 170 wprintf(L"Error initializing COM (0x%x)\n", hr); 171 r = 1; 172 } 164 wprintf(L"Error initializing COM (%#lx)\n", hr); 173 165 174 166 VBoxNetCfgWinSetLogging(NULL); 175 167 176 return r ;168 return rcExit; 177 169 } 178 170 -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetFltUninstall.cpp
r82968 r83805 34 34 #define VBOX_NETFLT_RETRIES 10 35 35 36 static VOID winNetCfgLogger 36 static VOID winNetCfgLogger(LPCSTR szString) 37 37 { 38 38 printf("%s", szString); … … 42 42 { 43 43 INetCfg *pnc; 44 LPWSTR lpszLockedBy = NULL; 45 int r; 44 int rcExit = RTEXITCODE_FAILURE; 46 45 47 46 VBoxNetCfgWinSetLogging(winNetCfgLogger); … … 50 49 if (hr == S_OK) 51 50 { 52 int i = 0; 53 do 51 for (int i = 0;; i++) 54 52 { 55 hr = VBoxNetCfgWinQueryINetCfg(&pnc, TRUE, VBOX_NETCFG_APP_NAME, 10000, &lpszLockedBy); 53 LPWSTR pwszLockedBy = NULL; 54 hr = VBoxNetCfgWinQueryINetCfg(&pnc, TRUE, VBOX_NETCFG_APP_NAME, 10000, &pwszLockedBy); 56 55 if (hr == S_OK) 57 56 { 58 57 hr = VBoxNetCfgWinNetFltUninstall(pnc); 59 58 if (hr != S_OK && hr != S_FALSE) 60 { 61 wprintf(L"error uninstalling VBoxNetFlt (0x%x)\n", hr); 62 r = 1; 63 } 59 wprintf(L"error uninstalling VBoxNetFlt (%#lx)\n", hr); 64 60 else 65 61 { 66 62 wprintf(L"uninstalled successfully\n"); 67 r = 0;63 rcExit = RTEXITCODE_SUCCESS; 68 64 } 69 65 … … 71 67 break; 72 68 } 73 else if (hr == NETCFG_E_NO_WRITE_LOCK && lpszLockedBy) 69 70 if (hr == NETCFG_E_NO_WRITE_LOCK && pwszLockedBy) 74 71 { 75 if (i < VBOX_NETFLT_RETRIES && !wcscmp( lpszLockedBy, L"6to4svc.dll"))72 if (i < VBOX_NETFLT_RETRIES && !wcscmp(pwszLockedBy, L"6to4svc.dll")) 76 73 { 77 wprintf(L"6to4svc.dll is holding the lock, retrying %d out of %d\n", ++i, VBOX_NETFLT_RETRIES);78 CoTaskMemFree( lpszLockedBy);74 wprintf(L"6to4svc.dll is holding the lock, retrying %d out of %d\n", i + 1, VBOX_NETFLT_RETRIES); 75 CoTaskMemFree(pwszLockedBy); 79 76 } 80 77 else 81 78 { 82 wprintf(L"Error: write lock is owned by another application (%s), close the application and retry uninstalling\n", lpszLockedBy);83 r = 1;84 CoTaskMemFree( lpszLockedBy);79 wprintf(L"Error: write lock is owned by another application (%s), close the application and retry uninstalling\n", 80 pwszLockedBy); 81 CoTaskMemFree(pwszLockedBy); 85 82 break; 86 83 } … … 88 85 else 89 86 { 90 wprintf(L"Error getting the INetCfg interface (0x%x)\n", hr); 91 r = 1; 87 wprintf(L"Error getting the INetCfg interface (%#lx)\n", hr); 92 88 break; 93 89 } 94 } while (true);90 } 95 91 96 92 CoUninitialize(); 97 93 } 98 94 else 99 { 100 wprintf(L"Error initializing COM (0x%x)\n", hr); 101 r = 1; 102 } 95 wprintf(L"Error initializing COM (%#lx)\n", hr); 103 96 104 97 VBoxNetCfgWinSetLogging(NULL); 105 98 106 return r ;99 return rcExit; 107 100 } 108 101 -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetLwfInstall.cpp
r82968 r83805 34 34 35 35 36 static VOID winNetCfgLogger (LPCSTRszString)36 static VOID winNetCfgLogger(LPCSTR pszString) 37 37 { 38 printf("%s", szString);38 printf("%s", pszString); 39 39 } 40 40 … … 56 56 { 57 57 WCHAR wsz[512]; 58 DWORD cch = GetModuleFileNameW(GetModuleHandle(NULL), &wsz[0], sizeof(wsz) / sizeof(wsz[0]));58 DWORD cch = GetModuleFileNameW(GetModuleHandle(NULL), &wsz[0], RT_ELEMENTS(wsz)); 59 59 if (cch > 0) 60 60 { … … 62 62 cch--; 63 63 unsigned i = 0; 64 while (cch < sizeof(wsz) / sizeof(wsz[0]))64 while (cch < RT_ELEMENTS(wsz)) 65 65 { 66 66 wsz[cch] = pwszFilePart[i++]; … … 83 83 static int VBoxNetLwfInstall() 84 84 { 85 WCHAR Inf[MAX_PATH];85 WCHAR wszInf[MAX_PATH]; 86 86 INetCfg *pnc; 87 LPWSTR lpszLockedBy = NULL; 88 int r = 1; 87 int rcExit = RTEXITCODE_FAILURE; 89 88 90 89 VBoxNetCfgWinSetLogging(winNetCfgLogger); … … 93 92 if (hr == S_OK) 94 93 { 95 int i = 0; 96 do 94 for (int i = 0;; i++) 97 95 { 98 hr = VBoxNetCfgWinQueryINetCfg(&pnc, TRUE, VBOX_NETCFG_APP_NAME, 10000, &lpszLockedBy); 96 LPWSTR pwszLockedBy = NULL; 97 hr = VBoxNetCfgWinQueryINetCfg(&pnc, TRUE, VBOX_NETCFG_APP_NAME, 10000, &pwszLockedBy); 99 98 if (hr == S_OK) 100 99 { 101 100 DWORD dwSize; 102 dwSize = MyGetfullPathNameW(VBOX_NETLWF_INF, sizeof(Inf)/sizeof(Inf[0]),Inf);101 dwSize = MyGetfullPathNameW(VBOX_NETLWF_INF, RT_ELEMENTS(wszInf), wszInf); 103 102 if (dwSize > 0) 104 103 { 105 /** @todo add size check for ( sizeof(Inf)/sizeof(Inf[0])) == dwSize (string length in sizeof(Inf[0])) */106 hr = VBoxNetCfgWinNetLwfInstall(pnc, Inf);104 /** @todo add size check for (RT_ELEMENTS(wszInf) == dwSize (string length in WCHARs) */ 105 hr = VBoxNetCfgWinNetLwfInstall(pnc, wszInf); 107 106 if (hr == S_OK) 108 107 { 109 108 wprintf(L"installed successfully\n"); 110 r = 0;109 rcExit = RTEXITCODE_SUCCESS; 111 110 } 112 111 else 113 { 114 wprintf(L"error installing VBoxNetLwf (0x%x)\n", hr); 115 } 112 wprintf(L"error installing VBoxNetLwf (%#lx)\n", hr); 116 113 } 117 114 else 118 115 { 119 116 hr = HRESULT_FROM_WIN32(GetLastError()); 120 wprintf(L"error getting full inf path for VBoxNetLwf.inf ( 0x%x)\n", hr);117 wprintf(L"error getting full inf path for VBoxNetLwf.inf (%#lx)\n", hr); 121 118 } 122 123 119 124 120 VBoxNetCfgWinReleaseINetCfg(pnc, TRUE); 125 121 break; 126 122 } 127 else if (hr == NETCFG_E_NO_WRITE_LOCK && lpszLockedBy) 123 124 if (hr == NETCFG_E_NO_WRITE_LOCK && pwszLockedBy) 128 125 { 129 if (i < VBOX_NETLWF_RETRIES && !wcscmp( lpszLockedBy, L"6to4svc.dll"))126 if (i < VBOX_NETLWF_RETRIES && !wcscmp(pwszLockedBy, L"6to4svc.dll")) 130 127 { 131 wprintf(L"6to4svc.dll is holding the lock, retrying %d out of %d\n", ++i, VBOX_NETLWF_RETRIES);132 CoTaskMemFree( lpszLockedBy);128 wprintf(L"6to4svc.dll is holding the lock, retrying %d out of %d\n", i + 1, VBOX_NETLWF_RETRIES); 129 CoTaskMemFree(pwszLockedBy); 133 130 } 134 131 else 135 132 { 136 wprintf(L"Error: write lock is owned by another application (%s), close the application and retry installing\n", lpszLockedBy);137 r = 1;138 CoTaskMemFree( lpszLockedBy);133 wprintf(L"Error: write lock is owned by another application (%s), close the application and retry installing\n", 134 pwszLockedBy); 135 CoTaskMemFree(pwszLockedBy); 139 136 break; 140 137 } … … 142 139 else 143 140 { 144 wprintf(L"Error getting the INetCfg interface (0x%x)\n", hr); 145 r = 1; 141 wprintf(L"Error getting the INetCfg interface (%#lx)\n", hr); 146 142 break; 147 143 } 148 } while (true);144 } 149 145 150 146 CoUninitialize(); 151 147 } 152 148 else 153 { 154 wprintf(L"Error initializing COM (0x%x)\n", hr); 155 r = 1; 156 } 149 wprintf(L"Error initializing COM (%#lx)\n", hr); 157 150 158 151 VBoxNetCfgWinSetLogging(NULL); 159 152 160 return r ;153 return rcExit; 161 154 } 162 155 -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetLwfUninstall.cpp
r82968 r83805 31 31 #define VBOX_NETLWF_RETRIES 10 32 32 33 static VOID winNetCfgLogger 33 static VOID winNetCfgLogger(LPCSTR szString) 34 34 { 35 35 printf("%s", szString); … … 39 39 { 40 40 INetCfg *pnc; 41 LPWSTR lpszLockedBy = NULL; 42 int r; 41 int rcExit = RTEXITCODE_FAILURE; 43 42 44 43 VBoxNetCfgWinSetLogging(winNetCfgLogger); … … 47 46 if (hr == S_OK) 48 47 { 49 int i = 0; 50 do 48 for (int i = 0;; i++) 51 49 { 52 hr = VBoxNetCfgWinQueryINetCfg(&pnc, TRUE, VBOX_NETCFG_APP_NAME, 10000, &lpszLockedBy); 50 LPWSTR pwszLockedBy = NULL; 51 hr = VBoxNetCfgWinQueryINetCfg(&pnc, TRUE, VBOX_NETCFG_APP_NAME, 10000, &pwszLockedBy); 53 52 if (hr == S_OK) 54 53 { 55 54 hr = VBoxNetCfgWinNetLwfUninstall(pnc); 56 if (hr != S_OK)55 if (hr == S_OK) 57 56 { 58 wprintf(L" error uninstalling VBoxNetLwf (0x%x)\n", hr);59 r = 1;57 wprintf(L"uninstalled successfully\n"); 58 rcExit = RTEXITCODE_SUCCESS; 60 59 } 61 60 else 62 { 63 wprintf(L"uninstalled successfully\n"); 64 r = 0; 65 } 61 wprintf(L"error uninstalling VBoxNetLwf (%#lx)\n", hr); 66 62 67 63 VBoxNetCfgWinReleaseINetCfg(pnc, TRUE); 68 64 break; 69 65 } 70 else if (hr == NETCFG_E_NO_WRITE_LOCK && lpszLockedBy) 66 67 if (hr == NETCFG_E_NO_WRITE_LOCK && pwszLockedBy) 71 68 { 72 if (i < VBOX_NETLWF_RETRIES && !wcscmp( lpszLockedBy, L"6to4svc.dll"))69 if (i < VBOX_NETLWF_RETRIES && !wcscmp(pwszLockedBy, L"6to4svc.dll")) 73 70 { 74 wprintf(L"6to4svc.dll is holding the lock, retrying %d out of %d\n", ++i, VBOX_NETLWF_RETRIES);75 CoTaskMemFree( lpszLockedBy);71 wprintf(L"6to4svc.dll is holding the lock, retrying %d out of %d\n", i + 1, VBOX_NETLWF_RETRIES); 72 CoTaskMemFree(pwszLockedBy); 76 73 } 77 74 else 78 75 { 79 wprintf(L"Error: write lock is owned by another application (%s), close the application and retry uninstalling\n", lpszLockedBy);80 r = 1;81 CoTaskMemFree( lpszLockedBy);76 wprintf(L"Error: write lock is owned by another application (%s), close the application and retry uninstalling\n", 77 pwszLockedBy); 78 CoTaskMemFree(pwszLockedBy); 82 79 break; 83 80 } … … 85 82 else 86 83 { 87 wprintf(L"Error getting the INetCfg interface (0x%x)\n", hr); 88 r = 1; 84 wprintf(L"Error getting the INetCfg interface (%#lx)\n", hr); 89 85 break; 90 86 } 91 } while (true);87 } 92 88 93 89 CoUninitialize(); 94 90 } 95 91 else 96 { 97 wprintf(L"Error initializing COM (0x%x)\n", hr); 98 r = 1; 99 } 92 wprintf(L"Error initializing COM (%#lx)\n", hr); 100 93 101 94 VBoxNetCfgWinSetLogging(NULL); 102 95 103 return r ;96 return rcExit; 104 97 } 105 98
Note:
See TracChangeset
for help on using the changeset viewer.