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