MiIdentifyPatchImageWritablePages
NTSTATUS __stdcall MiIdentifyPatchImageWritablePages(INT64 a1){
_CONTROL_AREA *v2;
__int64 TotalNumberOfPtes;
VOID *Pool;
unsigned int v6;
_CONTROL_AREA *i;
v2 = MiSectionControlArea(*(_SECTION **)(*(_QWORD *)a1 + 112i64));
TotalNumberOfPtes = v2->Segment->TotalNumberOfPtes;
Pool = MiAllocatePool(64i64, (unsigned __int64)(unsigned int)(TotalNumberOfPtes + 7) >> 3, 0x4D424450ui64);
if( !Pool )
return -1073741670;
*(_QWORD *)(a1 + 40) = TotalNumberOfPtes;
v6 = 0;
*(_QWORD *)(a1 + 48) = Pool;
for( i = v2 + 1; i; i = *(_CONTROL_AREA **)&i->gap8[8] )
{
if( (i->NumberOfPfnReferences & 8) != 0 )
RtlSetBitsEx((_RTL_BITMAP_EX *)(a1 + 40), v6, HIDWORD(i->NumberOfMappedViews));
v6 += HIDWORD(i->NumberOfMappedViews);
}
return 1;
}Referenced by:
MiApplyDriverHotPatch