What does BSOD 166 (FP_EMULATION_ERROR) mean?

 
Previous Next
ACPI_BIOS_ERROR BAD_EXHANDLE

FP_EMULATION_ERROR

Floating-point emulation failure for FP_EMULATION_ERROR

FP_EMULATION_ERROR is bug check code 0x000000A6. This historical bug check is tied to processor floating-point emulation state. It is most relevant for old hardware, emulation, or compatibility paths where floating-point instructions are trapped and emulated.

How to read it in a dump

  • Check CPU, virtualization, and emulation context before assuming application math caused it.
  • The trap frame and processor features decide whether this was real hardware, VM emulation, or old compatibility code.
  • Modern systems should rarely take this path.

What to check

  • Check hypervisor and CPU feature exposure in VMs.
  • Look for old drivers or software using unusual floating-point state in kernel mode.
  • Collect CPU feature, firmware, and VM configuration details.

References

Dump evidence

Preserve the complete dump, the four bug-check parameters, the exact Windows build, loaded-module list, and the event timeline immediately before the stop. AllStat summarizes the condition as “this result”; that sentence identifies the failure class, while the parameters and stack determine which object, driver, processor, or subsystem instance was involved.

Analysis order

  • Run WinDbg !analyze -v, then inspect the documented meaning of each parameter instead of relying only on the probably-caused-by line.
  • find the earliest abnormal event: driver update, firmware change, device reset, storage error, verifier report, resource exhaustion, or application hang connected with fp / emulation.
  • keep third-party filter, security, storage, graphics, and virtualization drivers in the module inventory; removing evidence before dump analysis can obscure the responsible path.

Do not repeatedly reboot a machine affected by this result before collecting the dump and event logs. Recovery actions should follow the component identified by the stack and parameters, not merely the symbolic stop-code name.


Looking for a different code? Search another status or error code.