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.