VerifierMmMapLockedPagesSpecifyCache

VOID *__stdcall VerifierMmMapLockedPagesSpecifyCache(
        PMDL MemoryDescriptorList,
        INT64 AccessMode,
        _MEMORY_CACHING_TYPE CacheType,
        VOID *RequestedAddress,
        UINT64 BugCheckOnFailure,
        _MM_PAGE_PRIORITY Priority){
  CHAR v8; 
  VOID *v10; 
  UINT64 Param4; 
  UINT64 v13; 
  VOID *retaddr; 

  v8 = AccessMode;
  if( (MmVerifierData & 1) != 0 )
    ViMmMapLockedPagesSanityChecks(MemoryDescriptorList, AccessMode);
  VfCheckPagePriority(Priority, retaddr);
  if( (MemoryDescriptorList->MdlFlags & 0x2000) == 0 && (_DWORD)BugCheckOnFailure )
  {
    if( VfFaultsIsSystemSufficientlyBooted() && (MmVerifierData & 1) != 0 )
      VerifierBugCheckIfAppropriate(
        0xC4ui64,
        0x82u,
        (ULONG_PTR)MemoryDescriptorList,
        MemoryDescriptorList->MdlFlags,
        BugCheckOnFailure,
        v13);
    goto LABEL_8;
  }
  if( VfFaultsInjectResourceFailure(0i64) != 1 )
  {
LABEL_8:
    LODWORD(v13) = Priority;
    LODWORD(Param4) = BugCheckOnFailure;
    v10 = MmMapLockedPagesSpecifyCache(MemoryDescriptorList, v8, CacheType, RequestedAddress, Param4, v13);
    VfAllocPoolNotification(v10, MemoryDescriptorList->ByteCount);
    if( v10 )
    {
      if( (MmVerifierData & 0x1000) != 0 )
        ViTargetAddToCounter(retaddr, 0xC0ui64, 0xC8ui64, MemoryDescriptorList->ByteCount);
    }
    return v10;
  }
  if( v8 )
    RtlRaiseStatus(-1073741670);
  return 0i64;
}

Referenced by:

No references.