PopRequestShutdownWait
INT64 __stdcall PopRequestShutdownWait(_ETHREAD *Thread){
_QWORD *PoolWithTag;
unsigned int v3;
_QWORD *v4;
PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0x10ui64, 0x4C536F50ui64);
v3 = 0;
v4 = PoolWithTag;
if( !PoolWithTag )
return 3221225495i64;
PoolWithTag[1] = Thread;
ObfReferenceObjectWithTag(Thread, 0x64536F50u);
KeAcquireGuardedMutex(&PopShutdownListMutex);
if( PopShutdownListAvailable )
{
*v4 = PopShutdownThreadList;
PopShutdownThreadList = v4;
}
else
{
ObfDereferenceObjectWithTag(Thread, 0x64536F50ui64);
ExFreePoolWithTag(v4, 0);
v3 = -1073741823;
}
KeReleaseGuardedMutex(&PopShutdownListMutex);
return v3;
}Referenced by:
PoRequestShutdownEvent