MiSplitBitmapPages
NTSTATUS __stdcall MiSplitBitmapPages(_MI_SYSTEM_VA_TYPE VaType, VOID *NextBuffer, UINT64 PteCount){
INT64 v3;
UINT64 v5;
_MMPTE *PteBase;
INT64 v8;
v3 = 9i64;
if( VaType != MiVaSystemPtesLarge )
v3 = (unsigned int)VaType;
v5 = 544i64;
if( (((_DWORD)v3 - 5) & 0xFFFFFFFB) != 0 )
{
if( (unsigned int)(v3 - 14) > 1 && (_DWORD)v3 != 8 && KeGetCurrentIrql() <= 1u )
v5 = 545i64;
}
else
{
v5 = 560i64;
}
PteBase = MmGetPteBase();
LODWORD(v8) = 0;
return MiMakeZeroedPageTablesEx(
(INT64)PteBase + (((unsigned __int64)NextBuffer >> 9) & 0x7FFFFFFFF8i64),
(INT64)PteBase + ((((unsigned __int64)NextBuffer + ((PteCount - 1) >> 3)) >> 9) & 0x7FFFFFFFF8i64),
v5,
v3,
v8);
}Referenced by:
MiExpandPtes
MiExtendDynamicBitMap
MiInitializeDriverImages
MiMarkRetpolineBits
MiSplitMirrorBitMap
MiSplitPfnBitMaps
MxMarkActiveDriverBits