PnprQuiesceWorker

VOID *__fastcall PnprQuiesceWorker(PVOID P){
  int v2; 
  __int64 v3; 
  int v4; 
  VOID *v6[2]; 
  __int128 v7[3]; 
  __int64 v8; 
  int v9; 

  memset(v7, 0, sizeof(v7));
  v8 = 0i64;
  v9 = 0;
  v6[0] = (VOID *)(PnprContext + 20760);
  v6[1] = (VOID *)(PnprContext + 20808);
  if( KeWaitForMultipleObjects(2ui64, v6, WaitAny, Executive, 0, 0, 0i64, 0i64) != 1 )
  {
    PnprLockPagesForReplace();
    v2 = PnprQuiesceDevices((__int64)v7);
    v3 = PnprContext;
    v4 = v2;
    *(_DWORD *)(PnprContext + 20856) = v2;
    KeSetEvent((PRKEVENT)(v3 + 20784), 0, 0);
    if( v4 >= 0 )
    {
      KeWaitForSingleObject(PnprContext + 20808, 0, 0, 0, 0i64);
      PnprWakeDevices((__int64)v7);
    }
    PnprCompleteWake();
  }
  KeSetEvent((PRKEVENT)(PnprContext + 20832), 0, 0);
  return ExFreePoolWithTag(P, 0x51706E50u);
}

Referenced by:

No references.