- Timestamp:
- Aug 7, 2013 3:15:09 PM (11 years ago)
- Location:
- trunk/src/VBox/Runtime/r3
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r3/init.h
r46593 r47596 33 33 DECLHIDDEN(int) rtR3InitNativeFirst(uint32_t fFlags); 34 34 DECLHIDDEN(int) rtR3InitNativeFinal(uint32_t fFlags); 35 DECLHIDDEN(void) rtR3InitNativeObtrusive(); 36 37 #ifdef RT_OS_WINDOWS 38 /* 39 * Windows specific stuff. 40 */ 41 typedef enum RTR3WINLDRPROT 42 { 43 RTR3WINLDRPROT_INVALID = 0, 44 RTR3WINLDRPROT_NONE, 45 RTR3WINLDRPROT_NO_CWD, 46 RTR3WINLDRPROT_SAFE 47 } RTR3WINLDRPROT; 48 49 extern DECLHIDDEN(RTR3WINLDRPROT) g_enmWinLdrProt; 50 # ifdef _WINDEF_ 51 extern DECLHIDDEN(HMODULE) g_hModKernel32; 52 extern DECLHIDDEN(HMODULE) g_hModNtDll; 53 # endif 54 55 #endif /* RT_OS_WINDOWS */ 35 DECLHIDDEN(void) rtR3InitNativeObtrusive(void); 56 36 57 37 #endif -
trunk/src/VBox/Runtime/r3/win/RTSystemQueryOSInfo-win.cpp
r47011 r47596 28 28 * Header Files * 29 29 *******************************************************************************/ 30 #include "internal/iprt.h" 30 31 #include <Windows.h> 31 32 #include <WinUser.h> 32 33 34 #include "internal-r3-win.h" 33 35 #include <iprt/system.h> 34 36 #include <iprt/assert.h> … … 40 42 * Structures and Typedefs * 41 43 *******************************************************************************/ 42 /**43 * Windows OS type as determined by rtSystemWinOSType().44 */45 typedef enum RTWINOSTYPE46 {47 kRTWinOSType_UNKNOWN = 0,48 kRTWinOSType_9XFIRST = 1,49 kRTWinOSType_95 = kRTWinOSType_9XFIRST,50 kRTWinOSType_95SP1,51 kRTWinOSType_95OSR2,52 kRTWinOSType_98,53 kRTWinOSType_98SP1,54 kRTWinOSType_98SE,55 kRTWinOSType_ME,56 kRTWinOSType_9XLAST = 99,57 kRTWinOSType_NTFIRST = 100,58 kRTWinOSType_NT31 = kRTWinOSType_NTFIRST,59 kRTWinOSType_NT351,60 kRTWinOSType_NT4,61 kRTWinOSType_2K,62 kRTWinOSType_XP,63 kRTWinOSType_2003,64 kRTWinOSType_VISTA,65 kRTWinOSType_2008,66 kRTWinOSType_7,67 kRTWinOSType_8,68 kRTWinOSType_81,69 kRTWinOSType_NT_UNKNOWN = 199,70 kRTWinOSType_NT_LAST = kRTWinOSType_UNKNOWN71 } RTWINOSTYPE;72 44 73 45 /** … … 113 85 114 86 /** 115 * Translates OSVERSIONINOFEX into a Windows OS type.116 *117 * @returns The Windows OS type.118 * @param pOSInfoEx The OS info returned by Windows.119 *120 * @remarks This table has been assembled from Usenet postings, personal121 * observations, and reading other people's code. Please feel122 * free to add to it or correct it.123 * <pre>124 dwPlatFormID dwMajorVersion dwMinorVersion dwBuildNumber125 95 1 4 0 950126 95 SP1 1 4 0 >950 && <=1080127 95 OSR2 1 4 <10 >1080128 98 1 4 10 1998129 98 SP1 1 4 10 >1998 && <2183130 98 SE 1 4 10 >=2183131 ME 1 4 90 3000132 133 NT 3.51 2 3 51 1057134 NT 4 2 4 0 1381135 2000 2 5 0 2195136 XP 2 5 1 2600137 2003 2 5 2 3790138 Vista 2 6 0139 140 CE 1.0 3 1 0141 CE 2.0 3 2 0142 CE 2.1 3 2 1143 CE 3.0 3 3 0144 </pre>145 */146 static RTWINOSTYPE rtSystemWinOSType(OSVERSIONINFOEX const *pOSInfoEx)147 {148 RTWINOSTYPE enmVer = kRTWinOSType_UNKNOWN;149 BYTE const bProductType = pOSInfoEx->wProductType;150 DWORD const dwPlatformId = pOSInfoEx->dwPlatformId;151 DWORD const dwMinorVersion = pOSInfoEx->dwMinorVersion;152 DWORD const dwMajorVersion = pOSInfoEx->dwMajorVersion;153 DWORD const dwBuildNumber = pOSInfoEx->dwBuildNumber & 0xFFFF; /* Win 9x needs this. */154 155 if ( dwPlatformId == VER_PLATFORM_WIN32_WINDOWS156 && dwMajorVersion == 4)157 {158 if ( dwMinorVersion < 10159 && dwBuildNumber == 950)160 enmVer = kRTWinOSType_95;161 else if ( dwMinorVersion < 10162 && dwBuildNumber > 950163 && dwBuildNumber <= 1080)164 enmVer = kRTWinOSType_95SP1;165 else if ( dwMinorVersion < 10166 && dwBuildNumber > 1080)167 enmVer = kRTWinOSType_95OSR2;168 else if ( dwMinorVersion == 10169 && dwBuildNumber == 1998)170 enmVer = kRTWinOSType_98;171 else if ( dwMinorVersion == 10172 && dwBuildNumber > 1998173 && dwBuildNumber < 2183)174 enmVer = kRTWinOSType_98SP1;175 else if ( dwMinorVersion == 10176 && dwBuildNumber >= 2183)177 enmVer = kRTWinOSType_98SE;178 else if (dwMinorVersion == 90)179 enmVer = kRTWinOSType_ME;180 }181 else if (dwPlatformId == VER_PLATFORM_WIN32_NT)182 {183 if ( dwMajorVersion == 3184 && dwMinorVersion == 51)185 enmVer = kRTWinOSType_NT351;186 else if ( dwMajorVersion == 4187 && dwMinorVersion == 0)188 enmVer = kRTWinOSType_NT4;189 else if ( dwMajorVersion == 5190 && dwMinorVersion == 0)191 enmVer = kRTWinOSType_2K;192 else if ( dwMajorVersion == 5193 && dwMinorVersion == 1)194 enmVer = kRTWinOSType_XP;195 else if ( dwMajorVersion == 5196 && dwMinorVersion == 2)197 enmVer = kRTWinOSType_2003;198 else if ( dwMajorVersion == 6199 && dwMinorVersion == 0)200 {201 if (bProductType != VER_NT_WORKSTATION)202 enmVer = kRTWinOSType_2008;203 else204 enmVer = kRTWinOSType_VISTA;205 }206 else if ( dwMajorVersion == 6207 && dwMinorVersion == 1)208 enmVer = kRTWinOSType_7;209 else if ( dwMajorVersion == 6210 && dwMinorVersion == 2)211 enmVer = kRTWinOSType_8;212 else if ( dwMajorVersion == 6213 && dwMinorVersion == 3)214 enmVer = kRTWinOSType_81;215 else216 enmVer = kRTWinOSType_NT_UNKNOWN;217 }218 219 return enmVer;220 }221 222 223 /**224 87 * Wrapper around the GetProductInfo API. 225 88 * … … 296 159 static int rtSystemWinQueryOSVersion(RTSYSOSINFO enmInfo, char *pszInfo, size_t cchInfo) 297 160 { 298 int rc;299 300 161 /* 301 162 * Make sure it's terminated correctly in case of error. … … 304 165 305 166 /* 306 * Query the Windows version. 307 * 308 * ASSUMES OSVERSIONINFOEX starts with the exact same layout as OSVERSIONINFO (safe). 309 */ 310 OSVERSIONINFOEX OSInfoEx; 311 RT_ZERO(OSInfoEx); 312 OSInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); 313 if (!GetVersionEx((LPOSVERSIONINFO) &OSInfoEx)) 314 { 315 DWORD err = GetLastError(); 316 rc = RTErrConvertFromWin32(err); 317 AssertMsgFailedReturn(("err=%d\n", err), rc == VERR_BUFFER_OVERFLOW ? VERR_INTERNAL_ERROR : rc); 318 } 319 320 /* Get extended version info for 2000 and later. */ 321 if ( OSInfoEx.dwPlatformId == VER_PLATFORM_WIN32_NT 322 && OSInfoEx.dwMajorVersion >= 5) 323 { 324 RT_ZERO(OSInfoEx); 325 OSInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); 326 if (!GetVersionEx((LPOSVERSIONINFO) &OSInfoEx)) 327 { 328 DWORD err = GetLastError(); 329 rc = RTErrConvertFromWin32(err); 330 AssertMsgFailedReturn(("err=%d\n", err), rc == VERR_BUFFER_OVERFLOW ? VERR_INTERNAL_ERROR : rc); 331 } 332 } 167 * Check that we got the windows version at init time. 168 */ 169 AssertReturn(g_WinOsInfoEx.dwOSVersionInfoSize, VERR_WRONG_ORDER); 333 170 334 171 /* … … 337 174 char szTmp[512]; 338 175 szTmp[0] = '\0'; 339 rc = VINF_SUCCESS;340 176 switch (enmInfo) 341 177 { … … 345 181 case RTSYSOSINFO_PRODUCT: 346 182 { 347 RTWINOSTYPE enmVer = rtSystemWinOSType(&OSInfoEx); 348 switch (enmVer) 183 switch (g_enmWinVer) 349 184 { 350 185 case kRTWinOSType_95: strcpy(szTmp, "Windows 95"); break; … … 360 195 case kRTWinOSType_XP: 361 196 strcpy(szTmp, "Windows XP"); 362 if ( OSInfoEx.wSuiteMask & VER_SUITE_PERSONAL)197 if (g_WinOsInfoEx.wSuiteMask & VER_SUITE_PERSONAL) 363 198 strcat(szTmp, " Home"); 364 if ( OSInfoEx.wProductType == VER_NT_WORKSTATION365 && !( OSInfoEx.wSuiteMask & VER_SUITE_PERSONAL))199 if ( g_WinOsInfoEx.wProductType == VER_NT_WORKSTATION 200 && !(g_WinOsInfoEx.wSuiteMask & VER_SUITE_PERSONAL)) 366 201 strcat(szTmp, " Professional"); 367 202 #if 0 /** @todo fixme */ … … 384 219 385 220 case kRTWinOSType_NT_UNKNOWN: 386 RTStrPrintf(szTmp, sizeof(szTmp), "Unknown NT v%u.%u", OSInfoEx.dwMajorVersion, OSInfoEx.dwMinorVersion); 221 RTStrPrintf(szTmp, sizeof(szTmp), "Unknown NT v%u.%u", 222 g_WinOsInfoEx.dwMajorVersion, g_WinOsInfoEx.dwMinorVersion); 387 223 break; 388 224 … … 390 226 AssertFailed(); 391 227 case kRTWinOSType_UNKNOWN: 392 RTStrPrintf(szTmp, sizeof(szTmp), "Unknown %d v%u.%u", OSInfoEx.dwPlatformId, OSInfoEx.dwMajorVersion, OSInfoEx.dwMinorVersion); 228 RTStrPrintf(szTmp, sizeof(szTmp), "Unknown %d v%u.%u", 229 g_WinOsInfoEx.dwPlatformId, g_WinOsInfoEx.dwMajorVersion, g_WinOsInfoEx.dwMinorVersion); 393 230 break; 394 231 } … … 401 238 case RTSYSOSINFO_RELEASE: 402 239 { 403 RT WINOSTYPE enmVer = rtSystemWinOSType(&OSInfoEx);404 RTStrPrintf(szTmp, sizeof(szTmp), "%u.%u.%u", OSInfoEx.dwMajorVersion, OSInfoEx.dwMinorVersion, OSInfoEx.dwBuildNumber);240 RTStrPrintf(szTmp, sizeof(szTmp), "%u.%u.%u", 241 g_WinOsInfoEx.dwMajorVersion, g_WinOsInfoEx.dwMinorVersion, g_WinOsInfoEx.dwBuildNumber); 405 242 break; 406 243 } … … 412 249 case RTSYSOSINFO_SERVICE_PACK: 413 250 { 414 if ( OSInfoEx.wServicePackMajor)251 if (g_WinOsInfoEx.wServicePackMajor) 415 252 { 416 if (OSInfoEx.wServicePackMinor) 417 RTStrPrintf(szTmp, sizeof(szTmp), "%u.%u", (unsigned)OSInfoEx.wServicePackMajor, (unsigned)OSInfoEx.wServicePackMinor); 253 if (g_WinOsInfoEx.wServicePackMinor) 254 RTStrPrintf(szTmp, sizeof(szTmp), "%u.%u", 255 (unsigned)g_WinOsInfoEx.wServicePackMajor, (unsigned)g_WinOsInfoEx.wServicePackMinor); 418 256 else 419 RTStrPrintf(szTmp, sizeof(szTmp), "%u", (unsigned)OSInfoEx.wServicePackMajor); 257 RTStrPrintf(szTmp, sizeof(szTmp), "%u", 258 (unsigned)g_WinOsInfoEx.wServicePackMajor); 420 259 } 421 else if ( OSInfoEx.szCSDVersion[0])260 else if (g_WinOsInfoEx.szCSDVersion[0]) 422 261 { 423 262 /* just copy the entire string. */ 424 memcpy(szTmp, OSInfoEx.szCSDVersion, sizeof(OSInfoEx.szCSDVersion));425 szTmp[sizeof( OSInfoEx.szCSDVersion)] = '\0';426 AssertCompile(sizeof(szTmp) > sizeof( OSInfoEx.szCSDVersion));263 memcpy(szTmp, g_WinOsInfoEx.szCSDVersion, sizeof(g_WinOsInfoEx.szCSDVersion)); 264 szTmp[sizeof(g_WinOsInfoEx.szCSDVersion)] = '\0'; 265 AssertCompile(sizeof(szTmp) > sizeof(g_WinOsInfoEx.szCSDVersion)); 427 266 } 428 267 else 429 268 { 430 RTWINOSTYPE enmVer = rtSystemWinOSType(&OSInfoEx); 431 switch (enmVer) 269 switch (g_enmWinVer) 432 270 { 433 271 case kRTWinOSType_95SP1: strcpy(szTmp, "1"); break; … … 450 288 Assert(cchTmp < sizeof(szTmp)); 451 289 if (cchTmp < cchInfo) 290 { 452 291 memcpy(pszInfo, szTmp, cchTmp + 1); 453 else 454 { 455 memcpy(pszInfo, szTmp, cchInfo - 1); 456 pszInfo[cchInfo - 1] = '\0'; 457 if (RT_SUCCESS(rc)) 458 rc = VERR_BUFFER_OVERFLOW; 459 } 460 return VINF_SUCCESS; 292 return VINF_SUCCESS; 293 } 294 memcpy(pszInfo, szTmp, cchInfo - 1); 295 pszInfo[cchInfo - 1] = '\0'; 296 return VERR_BUFFER_OVERFLOW; 461 297 } 462 298 -
trunk/src/VBox/Runtime/r3/win/init-win.cpp
r46593 r47596 36 36 #endif 37 37 38 #include "internal /iprt.h"38 #include "internal-r3-win.h" 39 39 #include <iprt/initterm.h> 40 #include <iprt/assert.h> 40 41 #include <iprt/err.h> 42 #include <iprt/string.h> 41 43 #include "../init.h" 42 44 … … 45 47 * Global Variables * 46 48 *******************************************************************************/ 49 /** Windows DLL loader protection level. */ 50 DECLHIDDEN(RTR3WINLDRPROT) g_enmWinLdrProt = RTR3WINLDRPROT_NONE; 51 /** Our simplified windows version. */ 52 DECLHIDDEN(RTWINOSTYPE) g_enmWinVer = kRTWinOSType_UNKNOWN; 53 /** Extended windows version information. */ 54 DECLHIDDEN(OSVERSIONINFOEX) g_WinOsInfoEx; 47 55 /** The native kernel32.dll handle. */ 48 56 DECLHIDDEN(HMODULE) g_hModKernel32 = NULL; 49 57 /** The native ntdll.dll handle. */ 50 58 DECLHIDDEN(HMODULE) g_hModNtDll = NULL; 51 /** Windows DLL loader protection level. */ 52 DECLHIDDEN(RTR3WINLDRPROT) g_enmWinLdrProt = RTR3WINLDRPROT_NONE; 59 60 61 62 /** 63 * Translates OSVERSIONINOFEX into a Windows OS type. 64 * 65 * @returns The Windows OS type. 66 * @param pOSInfoEx The OS info returned by Windows. 67 * 68 * @remarks This table has been assembled from Usenet postings, personal 69 * observations, and reading other people's code. Please feel 70 * free to add to it or correct it. 71 * <pre> 72 dwPlatFormID dwMajorVersion dwMinorVersion dwBuildNumber 73 95 1 4 0 950 74 95 SP1 1 4 0 >950 && <=1080 75 95 OSR2 1 4 <10 >1080 76 98 1 4 10 1998 77 98 SP1 1 4 10 >1998 && <2183 78 98 SE 1 4 10 >=2183 79 ME 1 4 90 3000 80 81 NT 3.51 2 3 51 1057 82 NT 4 2 4 0 1381 83 2000 2 5 0 2195 84 XP 2 5 1 2600 85 2003 2 5 2 3790 86 Vista 2 6 0 87 88 CE 1.0 3 1 0 89 CE 2.0 3 2 0 90 CE 2.1 3 2 1 91 CE 3.0 3 3 0 92 </pre> 93 */ 94 static RTWINOSTYPE rtR3InitWinSimplifiedVersion(OSVERSIONINFOEX const *pOSInfoEx) 95 { 96 RTWINOSTYPE enmVer = kRTWinOSType_UNKNOWN; 97 BYTE const bProductType = pOSInfoEx->wProductType; 98 DWORD const dwPlatformId = pOSInfoEx->dwPlatformId; 99 DWORD const dwMinorVersion = pOSInfoEx->dwMinorVersion; 100 DWORD const dwMajorVersion = pOSInfoEx->dwMajorVersion; 101 DWORD const dwBuildNumber = pOSInfoEx->dwBuildNumber & 0xFFFF; /* Win 9x needs this. */ 102 103 if ( dwPlatformId == VER_PLATFORM_WIN32_WINDOWS 104 && dwMajorVersion == 4) 105 { 106 if ( dwMinorVersion < 10 107 && dwBuildNumber == 950) 108 enmVer = kRTWinOSType_95; 109 else if ( dwMinorVersion < 10 110 && dwBuildNumber > 950 111 && dwBuildNumber <= 1080) 112 enmVer = kRTWinOSType_95SP1; 113 else if ( dwMinorVersion < 10 114 && dwBuildNumber > 1080) 115 enmVer = kRTWinOSType_95OSR2; 116 else if ( dwMinorVersion == 10 117 && dwBuildNumber == 1998) 118 enmVer = kRTWinOSType_98; 119 else if ( dwMinorVersion == 10 120 && dwBuildNumber > 1998 121 && dwBuildNumber < 2183) 122 enmVer = kRTWinOSType_98SP1; 123 else if ( dwMinorVersion == 10 124 && dwBuildNumber >= 2183) 125 enmVer = kRTWinOSType_98SE; 126 else if (dwMinorVersion == 90) 127 enmVer = kRTWinOSType_ME; 128 } 129 else if (dwPlatformId == VER_PLATFORM_WIN32_NT) 130 { 131 if ( dwMajorVersion == 3 132 && dwMinorVersion == 51) 133 enmVer = kRTWinOSType_NT351; 134 else if ( dwMajorVersion == 4 135 && dwMinorVersion == 0) 136 enmVer = kRTWinOSType_NT4; 137 else if ( dwMajorVersion == 5 138 && dwMinorVersion == 0) 139 enmVer = kRTWinOSType_2K; 140 else if ( dwMajorVersion == 5 141 && dwMinorVersion == 1) 142 enmVer = kRTWinOSType_XP; 143 else if ( dwMajorVersion == 5 144 && dwMinorVersion == 2) 145 enmVer = kRTWinOSType_2003; 146 else if ( dwMajorVersion == 6 147 && dwMinorVersion == 0) 148 { 149 if (bProductType != VER_NT_WORKSTATION) 150 enmVer = kRTWinOSType_2008; 151 else 152 enmVer = kRTWinOSType_VISTA; 153 } 154 else if ( dwMajorVersion == 6 155 && dwMinorVersion == 1) 156 enmVer = kRTWinOSType_7; 157 else if ( dwMajorVersion == 6 158 && dwMinorVersion == 2) 159 enmVer = kRTWinOSType_8; 160 else if ( dwMajorVersion == 6 161 && dwMinorVersion == 3) 162 enmVer = kRTWinOSType_81; 163 else 164 enmVer = kRTWinOSType_NT_UNKNOWN; 165 } 166 167 return enmVer; 168 } 53 169 54 170 … … 60 176 UINT fOldErrMode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX); 61 177 SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX | fOldErrMode); 178 179 /* 180 * Query the Windows version. 181 * ASSUMES OSVERSIONINFOEX starts with the exact same layout as OSVERSIONINFO (safe). 182 */ 183 AssertCompileMembersSameSizeAndOffset(OSVERSIONINFOEX, szCSDVersion, OSVERSIONINFO, szCSDVersion); 184 AssertCompileMemberOffset(OSVERSIONINFOEX, wServicePackMajor, sizeof(OSVERSIONINFO)); 185 RT_ZERO(g_WinOsInfoEx); 186 g_WinOsInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); 187 if (!GetVersionExA((POSVERSIONINFOA)&g_WinOsInfoEx)) 188 { 189 /* Fallback, just get the basic info. */ 190 RT_ZERO(g_WinOsInfoEx); 191 g_WinOsInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 192 if (GetVersionExA((POSVERSIONINFOA)&g_WinOsInfoEx)) 193 Assert(g_WinOsInfoEx.dwPlatformId != VER_PLATFORM_WIN32_NT || g_WinOsInfoEx.dwMajorVersion < 5); 194 else 195 { 196 AssertBreakpoint(); 197 RT_ZERO(g_WinOsInfoEx); 198 } 199 } 200 if (g_WinOsInfoEx.dwOSVersionInfoSize) 201 g_enmWinVer = rtR3InitWinSimplifiedVersion(&g_WinOsInfoEx); 62 202 63 203 /* … … 81 221 } 82 222 83 typedef BOOL (WINAPI *PFNSETDEFAULTDLLDIRECTORIES)(DWORD); 84 PFNSETDEFAULTDLLDIRECTORIES pfnSetDefDllDirs; 85 pfnSetDefDllDirs = (PFNSETDEFAULTDLLDIRECTORIES)GetProcAddress(g_hModKernel32, "SetDefaultDllDirectories"); 86 if (pfnSetDefDllDirs) 87 { 88 if (pfnSetDefDllDirs(LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32)) 89 g_enmWinLdrProt = RTR3WINLDRPROT_SAFE; 90 else if (RT_SUCCESS(rc)) 91 rc = VERR_INTERNAL_ERROR_4; 223 #if ARCH_BITS == 32 224 if (g_enmWinVer > kRTWinOSType_VISTA) /* Observed GUI issues on 32-bit Vista. */ 225 #endif 226 { 227 typedef BOOL(WINAPI *PFNSETDEFAULTDLLDIRECTORIES)(DWORD); 228 PFNSETDEFAULTDLLDIRECTORIES pfnSetDefDllDirs; 229 pfnSetDefDllDirs = (PFNSETDEFAULTDLLDIRECTORIES)GetProcAddress(g_hModKernel32, "SetDefaultDllDirectories"); 230 if (pfnSetDefDllDirs) 231 { 232 if (pfnSetDefDllDirs(LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32)) 233 g_enmWinLdrProt = RTR3WINLDRPROT_SAFE; 234 else if (RT_SUCCESS(rc)) 235 rc = VERR_INTERNAL_ERROR_4; 236 } 92 237 } 93 238 -
trunk/src/VBox/Runtime/r3/win/process-win.cpp
r46593 r47596 41 41 42 42 #include <iprt/process.h> 43 #include "internal /iprt.h"43 #include "internal-r3-win.h" 44 44 45 45 #include <iprt/assert.h> … … 59 59 #include <iprt/socket.h> 60 60 61 #include "../init.h"62 61 63 62 -
trunk/src/VBox/Runtime/r3/win/symlink-win.cpp
r46593 r47596 30 30 *******************************************************************************/ 31 31 #define LOG_GROUP RTLOGGROUP_SYMLINK 32 #include <Windows.h> 32 33 33 34 #include <iprt/symlink.h> 35 #include "internal-r3-win.h" 34 36 35 37 #include <iprt/assert.h> … … 41 43 #include "internal/path.h" 42 44 43 #include <Windows.h>44 #include "../init.h"45 45 46 46
Note:
See TracChangeset
for help on using the changeset viewer.