MmResetDriverPaging
VOID __stdcall MmResetDriverPaging(PVOID AddressWithinSection){
__int64 v1;
__int64 v2;
char *v3;
IMAGE_NT_HEADERS *v4;
INT64 *v5;
__int64 SizeOfOptionalHeader;
_IMAGE_OPTIONAL_HEADER64 *p_OptionalHeader;
int NumberOfSections;
_DWORD *i;
unsigned int v10;
__int64 v11;
MMPTE *PteAddress;
unsigned __int64 v13;
v1 = MiImagePagable(0i64, (unsigned __int64)AddressWithinSection);
v2 = v1;
if( v1 )
{
v3 = *(char **)(v1 + 48);
v4 = RtlImageNtHeader(v3);
MiCancelPhase0Locking(v2);
SizeOfOptionalHeader = v4->FileHeader.SizeOfOptionalHeader;
p_OptionalHeader = &v4->OptionalHeader;
NumberOfSections = v4->FileHeader.NumberOfSections;
for( i = (_DWORD *)((char *)&p_OptionalHeader->Magic + SizeOfOptionalHeader); NumberOfSections; --NumberOfSections )
{
if( (i[9] & 0x2000000) == 0 && !MmImageSectionPagable(i, v5) )
{
v10 = i[4];
if( v10 < i[2] )
v10 = i[2];
MiGetPteAddress(&v3[(unsigned int)i[3] - 1 + (unsigned __int64)v10]);
PteAddress = MiGetPteAddress(&v3[v11]);
MiLockCode(v2, (unsigned __int64)PteAddress, v13, 2);
}
i += 10;
}
}
}Referenced by:
No references.