MiGetVadWakeList

__int64 *__fastcall MiGetVadWakeList(__int64 a1, int a2){
  __int64 **v2; 
  __int64 *v3; 
  _EPROCESS *Process; 
  _MMSUPPORT_SHARED *p_Shared; 
  UINT8 CurrentIrql; 
  __int64 *v8; 
  __int64 *v10; 

  v2 = (__int64 **)(a1 + 56);
  v3 = 0i64;
  Process = KeGetCurrentThread()->ApcState.Process;
  if( (Process->Vm.Instance.Flags._bf_0 & 7) == 2 )
    p_Shared = (_MMSUPPORT_SHARED *)((char *)&stru_140C4DB30 + 6544);
  else
    p_Shared = &Process->Vm.Shared;
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(2ui64);
  ExpAcquireSpinLockExclusive((INT64 *)&p_Shared->WorkingSetLock, CurrentIrql);
  p_Shared->GoodCitizenWaiting = 0;
  v8 = *v2;
  if( *v2 )
  {
    do
    {
      v10 = (__int64 *)*v8;
      if( (a2 & (_DWORD)v8[8]) != 0 )
      {
        *v8 = (__int64)v3;
        v3 = v8;
        *v2 = v10;
      }
      else
      {
        v2 = (__int64 **)v8;
      }
      v8 = v10;
    }
    while( v10 );
  }
  MiUnlockWorkingSetExclusive(&Process->Vm.Instance, CurrentIrql);
  return v3;
}

Referenced by:

MiDeletePartialCloneVads
MiFreePlaceholderStorage
MiFreeRotateView
MiFreeVadEventBitmap
MiReleaseVadEventBlocks