Changeset 35017 in vbox
- Timestamp:
- Dec 13, 2010 2:42:39 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 68844
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/VBoxExtPackHelperApp.cpp
r34787 r35017 1384 1384 if (fIsAdmin) 1385 1385 { 1386 # if 11387 1386 /* 1388 1387 * Check the integrity level (Vista / UAC). 1389 1388 */ 1390 # 1391 # 1389 # define MY_SECURITY_MANDATORY_HIGH_RID 0x00003000L 1390 # define MY_TokenIntegrityLevel ((TOKEN_INFORMATION_CLASS)25) 1392 1391 if ( !GetTokenInformation(hToken, MY_TokenIntegrityLevel, NULL, 0, &cb) 1393 1392 && GetLastError() == ERROR_INSUFFICIENT_BUFFER) … … 1410 1409 else 1411 1410 rcExit = RTMsgErrorExit(RTEXITCODE_FAILURE, "GetTokenInformation failed: %u (%#x)", GetLastError(), GetLastError()); 1412 1413 # else1414 /*1415 * Check elevation (Vista / UAC).1416 */1417 DWORD TokenIsElevated = 0;1418 if (GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)/*TokenElevation*/ 20, &TokenIsElevated, sizeof(TokenIsElevated), &cb))1419 {1420 fElevated = TokenIsElevated != 0;1421 if (fElevated)1422 {1423 enum1424 {1425 MY_TokenElevationTypeDefault = 1,1426 MY_TokenElevationTypeFull,1427 MY_TokenElevationTypeLimited1428 } enmType;1429 if (GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)/*TokenElevationType*/ 18, &enmType, sizeof(enmType), &cb))1430 *pfElevated = enmType == MY_TokenElevationTypeFull;1431 else1432 rcExit = RTMsgErrorExit(RTEXITCODE_FAILURE, "GetTokenInformation failed: %u (%#x)", GetLastError(), GetLastError());1433 }1434 }1435 else if ( GetLastError() == ERROR_INVALID_PARAMETER1436 && GetLastError() == ERROR_NOT_SUPPORTED)1437 *pfElevated = true; /* Older Windows version. */1438 else if ( GetLastError() != ERROR_INVALID_PARAMETER1439 && GetLastError() != ERROR_NOT_SUPPORTED)1440 rcExit = RTMsgErrorExit(RTEXITCODE_FAILURE, "GetTokenInformation failed: %u (%#x)", GetLastError(), GetLastError());1441 # endif1442 1411 } 1443 1412 else
Note:
See TracChangeset
for help on using the changeset viewer.