| Previous | Next |
| ERROR_RESUME_HIBERNATION | ERROR_DRIVERS_LEAKING_LOCKED_PAGES |
ERROR_FIRMWARE_UPDATED
Windows detected a firmware change since the previous boot
ERROR_FIRMWARE_UPDATED corresponds to Win32 error value documented as: Windows has detected that the system firmware (BIOS) was updated [previous firmware date = %2, current firmware date %3]. The platform firmware date or version differs from the value previously recorded. Such a change can alter ACPI tables, device enumeration, security settings, boot behavior, and power management.
Where the result appears in real systems
- First boot after BIOS or UEFI update.
- Automated hardware inventory.
- Boot diagnostics after vendor servicing.
Evidence to collect before changing the system
record previous and current firmware versions and dates, update package identity, Secure Boot state, TPM measurements, and newly enumerated devices; review vendor release notes and Windows System events
Keep the original numeric value, symbolic name, API return path, thread and process identity, and the exact timestamp in one diagnostic record. Those fields prevent later layers from replacing this specific result with a generic failure and make correlation with ETW or Event Viewer practical.
Handling and recovery
Complete any vendor-requested reboot cycle, verify security and virtualization settings, and retest affected devices. Management software should update its inventory baseline only after confirming the firmware change is expected.
Code that receives this result should classify it according to the operation that produced it: completion information, a recoverable environmental condition, or a programming defect. The result classification should be made at the API boundary where the caller still knows the handle, object, flags, and expected state.
What not to infer from this code
This result is an observation, not proof of a bad update. Problems after the transition require separate evidence such as device errors or failed boot measurements.
Implementation guidance
Preserve this result through logging and telemetry instead of immediately converting it to free-form text. When it crosses an HRESULT boundary, record both the original Win32 value and the converted HRESULT; when it crosses RPC, JSON, or another protocol, include an explicit error-domain field so the receiver does not convert it twice.
A useful automated test for it should reproduce the relevant state transition, assert the exact returned value, and verify cleanup after both the normal and exceptional path. The test for it should also check that a retry is performed only when the underlying state can genuinely change, because unconditional retries often hide ownership, architecture, power, or resource-negotiation defects.
References
Looking for a different code? Search another status or error code.