| Previous | Next |
| DRIVER_VERIFIER_DMA_VIOLATION | INVALID_CANCEL_OF_FILE_OPEN |
INVALID_FLOATING_POINT_STATE
The INVALID_FLOATING_POINT_STATE bug check has a value of 0x000000E7. This indicates that a thread's saved floating-point state is invalid.
INVALID_FLOATING_POINT_STATE Parameters
Parameter 1 indicates which validity check failed. Parameter 4 is not used. For INVALID_FLOATING_POINT_STATE, the meaning of the other parameters depends on the value of Parameter 1.
| Parameter 1 | Parameter 2 | Parameter 3 | Cause of Error |
|---|---|---|---|
0x0 |
The flags field |
0 |
The saved context flags field is invalid. Either FLOAT_SAVE_VALID is not set, or some reserved bits are nonzero. |
0x1 |
The saved IRQL |
The current IRQL |
The current processor's IRQL is not the same as when the floating-point context was saved. |
0x2 |
The saved address of the thread that owns this floating-point context |
The current thread |
The saved context does not belong to the current thread. |
Cause
While restoring the previously-saved floating-point state for a thread, the state was found to be invalid.
Diagnostic approach
Use Parameter 1 to identify the violated floating-point save/restore invariant. For 0x0, inspect the saved flags for a missing FLOAT_SAVE_VALID bit or unexpected reserved bits. For 0x1, compare the saved and current IRQL. For 0x2, compare the saved owner thread with the current thread.
The failing stack should identify the driver path that saved or restored the context. Check that every successful save is paired with a restore on the same thread and at the expected IRQL, and that the saved state storage remains valid until restoration. Preserve the stack, thread identity, IRQL values, and the saved-state address so the invalid lifecycle can be reproduced rather than treating floating-point use itself as the failure.
References
Looking for a different code? Search another status or error code.