PopDiagDeviceRundownWorker

VOID __stdcall PopDiagDeviceRundownWorker(VOID *Context){
  _DEVICE_NODE *v1; 
  _DEVICE_NODE *i; 
  _DEVICE_NODE *Sibling; 

  _InterlockedExchange(&PopDiagDeviceRundownRequests, 0);
  IoControlPnpDeviceActionQueue(1u);
  v1 = (_DEVICE_NODE *)*(&PnpReplaceEvent + 831);
  for( i = *(_DEVICE_NODE **)(*(&PnpReplaceEvent + 831) + 8i64); i; i = i->Child )
    v1 = i;
  while( v1 != (_DEVICE_NODE *)*(&PnpReplaceEvent + 831) )
  {
    PoDiagTraceDeviceRundown(v1, &v1->InstancePath, &v1->ServiceName, v1->CurrentPowerState.DeviceState);
    Sibling = v1->Sibling;
    if( v1->Sibling )
    {
      do
      {
        v1 = Sibling;
        Sibling = Sibling->Child;
      }
      while( Sibling );
    }
    else
    {
      v1 = v1->Parent;
    }
  }
  IoControlPnpDeviceActionQueue(0);
}

Referenced by:

No references.