ObpDeferObjectDeletion
VOID __stdcall ObpDeferObjectDeletion(_OBJECT_HEADER *ObjectHeader){
signed __int64 v1;
signed __int64 i;
_m_prefetchw(&qword_140C25870);
v1 = qword_140C25870;
ObjectHeader->HandleCount = qword_140C25870;
for( i = _InterlockedCompareExchange64(&qword_140C25870, (signed __int64)ObjectHeader, v1);
i != v1;
i = _InterlockedCompareExchange64(&qword_140C25870, (signed __int64)ObjectHeader, i) )
{
v1 = i;
ObjectHeader->HandleCount = i;
}
if( !v1 )
{
if( ObGetCurrentIrql() > 2u )
KiInsertQueueDpc(&stru_140C258C0, 0i64, 0i64, 0i64, 0);
else
ExQueueWorkItem(&qword_140C25900, CriticalWorkQueue);
}
}Referenced by:
ExTimerRundown
ExpSetTimerObject
IopDropIrp
MiCompleteProtoPteFault
MiEmptyPageAccessLog
MiReferenceControlAreaFile
NtCancelTimer
ObDereferenceObjectDeferDelete
ObDereferenceObjectDeferDeleteWithTag
ObDereferenceObjectEx
ObFastReferenceObject
ObFastReplaceObject
ObfDereferenceObjectWithTag