| Previous | Next |
| TBSIMP_E_CLEANUP_FAILED | TBSIMP_E_INVALID_CONTEXT_PARAM |
TBSIMP_E_INVALID_CONTEXT_HANDLE
Interpret the boundary first
TBSIMP_E_INVALID_CONTEXT_HANDLE (0x80290202) belongs to TBS resource virtualization. The base What Is page already shows the short Windows message; the additional diagnostic value is that this result marks an internal TBS operation received a context identifier that is absent from its context table.
Build the command transcript
| Question | Evidence for this HRESULT |
|---|---|
| What exact state was rejected? | an internal TBS operation received a context identifier that is absent from its context table |
| Which layer owns the result? | The TBS context and virtual-resource manager that maps finite TPM slots for multiple clients. |
| What must be correlated? | public context handle, RPC call boundary, process identity, service generation, close history, and any concurrent cancellation |
| What is the controlled comparison? | create a new context and execute one command synchronously without sharing the handle across processes |
Separate caller data from platform state. The result caller data includes the command, structures, lengths, handles and flags; platform state includes TPM generation, provisioning, locality, lockout, resource inventory, firmware and the TBS service lifecycle. This result is actionable only after the rejected side is identified.
Test one hypothesis
Use the following verification sequence:
- Capture the unmodified failing input and
0x80290202. - Create a new context and execute one command synchronously without sharing the handle across processes.
- Compare the first result divergent field or state transition.
- Repeat this result only after restoring the same baseline, with a bounded retry policy where the specification permits retry.
Do not merge these conditions
| Other code | Why a different remedy follows |
|---|---|
TBSIMP_E_INVALID_CONTEXT_PARAM | An invalid context parameter was specified — a separate checkpoint when compared with this result. |
TBS_E_TOO_MANY_RESOURCES | A new virtual resource could not be created because there are too many open virtual resources — a separate checkpoint when compared with it. |
TBSIMP_E_HASH_BAD_KEY | No entry with the specified key was found — a separate checkpoint when compared with it. |
TBS_E_INVALID_CONTEXT is the public API representation of an invalid client context. The result difference determines whether to change serialization, authorization, resource lifetime, firmware/PPI state, command policy or only retry timing.
A safe recovery path
Correct the original boundary by choosing this direction: invalidate cached handles after close or service restart and correct cross-thread/process lifetime management. Do not confuse a TBS virtual handle with a physical TPM handle or copy it to another process. Resource virtualization intentionally scopes mappings to a client context.
A successful it outcome preserves the intended hardware trust boundary, passes the original request, and produces verifiable output. Masking it, swallowing this HRESULT or switching silently to a software provider is not remediation.
References used for this checkpoint
- Microsoft: Resource Virtualization in TBS — source for the checkpoint.
- Microsoft: Command Scheduling in TBS — source for the checkpoint.
- Microsoft: About TPM Base Services — source for the checkpoint.
- Microsoft: Power Management in TBS — source for the checkpoint.
Looking for a different code? Search another status or error code.
