| Previous | Next |
| TBSIMP_E_OUT_OF_MEMORY | TBSIMP_E_LIST_NOT_FOUND |
TBSIMP_E_LIST_NO_MORE_ITEMS
The protocol checkpoint
TBSIMP_E_LIST_NO_MORE_ITEMS (0x8029020D) 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 list iteration reached the end or found an empty collection.
What to preserve before retrying
| Question | Evidence for this HRESULT |
|---|---|
| What exact state was rejected? | an internal TBS list iteration reached the end or found an empty collection |
| Which layer owns the result? | The TBS context and virtual-resource manager that maps finite TPM slots for multiple clients. |
| What must be correlated? | list purpose, iterator state, context and resource counts, command that triggered enumeration, and whether concurrent cleanup changed the list |
| What is the controlled comparison? | repeat the operation with one known resource present and no concurrent close or flush |
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.
Minimal reproduction
Use the following verification sequence:
- Capture the unmodified failing input and
0x8029020D. - Repeat the operation with one known resource present and no concurrent close or flush.
- 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.
Nearby codes with different meanings
| Other code | Why a different remedy follows |
|---|---|
TBSIMP_E_LIST_NOT_FOUND | The specified item was not found in the list — a separate checkpoint when compared with this result. |
TBSIMP_E_DUPLICATE_VHANDLE | The specified virtual handle matches a virtual handle already in use — a separate checkpoint when compared with it. |
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_LIST_NOT_FOUND means a requested specific item is absent rather than iteration being exhausted. The result difference determines whether to change serialization, authorization, resource lifetime, firmware/PPI state, command policy or only retry timing.
Resolution criteria
Correct the original boundary by choosing this direction: treat end-of-list as a state boundary where appropriate or repair the caller/service assumption that another item must exist. 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.
