MiIsFaultPteIntact
NTSTATUS __stdcall MiIsFaultPteIntact(VOID *FaultingAddress, _MMPTE *PointerPte, _MMPTE *PointerPteContents){
_QWORD *v3;
_QWORD *v4;
_MMPTE *ActualFaultingPte;
_MMPTE *v8;
UINT64 v9;
UINT64 v10;
int v11;
__int64 v12;
INT64 v13;
UINT64 v14;
UINT64 ProtectCode;
_MMVAD *VadOut;
VadOut = 0i64;
v4 = v3;
LODWORD(ProtectCode) = 0;
ActualFaultingPte = MiFindActualFaultingPte(FaultingAddress);
v8 = ActualFaultingPte;
if( ActualFaultingPte )
{
LODWORD(v9) = MI_READ_PTE_LOCK_FREE((INT64)ActualFaultingPte);
v10 = v9;
if( v8 != PointerPteContents )
{
if( (v9 & 0x400) == 0 )
return 0;
LOBYTE(v11) = MiIsPrototypePteVadLookup(v9);
if( v11 )
{
v13 = (INT64)MiCheckVirtualAddress(PointerPte, &ProtectCode, &VadOut);
}
else
{
if( *(&stru_140C4DB30 + 42) )
{
if( (v12 & 0x10) != 0 )
v12 &= ~0x10ui64;
else
v12 &= ~*(&stru_140C4DB30 + 42);
}
v13 = v12 >> 16;
}
if( (_MMPTE *)v13 != PointerPteContents )
return 0;
LODWORD(v14) = MI_READ_PTE_LOCK_FREE(v13);
v10 = v14;
}
if( v10 == *v4 )
return 1;
}
return 0;
}Referenced by:
MiFinishHardFault
MiIdealClusterPage
MiPrivateFixup
MiWaitForCollidedFaultComplete