[PATCH 2/2] ntdll: Add a stub for TokenElevation in NtQueryInformationToken
Detlef Riekenberg
wine.dev at web.de
Sun Aug 22 04:32:46 CDT 2010
This allow the GameExplorerManager to start
--
Detlef Riekenberg
---
dlls/ntdll/nt.c | 60 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 42 insertions(+), 18 deletions(-)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index a2b1023..8355e31 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -232,6 +232,38 @@ NTSTATUS WINAPI NtAdjustPrivilegesToken(
return ret;
}
+static ULONG informationtoken_len [] = {0,
+ 0, /* TokenUser */
+ 0, /* TokenGroups */
+ 0, /* TokenPrivileges */
+ 0, /* TokenOwner */
+ 0, /* TokenPrimaryGroup */
+ 0, /* TokenDefaultDacl */
+ sizeof(TOKEN_SOURCE), /* TokenSource */
+ sizeof(TOKEN_TYPE), /* TokenType */
+ sizeof(SECURITY_IMPERSONATION_LEVEL), /* TokenImpersonationLevel */
+ sizeof(TOKEN_STATISTICS), /* TokenStatistics */
+ 0, /* TokenRestrictedSids */
+ 0, /* TokenSessionId */
+ 0, /* TokenGroupsAndPrivileges */
+ 0, /* TokenSessionReference */
+ 0, /* TokenSandBoxInert */
+ 0, /* TokenAuditPolicy */
+ 0, /* TokenOrigin */
+ 0, /* TokenElevationType */
+ 0, /* TokenLinkedToken */
+ sizeof(DWORD), /* TokenElevation */
+ 0, /* TokenHasRestrictions */
+ 0, /* TokenAccessInformation */
+ 0, /* TokenVirtualizationAllowed */
+ 0, /* TokenVirtualizationEnabled */
+ 0, /* TokenIntegrityLevel */
+ 0, /* TokenUIAccess */
+ 0, /* TokenMandatoryPolicy */
+ 0 /* TokenLogonSid */
+};
+
+
/******************************************************************************
* NtQueryInformationToken [NTDLL.@]
* ZwQueryInformationToken [NTDLL.@]
@@ -249,29 +281,14 @@ NTSTATUS WINAPI NtQueryInformationToken(
ULONG tokeninfolength,
PULONG retlen )
{
- ULONG len;
+ ULONG len = 0;
NTSTATUS status = STATUS_SUCCESS;
TRACE("(%p,%d,%p,%d,%p)\n",
token,tokeninfoclass,tokeninfo,tokeninfolength,retlen);
- switch (tokeninfoclass)
- {
- case TokenSource:
- len = sizeof(TOKEN_SOURCE);
- break;
- case TokenType:
- len = sizeof (TOKEN_TYPE);
- break;
- case TokenImpersonationLevel:
- len = sizeof(SECURITY_IMPERSONATION_LEVEL);
- break;
- case TokenStatistics:
- len = sizeof(TOKEN_STATISTICS);
- break;
- default:
- len = 0;
- }
+ if (tokeninfoclass < MaxTokenInfoClass)
+ len = informationtoken_len[tokeninfoclass];
if (retlen) *retlen = len;
@@ -489,6 +506,13 @@ NTSTATUS WINAPI NtQueryInformationToken(
}
SERVER_END_REQ;
break;
+ case TokenElevation:
+ {
+ TOKEN_ELEVATION *elevation = tokeninfo;
+ FIXME("QueryInformationToken( ..., TokenElevation, ...) semi-stub\n");
+ elevation->TokenIsElevated = TRUE;
+ }
+ break;
default:
{
ERR("Unhandled Token Information class %d!\n", tokeninfoclass);
--
1.7.0.4
More information about the wine-patches
mailing list