faultrep/tests: Drop workarounds for Windows <= 2000.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
cd2b8b64f7
commit
e69d218d57
|
@ -36,65 +36,15 @@ static const char regpath_exclude[] = "ExclusionList";
|
|||
|
||||
static BOOL is_process_limited(void)
|
||||
{
|
||||
static BOOL (WINAPI *pCheckTokenMembership)(HANDLE,PSID,PBOOL) = NULL;
|
||||
static BOOL (WINAPI *pOpenProcessToken)(HANDLE, DWORD, PHANDLE) = NULL;
|
||||
SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
|
||||
PSID Group;
|
||||
BOOL IsInGroup;
|
||||
HANDLE token;
|
||||
TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault;
|
||||
DWORD size;
|
||||
|
||||
if (!pOpenProcessToken)
|
||||
{
|
||||
HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll");
|
||||
pOpenProcessToken = (void*)GetProcAddress(hadvapi32, "OpenProcessToken");
|
||||
pCheckTokenMembership = (void*)GetProcAddress(hadvapi32, "CheckTokenMembership");
|
||||
if (!pCheckTokenMembership || !pOpenProcessToken)
|
||||
{
|
||||
/* Win9x (power to the masses) or NT4 (no way to know) */
|
||||
trace("missing pOpenProcessToken or CheckTokenMembership\n");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token);
|
||||
GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size);
|
||||
CloseHandle(token);
|
||||
|
||||
if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
|
||||
DOMAIN_ALIAS_RID_ADMINS,
|
||||
0, 0, 0, 0, 0, 0, &Group) ||
|
||||
!pCheckTokenMembership(NULL, Group, &IsInGroup))
|
||||
{
|
||||
trace("Could not check if the current user is an administrator\n");
|
||||
return FALSE;
|
||||
}
|
||||
FreeSid(Group);
|
||||
if (!IsInGroup)
|
||||
{
|
||||
if (!AllocateAndInitializeSid(&NtAuthority, 2,
|
||||
SECURITY_BUILTIN_DOMAIN_RID,
|
||||
DOMAIN_ALIAS_RID_POWER_USERS,
|
||||
0, 0, 0, 0, 0, 0, &Group) ||
|
||||
!pCheckTokenMembership(NULL, Group, &IsInGroup))
|
||||
{
|
||||
trace("Could not check if the current user is a power user\n");
|
||||
return FALSE;
|
||||
}
|
||||
FreeSid(Group);
|
||||
if (!IsInGroup)
|
||||
{
|
||||
/* Only administrators and power users can be powerful */
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (pOpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token))
|
||||
{
|
||||
BOOL ret;
|
||||
TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault;
|
||||
DWORD size;
|
||||
|
||||
ret = GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size);
|
||||
CloseHandle(token);
|
||||
return (ret && type == TokenElevationTypeLimited);
|
||||
}
|
||||
return FALSE;
|
||||
return type == TokenElevationTypeLimited;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue