KeRemoveUmsThreadCidOwnership
INT64 __fastcall KeRemoveUmsThreadCidOwnership(INT64 a1, CHAR a2){
_ETHREAD *CurrentThread;
signed __int64 v3;
signed __int64 v4;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
_m_prefetchw((const void *)(a1 + 1272));
v3 = *(_QWORD *)(a1 + 1272);
do
{
v4 = v3;
v3 = _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 1272), v3 & 3, v3);
}
while( v4 != v3 );
if( !a2 || (v3 & 0xFFFFFFFFFFFFFFFCui64) == *((_QWORD *)CurrentThread + 144) )
return 0i64;
else
return 3221227292i64;
}Referenced by:
KeUpdateUmsThreadState
PspDisassociateUmsThreadFromPrimary