VerifierMmProbeAndLockPages

VOID __stdcall VerifierMmProbeAndLockPages(_MDL *MemoryDescriptorList, UINT64 AccessMode, _LOCK_OPERATION Operation){
  char v4; 
  unsigned __int8 CurrentIrql; 
  __int16 v7; 
  __int16 MdlFlags; 
  __int64 v9; 
  UINT64 v10; 
  VOID *retaddr; 

  v4 = AccessMode;
  CurrentIrql = KeGetCurrentIrql();
  if( CurrentIrql > 2u && (MmVerifierData & 1) != 0 )
    VerifierBugCheckIfAppropriate(0xC4ui64, 0x70u, CurrentIrql, (ULONG_PTR)MemoryDescriptorList, (char)AccessMode, v10);
  v7 = 2071;
  if( (unsigned int)VfVerifyMode < 3 )
    v7 = 2067;
  MdlFlags = MemoryDescriptorList->MdlFlags;
  if( ((unsigned __int16)MdlFlags & (unsigned __int16)v7) != 0 && (MmVerifierData & 1) != 0 )
    VerifierBugCheckIfAppropriate(
      0xC4ui64,
      0xB0u,
      (ULONG_PTR)MemoryDescriptorList,
      MemoryDescriptorList->MdlFlags,
      (unsigned __int16)MdlFlags & (unsigned __int16)v7,
      v10);
  if( VfFaultsInjectResourceFailure(0i64) == 1 )
    RtlRaiseStatus(-1073741663);
  LOBYTE(v9) = v4;
  ((void(__fastcall *)(_MDL *, __int64, _QWORD))pXdvMmProbeAndLockPages)(
    MemoryDescriptorList,
    v9,
    (unsigned int)Operation);
  if( (MmVerifierData & 0x1000) != 0 )
    ViTargetAddToCounter(retaddr, 0xB0ui64, 0xB8ui64, MemoryDescriptorList->ByteCount);
}

Referenced by:

No references.