PiDqObjectManagerMakeInconsistent

VOID __stdcall PiDqObjectManagerMakeInconsistent(_PI_DQ_OBJECT_MANAGER *ObjectManager){
  char v2; 
  int v3; 
  int v4; 

  v2 = 0;
  ExAcquireFastMutex((PFAST_MUTEX)ObjectManager->QueryList);
  v3 = *(_DWORD *)&ObjectManager[1].WorkItem[8];
  if( (v3 & 2) == 0
    && *(_PI_DQ_OBJECT_MANAGER **)&ObjectManager[1].DataLock[4] != (_PI_DQ_OBJECT_MANAGER *)&ObjectManager[1].DataLock[4] )
  {
    v4 = v3 | 2;
    *(_DWORD *)&ObjectManager[1].WorkItem[8] = v4;
    if( (v4 & 1) == 0 )
    {
      v2 = 1;
      *(_DWORD *)&ObjectManager[1].WorkItem[8] = v4 | 1;
    }
  }
  KeReleaseGuardedMutex((PKGUARDED_MUTEX)ObjectManager->QueryList);
  if( v2 )
    ExQueueWorkItem((PWORK_QUEUE_ITEM)&ObjectManager[1].ProcessLock[28], NormalWorkQueue);
}

Referenced by:

PiPnpRtlObjectEventWorker