| Previous | Next |
| WHV_E_VP_DOES_NOT_EXIST | WHV_E_INVALID_VP_REGISTER_NAME |
WHV_E_INVALID_VP_STATE
Virtual processor control calls have concurrency and state requirements
WHV_E_INVALID_VP_STATE indicates that the VP exists, but its current execution state does not permit the requested operation. A common boundary is WHvRunVirtualProcessor: while a VP is running on one thread, another control path may need to cancel the run and wait for it to return before changing or destroying state.
Partition reset, VP deletion, register updates and concurrent run attempts can all create invalid ordering. Retrying immediately from several threads tends to preserve the race instead of resolving it.
Evidence and corrective action
- Assign a single execution owner to each VP and prevent concurrent
WHvRunVirtualProcessorcalls. - Use
WHvCancelRunVirtualProcessorand wait for the run call to exit before teardown or incompatible updates. - Record the requested API, VP index and controller state transition at failure time.
- Serialize partition reset and VP deletion against all active processor threads.
- Treat repeated invalid-state results as a lifecycle bug in the virtualization stack, not as guest workload backpressure.
References
- Microsoft: WHvRunVirtualProcessor
- Microsoft: WHvCancelRunVirtualProcessor
- Microsoft: Windows Hypervisor Platform API
Looking for a different code? Search another status or error code.