ViMmMapLockedPagesSanityChecks

VOID __stdcall ViMmMapLockedPagesSanityChecks(_MDL *MemoryDescriptorList, CHAR AccessMode){
  unsigned __int8 CurrentIrql; 
  __int16 v5; 
  __int16 MdlFlags; 
  unsigned __int16 v7; 
  UINT64 v8; 

  if( (MmVerifierData & 1) == 0 )
    return;
  CurrentIrql = KeGetCurrentIrql();
  if( AccessMode )
  {
    if( CurrentIrql > 1u )
      VerifierBugCheckIfAppropriate(0xC4ui64, 0x75u, CurrentIrql, (ULONG_PTR)MemoryDescriptorList, AccessMode, v8);
    if( AccessMode == 1 )
      goto LABEL_12;
  }
  else if( CurrentIrql > 2u )
  {
    VerifierBugCheckIfAppropriate(0xC4ui64, 0x74u, CurrentIrql, (ULONG_PTR)MemoryDescriptorList, 0, v8);
  }
  v5 = 37;
  if( (unsigned int)VfVerifyMode < 3 )
    v5 = 33;
  MdlFlags = MemoryDescriptorList->MdlFlags;
  if( ((unsigned __int16)MdlFlags & (unsigned __int16)v5) != 0 )
    VerifierBugCheckIfAppropriate(
      0xC4ui64,
      0xB2u,
      (ULONG_PTR)MemoryDescriptorList,
      MemoryDescriptorList->MdlFlags,
      (unsigned __int16)MdlFlags & (unsigned __int16)v5,
      v8);
LABEL_12:
  v7 = 23;
  if( AccessMode != 1 )
    v7 = 18;
  if( (v7 & MemoryDescriptorList->MdlFlags) == 0 )
    VerifierBugCheckIfAppropriate(
      0xC4ui64,
      0xB3u,
      (ULONG_PTR)MemoryDescriptorList,
      MemoryDescriptorList->MdlFlags,
      v7,
      v8);
  MmCheckMdlPages(MemoryDescriptorList);
}

Referenced by:

VerifierMmMapLockedPages
VerifierMmMapLockedPagesSpecifyCache