PnpTrackQueryRemoveDevices

bool __fastcall PnpTrackQueryRemoveDevices(unsigned int **a1, char a2){
  bool result; 
  __int64 v5; 
  int a2a; 
  int v7; 
  __int64 a3; 
  a3 = 0i64;
  a2a = 0;
  v7 = 0;
  while( 1 )
  {
    result = IopEnumerateRelations(a1, &a2a, &a3, 0i64, 0i64);
    if( !result )
      break;
    if( a3 )
      v5 = *(_QWORD *)(*(_QWORD *)(a3 + 312) + 40i64);
    else
      v5 = 0i64;
    if( a2 )
      PipSetDevNodeUserFlags(v5, 256);
    else
      PipClearDevNodeUserFlags(v5, 256);
  }
  return result;
}

Referenced by:

PnpProcessCompletedEject
PnpProcessQueryRemoveAndEject