MiUpdatePageFileList
VOID __stdcall MiUpdatePageFileList(_MMPAGING_FILE *PagingFile, UINT64 Insert){
int v2;
_RTL_BALANCED_NODE *p_FileObjectNode;
unsigned __int64 v5;
_FILE_OBJECT *File;
BOOL v7;
_QWORD *v8;
_QWORD *v9;
v2 = Insert;
if( !PagingFile->File )
return;
p_FileObjectNode = &PagingFile->FileObjectNode;
v5 = (unsigned __int8)ExAcquireSpinLockExclusive((INT64 *)&stru_140C4DB30 + 473);
if( !v2 )
{
RtlAvlRemoveNode((UINT64 *)&stru_140C4DB30 + 472, (INT64 *)p_FileObjectNode);
goto LABEL_5;
}
File = PagingFile->File;
LOWORD(PagingFile->_bf_cc) |= 0x100u;
v7 = 0;
v8 = (_QWORD *)*(&stru_140C4DB30 + 472);
if( !*(&stru_140C4DB30 + 472) )
goto LABEL_4;
while( (unsigned __int64)File < *(v8 - 25) )
{
v9 = (_QWORD *)*v8;
if( !*v8 )
goto LABEL_4;
LABEL_9:
v8 = v9;
}
v9 = (_QWORD *)v8[1];
if( v9 )
goto LABEL_9;
v7 = 1;
LABEL_4:
RtlAvlInsertNodeEx((_RTL_BALANCED_NODE **)&stru_140C4DB30 + 472, (UINT64)v8, v7, p_FileObjectNode);
LABEL_5:
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&stru_140C4DB30 + 473);
__writecr8(v5);
}Referenced by:
MiDeletePagefile
MiIncreaseCommitLimits
MiInsertPageFileInList