Module: wine Branch: master Commit: 5c3e919b1080ad3f988467f49b530d9331ac3890 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5c3e919b1080ad3f988467f49b...
Author: Detlef Riekenberg wine.dev@web.de Date: Mon Jul 30 18:08:34 2012 +0200
ntdll: Support TokenIntegrityLevel.
---
dlls/ntdll/nt.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c index cc35815..775b6f1 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -276,7 +276,7 @@ NTSTATUS WINAPI NtQueryInformationToken( 0, /* TokenAccessInformation */ 0, /* TokenVirtualizationAllowed */ 0, /* TokenVirtualizationEnabled */ - 0, /* TokenIntegrityLevel */ + sizeof(TOKEN_MANDATORY_LABEL) + sizeof(SID), /* TokenIntegrityLevel [sizeof(SID) includes one SubAuthority] */ 0, /* TokenUIAccess */ 0, /* TokenMandatoryPolicy */ 0 /* TokenLogonSid */ @@ -507,6 +507,20 @@ NTSTATUS WINAPI NtQueryInformationToken( FIXME("QueryInformationToken( ..., TokenSessionId, ...) semi-stub\n"); } break; + case TokenIntegrityLevel: + { + /* report always "S-1-16-12288" (high mandatory level) for now */ + static const SID high_level = {SID_REVISION, 1, {SECURITY_MANDATORY_LABEL_AUTHORITY}, + {SECURITY_MANDATORY_HIGH_RID}}; + + TOKEN_MANDATORY_LABEL *tml = tokeninfo; + PSID psid = tml + 1; + + tml->Label.Sid = psid; + tml->Label.Attributes = SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED; + memcpy(psid, &high_level, sizeof(SID)); + } + break; default: { ERR("Unhandled Token Information class %d!\n", tokeninfoclass);