PfSnLogPageFaultCommon
INT64 __fastcall PfSnLogPageFaultCommon(INT64 a1, _QWORD *a2, UINT64 a3, UINT64 a4, INT64 a5){
UINT64 v8;
unsigned int v9;
INT64 result;
unsigned __int64 *v11;
unsigned __int64 *a3a;
a3a = 0i64;
PfSnGetFileInformation(a1, a2);
if( (*(_BYTE *)(a1 + 484) & 1) == 0 && *(_BYTE *)(*(_QWORD *)(a1 + 352) + 1850i64) == 2 )
_InterlockedOr16((volatile signed __int16 *)(a1 + 484), 1u);
if( a4 >= 0x20000000000i64 )
return 3221227780i64;
v8 = a4 >> 9;
if( (a5 & 1) != 0 )
v9 = 1;
else
v9 = (a5 & 2) != 0 ? 3 : 0;
PfSnCheckLogSequenceNumber(a1);
if( v9 || (a3a = *(unsigned __int64 **)(a1 + 408), *a3a >> 3 != v8) || a3a[1] != a3 )
{
result = PfSnTraceGetLogEntry(a1, 1ui64, &a3a);
if( (int)result < 0 )
return result;
v11 = a3a;
*a3a = (8 * v8) | *(_DWORD *)a3a & 7;
v11[1] = a3;
*v11 = v9 | *v11 & 0xFFFFFFFFFFFFFFF8ui64;
_InterlockedAdd((volatile signed __int32 *)(a1 + 332), 1u);
if( !v9 )
*(_QWORD *)(a1 + 408) = a3a;
}
return 0i64;
}Referenced by:
MiCompleteRestrictedImageFault
MiMakeSystemCacheRangeValid
PfFileInfoNotify
PfSnLogPageFault