PiDqObjectManagerUnregisterQuery

VOID __fastcall PiDqObjectManagerUnregisterQuery(INT64 a1, INT64 *a2){
  INT64 v4; 
  INT64 **v5; 
  ExAcquireFastMutex((FAST_MUTEX *)(a1 + 104));
  v4 = *a2;
  if( *a2 )
  {
    if( *(INT64 **)(v4 + 8) != a2 || (v5 = (INT64 **)a2[1], *v5 != a2) )
      __fastfail(3u);
    *v5 = (INT64 *)v4;
    *(_QWORD *)(v4 + 8) = v5;
    --*(_DWORD *)(a1 + 224);
    PiDqQueryRelease(a2);
  }
  KeReleaseGuardedMutex((_FAST_MUTEX *)(a1 + 104));
}

Referenced by:

PiDqDispatch