MiWakeLargePageRebuild
NTSTATUS __stdcall MiWakeLargePageRebuild(
_MI_PARTITION *Partition,
UINT64 NodeNumber,
UINT64 Flags,
UINT64 SequenceNumber,
UINT64 *RebuildActivated){
__int64 v5;
_MI_REBUILD_LARGE_PAGE_TIMER *p_LargePageRebuildTimer;
unsigned __int8 v7;
unsigned __int64 v8;
_BYTE *v9;
NTSTATUS v10;
if( (Partition->Core.u.LongFlags & 0x20) != 0 )
return 1;
v5 = (unsigned int)NodeNumber;
p_LargePageRebuildTimer = &Partition->Core.NodeInformation[(unsigned int)NodeNumber].LargePageRebuildTimer;
if( p_LargePageRebuildTimer->RebuildActive || p_LargePageRebuildTimer->NextPassDelta != 8 && (Flags & 1) == 0 )
return 1;
v7 = PsReferencePartitionSafe((INT64)Partition->Core.PartitionObject);
v10 = v7;
if( v7 == 1 )
{
v9[33] = v7;
*(_QWORD *)v9 = 0i64;
*((_QWORD *)v9 + 2) = MiRebuildLargePages;
*((_QWORD *)v9 + 3) = (v5 << 53) | (v8 >> 4) & 0x1FFFFFFFFFFFFFi64;
ExQueueWorkItemToPartition(v9);
}
return v10;
}Referenced by:
MiSignalLargePageRebuild
MiUnlinkNodeLargePageHelper