KiLogControlProtectionUserModeReturnMismatch
VOID __fastcall KiLogControlProtectionUserModeReturnMismatch(INT64 a1, INT64 a2, VOID *a3, VOID *a4){
__int64 v4;
signed __int32 v5;
signed __int32 v6;
INT64 v7;
v4 = *((_QWORD *)KeGetCurrentThread() + 68);
_m_prefetchw((const void *)(v4 + 2516));
v5 = *(_DWORD *)(v4 + 2516);
do
{
v6 = v5;
v5 = _InterlockedCompareExchange((volatile signed __int32 *)(v4 + 2516), v5 | 0x10000, v5);
}
while( v6 != v5 );
if( (v5 & 0x10000) == 0 )
{
if( (_DWORD)a1 == 1 || (_DWORD)a1 == 2 )
EtwTimLogControlProtectionUserModeReturnMismatch(a1, v4, a3, a4, (*(_DWORD *)(v4 + 2516) & 0x100000) != 0);
LODWORD(v7) = 0;
wil_details_FeatureReporting_ReportUsageToService(
&Feature_CET_User_Audit_Livedump__private_reporting,
0x178806Fui64,
0i64,
0i64,
(FEATURE_LOGGED_TRAITS *)&Feature_PdttSupport_logged_traits,
v7);
}
}Referenced by:
No references.