KiLogControlProtectionUserModeReturnMismatch

void __fastcall KiLogControlProtectionUserModeReturnMismatch(int a1, __int64 a2, void *a3, void *a4){
  _EPROCESS *Process; 
  signed __int32 MitigationFlags2; 
  signed __int32 v6; 
  INT64 v7; 

  Process = KeGetCurrentThread()->Process;
  _m_prefetchw(&Process->2516);
  MitigationFlags2 = Process->MitigationFlags2;
  do
  {
    v6 = MitigationFlags2;
    MitigationFlags2 = _InterlockedCompareExchange(
                         (volatile signed __int32 *)&Process->2516,
                         MitigationFlags2 | 0x10000,
                         MitigationFlags2);
  }
  while( v6 != MitigationFlags2 );
  if( (MitigationFlags2 & 0x10000) == 0 )
  {
    if( a1 == 1 || a1 == 2 )
      EtwTimLogControlProtectionUserModeReturnMismatch(a1, Process, a3, a4, (Process->MitigationFlags2 & 0x100000) != 0);
    LODWORD(v7) = 0;
    wil_details_FeatureReporting_ReportUsageToService(
      (wil_details_FeatureReportingCache *)&WheapErrorSourceTable + 115,
      0x178806Fui64,
      0i64,
      0i64,
      (FEATURE_LOGGED_TRAITS *)&Feature_PdttSupport_logged_traits,
      v7);
  }
}

Referenced by:

No references.