PiDqObjectManagerUnregisterQuery
VOID __stdcall PiDqObjectManagerUnregisterQuery(_PI_DQ_OBJECT_MANAGER *ObjectManager, _PI_DQ_QUERY *Query){
__int64 v4;
_PI_DQ_QUERY **v5;
ExAcquireFastMutex((PFAST_MUTEX)ObjectManager->QueryList);
v4 = *(_QWORD *)Query;
if( *(_QWORD *)Query )
{
if( *(_PI_DQ_QUERY **)(v4 + 8) != Query || (v5 = (_PI_DQ_QUERY **)*((_QWORD *)Query + 1), *v5 != Query) )
__fastfail(3u);
*v5 = (_PI_DQ_QUERY *)v4;
*(_QWORD *)(v4 + 8) = v5;
--*(_DWORD *)&ObjectManager[1].WorkItem[4];
PiDqQueryRelease(Query);
}
KeReleaseGuardedMutex((PKGUARDED_MUTEX)ObjectManager->QueryList);
}Referenced by:
PiDqDispatch