ANAVEM
Languagefr
Server room thermal monitoring displays showing temperature data and cooling system status
Event ID 38InformationKernel-PowerWindows

Windows Event ID 38 – Kernel-Power: System Thermal Zone Temperature

Event ID 38 from Kernel-Power indicates thermal zone temperature changes or thermal management events in Windows systems, typically logged when CPU or system temperatures exceed normal operating thresholds.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 March 20269 min read 0
Event ID 38Kernel-Power 5 methods 9 min
Event Reference

What This Event Means

Event ID 38 represents Windows' thermal zone monitoring mechanism, which is integral to modern system power management. When this event fires, it indicates that the operating system has detected a significant temperature change in one or more thermal zones defined by the system's ACPI firmware. These thermal zones typically correspond to CPU cores, GPU units, motherboard sensors, or other critical components equipped with temperature monitoring capabilities.

The event data contains thermal zone identifiers, temperature readings, and threshold information that help administrators understand which components are experiencing thermal stress. In Windows 11 and Server 2025, Microsoft enhanced the thermal management subsystem to provide more detailed event data, including specific sensor locations and trending information that wasn't available in earlier versions.

From a system health perspective, Event ID 38 serves as an early warning system for potential hardware issues. Consistent temperature spikes may indicate failing cooling systems, dust accumulation, or inadequate thermal design for the current workload. In virtualized environments, this event can also indicate resource contention where multiple VMs are competing for CPU resources, causing sustained high utilization and elevated temperatures.

The event's significance extends beyond simple temperature monitoring. Modern processors use dynamic frequency scaling based on thermal feedback, and Event ID 38 often correlates with performance throttling events. Understanding these thermal events helps administrators optimize system performance while maintaining hardware reliability.

Applies to

Windows 10Windows 11Windows Server 2019/2022/2025
Analysis

Possible Causes

  • CPU or GPU temperatures exceeding normal operating thresholds due to high system load
  • Cooling system failures including fan malfunctions or blocked air vents
  • Dust accumulation on heat sinks, fans, or air intake filters
  • Ambient temperature increases in server rooms or data centers
  • Thermal paste degradation on CPU or GPU heat sinks
  • Power supply thermal protection activation during high load conditions
  • ACPI thermal zone configuration changes after firmware updates
  • Virtualization host resource contention causing sustained high CPU utilization
  • Background processes or malware causing unexpected system load
  • Hardware aging affecting thermal dissipation efficiency
Resolution Methods

Troubleshooting Steps

01

Check Event Viewer for Thermal Details

Start by examining the specific thermal event details in Event Viewer to understand which thermal zones are affected.

  1. Open Event Viewer by pressing Win + R, typing eventvwr.msc, and pressing Enter
  2. Navigate to Windows LogsSystem
  3. Filter for Event ID 38 by right-clicking SystemFilter Current Log → Enter 38 in Event IDs field
  4. Double-click recent Event ID 38 entries to view detailed information including thermal zone data
  5. Note the timestamp patterns to identify if thermal events correlate with specific system activities

Use PowerShell to extract thermal events with detailed information:

Get-WinEvent -FilterHashtable @{LogName='System'; Id=38; StartTime=(Get-Date).AddDays(-7)} | Select-Object TimeCreated, Id, LevelDisplayName, Message | Format-Table -Wrap
Pro tip: Export thermal events to CSV for trend analysis using Export-Csv -Path "C:\temp\thermal_events.csv" -NoTypeInformation
02

Monitor System Temperatures with Performance Counters

Use Windows Performance Toolkit and PowerShell to monitor real-time thermal data and correlate with Event ID 38 occurrences.

  1. Open Performance Monitor by typing perfmon.msc in Run dialog
  2. Add thermal-related counters: Processor Information% Processor Performance and Thermal Zone InformationTemperature
  3. Create a data collector set to log thermal data over time
  4. Monitor CPU utilization during thermal events to identify correlation

Use PowerShell to check current thermal zone status:

# Get thermal zone information
Get-WmiObject -Class Win32_PerfRawData_Counters_ThermalZoneInformation | Select-Object Name, Temperature

# Monitor processor thermal throttling
Get-Counter "\Processor Information(_Total)\% Processor Performance" -SampleInterval 5 -MaxSamples 12

Check Windows thermal management settings in registry:

# View thermal policy settings
Get-ItemProperty -Path "HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\*"
03

Investigate Hardware and Cooling Systems

Perform physical inspection and hardware diagnostics to identify cooling system issues causing thermal events.

  1. Check system fans are operational and spinning at appropriate speeds
  2. Inspect air vents and filters for dust accumulation or blockages
  3. Verify thermal paste application on CPU and GPU heat sinks
  4. Monitor ambient temperature in server room or equipment area
  5. Use hardware monitoring tools to check individual component temperatures

Use PowerShell to check fan speeds and hardware sensors:

# Check system fans via WMI
Get-WmiObject -Class Win32_Fan | Select-Object Name, Status, DesiredSpeed

# Get temperature sensors
Get-WmiObject -Class MSAcpi_ThermalZoneTemperature -Namespace "root/wmi" | Select-Object InstanceName, CurrentTemperature

Run Windows Hardware Diagnostic to check cooling system:

# Start hardware diagnostic
mdsched.exe
Warning: Physical inspection should only be performed by qualified personnel with proper ESD protection and system shutdown procedures.
04

Analyze Power Management and ACPI Configuration

Examine Windows power management settings and ACPI thermal zone configuration to optimize thermal behavior.

  1. Open Device Manager and expand System devices
  2. Locate ACPI Thermal Zone entries and check for driver issues
  3. Review power plan settings in Control PanelPower Options
  4. Check processor power management settings for thermal throttling configuration
  5. Verify BIOS/UEFI thermal settings are appropriate for the workload

