| Previous | Next |
| TBSIMP_E_INVALID_CONTEXT_HANDLE | TBSIMP_E_TPM_ERROR |
TBSIMP_E_INVALID_CONTEXT_PARAM
What failed and what did not
TBSIMP_E_INVALID_CONTEXT_PARAM (0x80290203) 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 the internal context manager rejected a context attribute or version after RPC unmarshalling.
Collect a useful trace
| Question | Evidence for this HRESULT |
|---|---|
| What exact state was rejected? | the internal context manager rejected a context attribute or version after RPC unmarshalling |
| 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 structure, marshalled values, reserved bits, TPM version request, process architecture, and OS build |
| What is the controlled comparison? | zero-initialize a documented context structure and compare the marshalled bytes with the failing call |
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.
Narrow experiment
Use the following verification sequence:
- Capture the unmodified failing input and
0x80290203. - Zero-initialize a documented context structure and compare the marshalled bytes with the failing call.
- 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.
Similar-looking outcomes
| Other code | Why a different remedy follows |
|---|---|
TBSIMP_E_HASH_BAD_KEY | No entry with the specified key was found — a separate checkpoint when compared with this result. |
TBSIMP_E_INVALID_CONTEXT_HANDLE | The specified context handle is invalid — a separate checkpoint when compared with it. |
TBSIMP_E_DUPLICATE_VHANDLE | The specified virtual handle matches a virtual handle already in use — a separate checkpoint when compared with it. |
TBS_E_INVALID_CONTEXT_PARAM is the corresponding caller-facing contract error. The result difference determines whether to change serialization, authorization, resource lifetime, firmware/PPI state, command policy or only retry timing.
Operational response
Correct the original boundary by choosing this direction: correct the caller structure and install servicing fixes if the public input is valid but internal unmarshalling still differs. 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.