MmAreMdlPagesLocked

UINT64 __stdcall MmAreMdlPagesLocked(_MDL *MemoryDescriptorList){
  UINT64 *v1; 
  unsigned __int64 v2; 
  UINT64 v3; 
  _MMPFN *v4; 
  UINT8 v5; 
  BOOL IsPfnLocked; 
  v1 = (UINT64 *)&MemoryDescriptorList[1];
  v2 = (((LODWORD(MemoryDescriptorList->StartVa) + MemoryDescriptorList->ByteOffset) & 0xFFF)
      + (unsigned __int64)MemoryDescriptorList->ByteCount
      + 4095) >> 12;
  while( 1 )
  {
    v3 = *v1;
    if( (unsigned int)MiIsPfn(*v1) )
    {
      v4 = (_MMPFN *)((char *)MmGetPfnDb() + 48 * v3);
      v5 = dword_140C4E40C == 2 ? 17 : MiLockPage((INT64)v4);
      IsPfnLocked = MiIsPfnLocked((INT64)v4);
      if( v5 != 17 )
        MiUnlockPage(v4, v5);
      if( !IsPfnLocked )
        break;
    }
    ++v1;
    if( !--v2 )
      return 1i64;
  }
  return 0i64;
}

Referenced by:

VERIFY_BUFFER_LOCKED
VerifierMmBuildMdlForNonPagedPool