ExpRemoveCurrentThreadFromThreadHistory
UINT8 __fastcall ExpRemoveCurrentThreadFromThreadHistory(INT64 a1){
UINT8 result;
_ETHREAD *CurrentThread;
__int64 v4;
result = *(_DWORD *)(a1 + 312) & 7;
if( result != 4 )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
result = 0;
while( 1 )
{
v4 = result;
if( *(_ETHREAD **)(a1 + 8i64 * result + 72) == CurrentThread )
break;
if( ++result >= 4u )
return result;
}
result = ObfDereferenceObjectWithTag(CurrentThread, 0x746C6644ui64);
*(_QWORD *)(a1 + 8 * v4 + 72) = 0i64;
}
return result;
}Referenced by:
NtSetInformationWorkerFactory
NtWaitForWorkViaWorkerFactory