KeSetPagePrivilege
int __fastcall KeSetPagePrivilege(__int64 a1, __int128 *a2, __int16 a3){
char v3;
INT16 v6;
int ProtectedPageExecutable;
__int128 v8;
INT64 result[2];
__int128 v10;
v3 = a3;
if( (a3 & 0x100) != 0 )
{
memset((INT64)result, 0i64);
v6 = 245;
LABEL_11:
v8 = *a2;
result[1] = a1;
v10 = v8;
return VslpEnterIumSecureMode(2u, v6, 0i64, (INT64)result);
}
if( (a3 & 0x400) != 0 )
{
memset((INT64)result, 0i64);
v6 = 246;
goto LABEL_11;
}
if( (a3 & 6) == 0 )
{
memset((INT64)result, 0i64);
v6 = 243;
goto LABEL_11;
}
ProtectedPageExecutable = 0;
if( (a3 & 2) == 0
|| (ProtectedPageExecutable = VslMakeProtectedPageExecutable(a1, a2, a3 & 0x800), ProtectedPageExecutable >= 0) )
{
if( (v3 & 4) != 0 )
return(unsigned int)VslMakeProtectedPageWritable((_PREFIX_TABLE *)a1, (_STRING *)a2);
}
return ProtectedPageExecutable;
}Referenced by:
ExpRevokeBootLoaderPagePrivileges
MiAllocateWsle
MiClearPfnImageVerified
MiCopyPage
MiDbgWriteCheck
MiDeletePerSessionProtos
MiInsertPageInFreeOrZeroedList
MiLockDriverPageRange
MiMarkPfnVerified