MiDeletePagefile
void __fastcall MiDeletePagefile(PVOID P, int a2){
__int64 i;
void *v5;
struct _PRIVILEGE_SET *v6;
UINT64 *v7;
__int16 v8;
void *v9;
struct _DMA_ADAPTER *v10;
void *v11;
void *v12;
for( i = 0i64; (unsigned int)i < *((_DWORD *)P + 18); i = (unsigned int)(i + 1) )
MiFreeModWriterEntry(*(_MMMOD_WRITER_MDL_ENTRY **)(*((_QWORD *)P + 8) + 8 * i), 0i64);
v5 = (void *)*((_QWORD *)P + 8);
if( v5 )
ExFreePoolWithTag(v5, 0);
v6 = (struct _PRIVILEGE_SET *)*((_QWORD *)P + 14);
if( v6 )
CmSiFreeMemory(v6);
v7 = (UINT64 *)*((_QWORD *)P + 27);
if( v7 )
MiReleasePageHash(v7, *((unsigned int *)P + 2));
MiFreePageFileHashPfns(*((_MI_PARTITION **)P + 31));
v8 = *((_WORD *)P + 102);
if( (v8 & 0x100) != 0 )
{
MiUpdatePageFileList((__int64)P, 0);
v8 = *((_WORD *)P + 102);
}
if( (v8 & 0x200) != 0 )
PiPagePathSetState(*((FILE_OBJECT **)P + 7), 0);
v9 = (void *)*((_QWORD *)P + 28);
if( v9 )
ObCloseHandle(v9, 0);
v10 = (struct _DMA_ADAPTER *)*((_QWORD *)P + 7);
if( v10 )
HalPutDmaAdapter(v10);
v11 = (void *)*((_QWORD *)P + 13);
if( v11 )
ExFreePoolWithTag(v11, 0);
v12 = (void *)*((_QWORD *)P + 24);
if( v12 )
ExFreePoolWithTag(v12, 0);
if( a2 )
ExFreePoolWithTag(P, 0);
}Referenced by:
MiCreatePagingFile
MiDeletePagingFiles
MmStoreRegister