Detlef Riekenberg : ntdll: Add a stub for TokenElevation in NtQueryInformationToken.
Alexandre Julliard
julliard at winehq.org
Mon Aug 23 10:50:19 CDT 2010
Module: wine
Branch: master
Commit: 2b76f8661d0994c060a9749c6cec14b45f3e273b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2b76f8661d0994c060a9749c6cec14b45f3e273b
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Sun Aug 22 11:32:46 2010 +0200
ntdll: Add a stub for TokenElevation in NtQueryInformationToken.
---
dlls/ntdll/nt.c | 61 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 43 insertions(+), 18 deletions(-)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index a2b1023..4472734 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -249,29 +249,47 @@ NTSTATUS WINAPI NtQueryInformationToken(
ULONG tokeninfolength,
PULONG retlen )
{
- ULONG len;
+ static const ULONG info_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(TOKEN_ELEVATION), /* TokenElevation */
+ 0, /* TokenHasRestrictions */
+ 0, /* TokenAccessInformation */
+ 0, /* TokenVirtualizationAllowed */
+ 0, /* TokenVirtualizationEnabled */
+ 0, /* TokenIntegrityLevel */
+ 0, /* TokenUIAccess */
+ 0, /* TokenMandatoryPolicy */
+ 0 /* TokenLogonSid */
+ };
+
+ 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 = info_len[tokeninfoclass];
if (retlen) *retlen = len;
@@ -489,6 +507,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);
More information about the wine-cvs
mailing list