| Previous | Next |
| SPAPI_E_DRIVER_STORE_DELETE_FAILED | SPAPI_E_ERROR_NOT_INSTALLED |
SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW
SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW — 0x800F0300
This code places the first failure in device-installer recursion or stack exhaustion. Operationally, the setup host exhausted its stack in a path that SetupAPI could not safely unwind and continue.
Meaning in the subsystem
For device installation, SetupAPI. Dev. Log is the chronological backbone. Correlate the HRESULT with the device instance ID, selected INF and section, signature or rank decision, file queue, class/co-installer dispatch, and rollback for that exact attempt instead of reading isolated lines from different installations.
Increasing stack size may postpone the crash but does not correct unbounded recursion or callback cycles.
Minimum useful evidence
- Faulting thread stack, guard-page exception, recursion pattern, and module ownership
- DIF request, class/co-installer chain, and repeated callback sequence
- Stack reserve/commit settings and any hooks or filters in the host
- Minimal device/INF combination that triggers the recursion
Isolate the responsible condition
- Remove one installer extension at a time in a lab image.
- Break recursive property-change or reenumeration loops with instrumentation.
- Reproduce under a debugger with a larger symbolic stack trace, not merely a larger stack.
Regression proof
Apply the smallest change that addresses the first rejected condition: Eliminate recursive installer dispatch, cyclic notifications, or oversized stack allocations in the responsible component.
Close the incident only when stress repeated DIF operations and nested notifications while stack depth remains bounded and no guard-page exception occurs.
Technical references
These references define the HRESULT family and subsystem contract used above:
Looking for a different code? Search another status or error code.