| Previous | Next |
| TBSIMP_E_NOT_ENOUGH_SPACE | TBSIMP_E_COMMAND_FAILED |
TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS
Locate the first producer
TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS (0x80290210) 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 TPM context capacity needed by TBS virtualization is exhausted.
Data to retain
| Question | Evidence for this HRESULT |
|---|---|
| What exact state was rejected? | the TPM context capacity needed by TBS virtualization is exhausted |
| Which layer owns the result? | The TBS context and virtual-resource manager that maps finite TPM slots for multiple clients. |
| What must be correlated? | active authorization/key/transport contexts, save/load history, physical slot counts, TBS clients, and abandoned sessions |
| What is the controlled comparison? | close one disposable TPM session and verify that a new one can then be created |
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.
Verification sequence
Use the following verification sequence:
- Capture the unmodified failing input and
0x80290210. - Close one disposable tpm session and verify that a new one can then be created.
- 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.
Codes that answer different questions
| Other code | Why a different remedy follows |
|---|---|
TBSIMP_E_RESOURCE_EXPIRED | The requested resource is no longer available — a separate checkpoint when compared with this result. |
TBSIMP_E_NOT_ENOUGH_SPACE | The TPM does not have enough space to load the requested resource — a separate checkpoint when compared with it. |
TBSIMP_E_INVALID_RESOURCE | The resource type did not match — a separate checkpoint when compared with it. |
TBSIMP_E_TOO_MANY_TBS_CONTEXTS concerns client service contexts, not TPM-resident contexts. The result difference determines whether to change serialization, authorization, resource lifetime, firmware/PPI state, command policy or only retry timing.
Exit condition for the incident
Correct the original boundary by choosing this direction: bound session lifetime and flush unused contexts instead of increasing parallel TPM work. 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.
