MiInitializePageColorBase
VOID __stdcall MiInitializePageColorBase(_MMSUPPORT_INSTANCE *Vm, UINT64 PreferredNode, _MI_COLOR_BASE *ColorBase){
_MMSUPPORT_INSTANCE *p_PageColor;
struct _KPRCB *CurrentPrcb;
int NodeShiftedColor;
p_PageColor = Vm;
if( (_DWORD)PreferredNode )
{
CurrentPrcb = KeGetCurrentPrcb();
NodeShiftedColor = ((_DWORD)PreferredNode - 1) << *(&stru_140C4DB30 + 156);
}
else
{
CurrentPrcb = *(&KiProcessorBlock + KeGetCurrentThread()->IdealProcessor);
NodeShiftedColor = CurrentPrcb->NodeShiftedColor;
}
ColorBase[3] = NodeShiftedColor;
ColorBase[2] = (1 << *(&stru_140C4DB30 + 157)) - 1;
if( !Vm || (Vm->Flags._bf_0 & 7u) >= 2 )
p_PageColor = (_MMSUPPORT_INSTANCE *)&CurrentPrcb->PageColor;
*(_QWORD *)ColorBase = p_PageColor;
}Referenced by:
MiAllocateDriverPage
MiAllocateKernelStackPages
MiAllocateMdlPagesByLists
MiAllocateTopLevelPage
MiBuildForkPte
MiCombineIdenticalPages
MiCopyOnWrite
MiDoneWithThisPageGetAnother
MiFillPerSessionProtos
MiGetClusterPage
MiGetLargePagesDemoteAsNeeded
MiGetPageForHeader
MiGetPoolPages
MiHandleForkTransitionPte
MiHugePageOperation
MiIdealClusterPage
MiInitializeColorBase
MiInitializeScrubPacket
MiMakeOutswappedPageResident
MiMapNewSession
MiMapPageFileHash
MiPfPrepareReadList
MiPfPrepareSequentialReadList
MiPfPutPagesInTransition
MiPrefetchPreallocatePages
MiProcessVaContiguityInformation
MiPruneStandbyPages
MiResolveMappedFileFault
MiResolvePrivateZeroFault
MiScrubNodeLargePages
MiSwitchToTransition
MiTimeSingleLargePageZeroWorker
MiWalkEntireImage
MmAllocateIndependentPagesEx
MmAllocateNonChargedSecurePages
MmCheckCachedPageStates
MxRelocatePageTables