VerifierMmAllocatePagesForMdlEx
_MDL *__stdcall VerifierMmAllocatePagesForMdlEx(
_LARGE_INTEGER LowAddress,
_LARGE_INTEGER HighAddress,
_LARGE_INTEGER SkipBytes,
UINT64 TotalBytes,
_MEMORY_CACHING_TYPE CacheType,
UINT64 Flags){
_MDL *v11;
_MDL *v12;
UINT64 Size;
UINT64 v14;
VOID *retaddr;
ViMmValidateIrql((MmVerifierData & 0x20000) != 0);
if( VfFaultsInjectResourceFailure(0i64) )
return 0i64;
if( (MmVerifierData & 0x4000000) != 0 && HighAddress.QuadPart < 0x100000000ui64 )
VerifierBugCheckIfAppropriate(0xC4ui64, 0x141u, HighAddress.anonymous_0.LowPart, TotalBytes, 0, v14);
v11 = (_MDL *)((__int64(__fastcall *)(_QWORD, _QWORD, _QWORD, _QWORD, _DWORD, _DWORD))pXdvMmAllocatePagesForMdlEx)(
(_LARGE_INTEGER)LowAddress.QuadPart,
(_LARGE_INTEGER)HighAddress.QuadPart,
(_LARGE_INTEGER)SkipBytes.QuadPart,
TotalBytes,
CacheType,
Flags);
v12 = v11;
if( v11 )
{
Size = v11->Size;
VfFillAllocatePagesForMdl(v11, CacheType, (unsigned int)Flags);
if( (MmVerifierData & 0x1000) != 0 )
ViTargetAddToCounter(retaddr, 0xE0ui64, 0xE8ui64, v12->ByteCount);
}
else
{
Size = 48i64;
}
VfAllocPoolNotification(v12, Size);
return v12;
}Referenced by:
No references.