MmIsAddressValidEx
BOOL __stdcall MmIsAddressValidEx(INT64 a1){
_MMPTE *PteBase;
__int64 v2;
_QWORD *v3;
__int64 v5;
unsigned __int64 v6;
unsigned __int64 v7;
unsigned __int64 v8;
__int64 v9;
if( a1 >> 47 == -1 || a1 >> 47 == 0 )
{
PteBase = MmGetPteBase();
v6 = (unsigned __int64)PteBase + (((unsigned __int64)a1 >> 9) & 0x7FFFFFFFF8i64);
v7 = (unsigned __int64)PteBase + ((v6 >> 9) & 0x7FFFFFFFF8i64);
v8 = (unsigned __int64)PteBase + ((v7 >> 9) & 0x7FFFFFFFF8i64);
v9 = (__int64)PteBase + ((v8 >> 9) & 0x7FFFFFFFF8i64);
v2 = 4i64;
while( 1 )
{
v3 = (_QWORD *)*(&v5 + v2--);
if( (*v3 & 1) == 0 )
break;
if( (*v3 & 0x80u) != 0i64 )
return a1 < (unsigned __int64)PteBase || a1 > (unsigned __int64)MmGetPteLimit();
if( !v2 )
return 1;
}
}
return 0;
}Referenced by:
EtwpIsValidImageAddress
IoFreeDumpRange
IoSetDumpRange
IopGetMaxValidMemorySize
IopGetMaxValidMemorySizeDown
IopGetMaxValidSectionSize
IopGetMaxValidSectionSizeDown
KeValidateBugCheckCallbackRecord
KiDumpParameterImages
KiIsAddressRangeValid
KiPcToFileHeader
KiScanBugCheckCallbackList
KiValidateComponentName
MiAddUnicodeStringToCrashDump
MiCommitExistingVad
MiDbgWriteCheck
MiFreedUnusedPfnPagesWorker
MiInPagePageTable
MiIncreaseUsedPtesCount
MiKernelWriteToExecutableMemory
MiMakeSystemAddressValid
MiSetProtectionOnSection
MiWaitForInPageComplete
MmIsAddressValid
MmIsSpecialPoolAddress
RtlMarkHiberPhase
ViFreeTrackedPool