Use PowerShell to analyze power configuration:

# Get current power plan
Get-WmiObject -Class Win32_PowerPlan -Namespace "root\cimv2\power" | Where-Object {$_.IsActive -eq $true}

# Check processor power management settings
powercfg /query SCHEME_CURRENT SUB_PROCESSOR

# List all thermal zones
Get-WmiObject -Class Win32_PerfRawData_Counters_ThermalZoneInformation | Format-List

Modify power settings to reduce thermal stress:

# Set maximum processor state to 90% to reduce heat generation
powercfg /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 90
powercfg /setactive SCHEME_CURRENT
05

Implement Advanced Thermal Monitoring and Alerting

Deploy comprehensive thermal monitoring solution using Windows Event Forwarding and custom PowerShell scripts for proactive thermal management.

  1. Configure Windows Event Forwarding to centralize thermal events from multiple systems
  2. Create custom PowerShell scripts to correlate thermal events with performance data
  3. Set up automated alerts when thermal thresholds are exceeded
  4. Implement thermal trend analysis using Windows Performance Toolkit
  5. Deploy third-party thermal monitoring tools for enhanced visibility

Create advanced thermal monitoring script:

# Advanced thermal monitoring script
$thermalEvents = Get-WinEvent -FilterHashtable @{LogName='System'; Id=38; StartTime=(Get-Date).AddHours(-1)}
$cpuTemp = Get-WmiObject -Class MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"

foreach ($event in $thermalEvents) {
    $eventData = [xml]$event.ToXml()
    Write-Host "Thermal Event: $($event.TimeCreated) - Zone: $($eventData.Event.EventData.Data)" -ForegroundColor Yellow
}

# Check if temperature exceeds threshold
$maxTemp = ($cpuTemp.CurrentTemperature | Measure-Object -Maximum).Maximum / 10 - 273.15
if ($maxTemp -gt 70) {
    Write-Warning "High temperature detected: $maxTemp°C"
    # Send alert or trigger cooling response
}

Configure Windows Event Forwarding for centralized monitoring:

# Configure event forwarding subscription
wecutil cs thermal-monitoring.xml

# Enable event forwarding service
Set-Service -Name WinRM -StartupType Automatic
Start-Service WinRM
Pro tip: Use Task Scheduler to run thermal monitoring scripts automatically and integrate with SCOM or other monitoring platforms for enterprise environments.

Overview

Event ID 38 from the Kernel-Power source fires when Windows detects thermal zone temperature changes or thermal management events. This event is part of Windows' Advanced Configuration and Power Interface (ACPI) thermal management system, which monitors CPU, GPU, and system component temperatures to prevent overheating damage.

The event typically appears in the System log when thermal sensors report temperature changes that cross predefined thresholds. Modern Windows systems use this event to track thermal states for power management decisions, including CPU throttling, fan speed adjustments, and thermal shutdown procedures. While often informational, frequent occurrences may indicate cooling system issues or excessive system load.

This event becomes critical in server environments where thermal management directly impacts performance and hardware longevity. Windows Server 2025 and Windows 11 24H2 include enhanced thermal telemetry that makes Event ID 38 more granular, providing better insights into component-specific temperature events. System administrators should monitor this event alongside performance counters to identify thermal bottlenecks before they impact system stability.

Frequently Asked Questions

What does Event ID 38 from Kernel-Power mean and should I be concerned?+
Event ID 38 indicates that Windows detected a thermal zone temperature change, typically when CPU or system temperatures cross predefined thresholds. While often informational, frequent occurrences may signal cooling system issues, high system load, or environmental problems. Monitor the frequency and correlate with system performance to determine if action is needed. Occasional thermal events during heavy workloads are normal, but consistent patterns warrant investigation.
How can I determine which component is causing thermal events in Event ID 38?+
Examine the event details in Event Viewer to identify specific thermal zone information. Use PowerShell command Get-WmiObject -Class MSAcpi_ThermalZoneTemperature -Namespace "root/wmi" to view current thermal zones and temperatures. Cross-reference thermal zone identifiers in the event data with your system's ACPI thermal zones. Modern systems often label zones by component (CPU, GPU, motherboard), making identification easier.
Can Event ID 38 thermal events cause system performance issues or crashes?+
Yes, thermal events can directly impact performance through CPU throttling and may lead to system instability if temperatures become critical. Windows automatically reduces processor performance when thermal thresholds are exceeded to prevent hardware damage. Severe thermal conditions can trigger emergency shutdowns. Monitor processor performance counters alongside thermal events to identify throttling impacts and address cooling issues before they affect system reliability.
What's the difference between Event ID 38 thermal events in Windows 11 versus older versions?+
Windows 11 and Server 2025 provide enhanced thermal telemetry with more granular temperature data and improved thermal zone identification. The event structure includes additional sensor information and trending data not available in Windows 10. Modern versions also integrate better with hardware monitoring APIs and provide more detailed ACPI thermal zone mapping, making thermal troubleshooting more precise and actionable.
How do I prevent Event ID 38 thermal events in server environments?+
Implement proactive thermal management including regular cleaning of air filters and heat sinks, monitoring ambient temperatures, ensuring adequate airflow, and configuring appropriate power management settings. Use PowerShell scripts to monitor thermal trends and set up automated alerts. Consider adjusting processor maximum performance states during peak loads and implementing workload balancing across multiple systems to reduce individual system thermal stress.
Documentation

References (2)

Emanuel DE ALMEIDA
Written by

Emanuel DE ALMEIDA

Senior IT Journalist & Cloud Architect

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Share your thoughts and insights

You must be logged in to comment.

Loading comments...