ExpRemoveCurrentThreadFromThreadHistory
VOID __stdcall ExpRemoveCurrentThreadFromThreadHistory(_EX_WORKER_FACTORY *WorkerFactory){
_ETHREAD *CurrentThread;
unsigned __int8 v3;
__int64 v4;
if( (WorkerFactory[78] & 7) != 4 )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v3 = 0;
while( 1 )
{
v4 = v3;
if( *(_ETHREAD **)&WorkerFactory[2 * v3 + 18] == CurrentThread )
break;
if( ++v3 >= 4u )
return;
}
ObfDereferenceObjectWithTag(CurrentThread, 0x746C6644ui64);
*(_QWORD *)&WorkerFactory[2 * v4 + 18] = 0i64;
}
}Referenced by:
NtSetInformationWorkerFactory
NtWaitForWorkViaWorkerFactory