MiIdentifyPfnWrapper
VOID __stdcall MiIdentifyPfnWrapper(_MMPFN *Pfn1, _MMPFN_IDENTITY *Identity){
unsigned __int8 CurrentIrql;
UINT64 SpinCount;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
LODWORD(SpinCount) = 0;
while( _interlockedbittestandset64((volatile signed __int32 *)Pfn1 + 6, 0x3Fui64) )
{
do
KeYieldProcessorEx(&SpinCount);
while( *((__int64 *)Pfn1 + 3) < 0 );
}
MiIdentifyPfn(Pfn1, (UINT64 *)Identity);
_InterlockedAnd64((volatile signed __int64 *)Pfn1 + 3, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(CurrentIrql);
}Referenced by:
MiLogAllocateWsleEvent
MiQueryLeafPte
MmIdentifyPhysicalMemory
MmRelocatePfnList
PfpPfnPrioRequest