KeSynchronizeUmsThread
VOID __stdcall KeSynchronizeUmsThread(_ETHREAD *Thread, INT8 a2){
void *Object;
Object = Thread->Tcb.WaitBlock[3].Object;
if( a2 )
{
KeInsertQueue(*((_KQUEUE **)Object + 4), *((_LIST_ENTRY **)Object + 5));
*((_DWORD *)Object + 20) |= 2u;
*((_QWORD *)Object + 9) = 0i64;
KiLeaveGuardedRegionUnsafe((__int64)Thread);
}
else
{
KiCopyUchToStagingArea((INT64)Thread, *((INT64 **)Object + 9));
*((_QWORD *)Object + 9) = 0i64;
KiSwapToUmsThreadContinue();
}
}Referenced by:
PspRundownUmsThreadForApcDelivery