SeSetMandatoryPolicyToken
NTSTATUS __stdcall SeSetMandatoryPolicyToken(VOID *Token, _TOKEN_MANDATORY_POLICY *MandatoryPolicy){
INT64 v2;
_ETHREAD *CurrentThread;
signed __int32 v7[10];
if( (MandatoryPolicy->Policy & 0xFFFFFFFC) != 0 )
return -1073741811;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquireResourceExclusiveLite(*((_QWORD *)Token + 6), 1, v2);
_InterlockedOr(v7, 0);
*((_TOKEN_MANDATORY_POLICY *)Token + 53) = (_TOKEN_MANDATORY_POLICY)MandatoryPolicy->Policy;
*((_QWORD *)Token + 7) = ExpLuidIncrement + _InterlockedExchangeAdd64(&ExpLuid, ExpLuidIncrement);
_InterlockedOr(v7, 0);
ExReleaseResourceLite(*((PERESOURCE *)Token + 6));
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return 0;
}Referenced by:
NtCreateLowBoxToken
NtSetInformationToken
SeMakeAnonymousLogonToken
SeMakeAnonymousLogonTokenNoEveryone
SeMakeSystemToken