KeRequestTerminationProcess
VOID __stdcall KeRequestTerminationProcess(_ETHREAD *Thread, INT64 a2){
signed __int32 v2;
int v3;
signed __int32 v4;
v2 = *(&Thread->Tcb.MiscFlags + 1);
v3 = (_DWORD)a2 << 18;
if( (v2 & 0xC0000) == 0 )
{
while( 1 )
{
v4 = _InterlockedCompareExchange((volatile signed __int32 *)&Thread->Tcb.116 + 1, v3 | v2, v2);
if( v2 == v4 )
break;
v2 = v4;
if( (v4 & 0xC0000) != 0 )
return;
}
KeRequestTerminationThread(&Thread->Tcb);
}
}Referenced by:
MiCommitRequestFailed
MiForceCrashForInvalidAccess