| Previous | Next |
| TBS_E_SERVICE_NOT_RUNNING | TBS_E_TOO_MANY_RESOURCES |
TBS_E_TOO_MANY_TBS_CONTEXTS
Which layer owns this HRESULT
TBS_E_TOO_MANY_TBS_CONTEXTS means TBS cannot allocate another client context because the service context limit has been reached.
The first producer to identify is the TBS context and virtual-resource manager that maps finite TPM slots for multiple clients. TBS resource virtualization maps client-visible virtual handles to finite physical TPM key, authorization and transport slots. Cleanup, eviction and context ownership determine whether a mapping can be restored.
Keep the result value 0x80284009 attached to the symbolic name. Some logs may store it as a negative signed integer or expose only a generic CNG, WMI, BitLocker or enrollment message. Preserve the original HRESULT because those representations can hide the TPM- or TBS-specific condition.
Diagnostic record
- Producer: the TBS context and virtual-resource manager that maps finite TPM slots for multiple clients.
- Rejected invariant: TBS cannot allocate another client context because the service context limit has been reached.
- What to capture: number of open contexts by process, leaked handles, service diagnostics, application concurrency, context close paths, and recent crashes.
- Safe comparison: close one disposable context and verify that another can be created without restarting the service.
How to verify the distinction
| Question | Evidence |
|---|---|
| What exact state was rejected? | TBS cannot allocate another client context because the service context limit has been reached |
| Which layer owns the result? | The TBS context and virtual-resource manager that maps finite TPM slots for multiple clients. |
| What must be correlated? | number of open contexts by process, leaked handles, service diagnostics, application concurrency, context close paths, and recent crashes |
| Controlled comparison | close one disposable context and verify that another can be created without restarting the service |
Common false equivalences
| Constant | Meaning |
|---|---|
TBS_E_TOO_MANY_RESOURCES | A new virtual resource could not be created because there are too many open virtual resources. |
TBSIMP_E_INVALID_CONTEXT_HANDLE | The specified context handle is invalid. |
TBSIMP_E_INVALID_CONTEXT_PARAM | An invalid context parameter was specified. |
The codes above may appear in the same workflow, but they are not aliases. TBSIMP_E_TOO_MANY_TBS_CONTEXTS is the internal implementation form of the same resource boundary.
What a real fix looks like
Pair every successful create with close and pool contexts only where the api design allows it. 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.
Proof consists of a successful replay plus validation of the intended key, PCR, NV, context, event-log, provider or service result. A software fallback or a newly provisioned blank TPM answers a different question than the original failure.
Source material
Looking for a different code? Search another status or error code.