PopThermalProcessUsermodeEvent

NTSTATUS __stdcall PopThermalProcessUsermodeEvent(PACKED_THERMAL_EVENT *Event){
  PopDiagTraceUsermodeThermalEvent((__int64)Event);
  if( *Event )
  {
    if( *Event == 1 )
    {
      PopDiagTraceUsermodeTripPointExceeded(*((_WORD *)Event + 6), (WCHAR *)Event + 7, (unsigned int)Event[2], 0);
      PopSqmThermalUsermodeEvent(
        *((_WORD *)Event + 6),
        (WCHAR *)Event + 7,
        (unsigned int)Event[2],
        (unsigned int)Event[1],
        0);
      PopAcquirePolicyLock();
      PopThermalHibernateInitiated = 1;
      PopReleasePolicyLock();
    }
  }
  else
  {
    PopDiagTraceUsermodeTripPointExceeded(*((_WORD *)Event + 6), (WCHAR *)Event + 7, (unsigned int)Event[2], 1u);
    PopSqmThermalUsermodeEvent(
      *((_WORD *)Event + 6),
      (WCHAR *)Event + 7,
      (unsigned int)Event[2],
      (unsigned int)Event[1],
      1u);
    PopThermalWriteShutdownToRegistry();
  }
  return 0;
}

Referenced by:

NtPowerInformation