PnpDeviceCompletionQueueRemoveCompletedRequest

_QWORD *__fastcall PnpDeviceCompletionQueueRemoveCompletedRequest(__int64 a1, _QWORD *a2){
  unsigned __int8 v3; 
  _QWORD *v4; 
  unsigned __int64 v5; 
  _QWORD **v6; 

  KeWaitForSingleObject((UINT64)&PnpReplaceEvent + 5960, 0, 0, 0, 0i64);
  v3 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&PnpReplaceEvent + 749);
  v4 = (_QWORD *)*a2;
  v5 = v3;
  v6 = (_QWORD **)a2[1];
  if( *(_QWORD **)(*a2 + 8i64) != a2 || *v6 != a2 )
    __fastfail(3u);
  *v6 = v4;
  v4[1] = v6;
  KxReleaseSpinLock((UINT64 *)&PnpReplaceEvent + 749);
  __writecr8(v5);
  return a2;
}

Referenced by:

PipEnumerateDevice
PnpStartDeviceNode