PopDiagDeviceRundownWorker

VOID __stdcall PopDiagDeviceRundownWorker(PVOID Context){
  unsigned __int16 *v1; 
  unsigned __int16 *i; 
  unsigned __int16 *v3; 
  _InterlockedExchange(&PopDiagDeviceRundownRequests, 0);
  IoControlPnpDeviceActionQueue(1u);
  v1 = (unsigned __int16 *)IopRootDeviceNode;
  for( i = (unsigned __int16 *)*((_QWORD *)IopRootDeviceNode + 1); i; i = (unsigned __int16 *)*((_QWORD *)i + 1) )
    v1 = i;
  while( v1 != IopRootDeviceNode )
  {
    PoDiagTraceDeviceRundown((__int64)v1, v1 + 20, v1 + 28, *((_DWORD *)v1 + 39));
    v3 = *(unsigned __int16 **)v1;
    if( *(_QWORD *)v1 )
    {
      do
      {
        v1 = v3;
        v3 = (unsigned __int16 *)*((_QWORD *)v3 + 1);
      }
      while( v3 );
    }
    else
    {
      v1 = (unsigned __int16 *)*((_QWORD *)v1 + 2);
    }
  }
  IoControlPnpDeviceActionQueue(0);
}

Referenced by:

No references.