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