| Previous | Next |
| TPM_E_NOOPERATOR | TPM_E_DELEGATE_LOCK |
TPM_E_RESOURCEMISSING
Which layer owns this HRESULT
TPM_E_RESOURCEMISSING (0x8028004A) belongs to TPM 1.2 resources, delegation and contexts. The base What Is page already shows the short Windows message; the additional diagnostic value is that this result marks a saved context points to a TPM 1.2 resource that is no longer loaded or recoverable in the expected resource set.
Diagnostic record
| Question | Evidence for this HRESULT |
|---|---|
| What exact state was rejected? | a saved context points to a TPM 1.2 resource that is no longer loaded or recoverable in the expected resource set |
| Which layer owns the result? | The TPM resource, context or delegation manager, sometimes mediated by TBS virtualization. |
| What must be correlated? | context blob, resource handle and type, TBS virtual-handle mapping, prior flushes, service restart, sleep/resume, and creating context |
| What is the controlled comparison? | create, save and reload a fresh resource without crossing a context or power boundary |
How to verify the distinction
The one-variable check is to create, save and reload a fresh resource without crossing a context or power boundary. Record the before/after state that the result command is allowed to change. If the operation can have side effects, use a disposable key, session, counter or NV index rather than production material.
- Capture this result and
0x8028004Aat the first code-specific return boundary. - Decode the result state: handle namespace, owning context, save/load history, family state and resource lifetime.
- Run the result controlled comparison once and preserve both binary transcripts.
- Verify the expected this result output or state transition instead of relying on absence of a UI message.
Common false equivalences
| Comparison code | Built-in distinction |
|---|---|
TPM_E_DELEGATE_LOCK | The delegate administration is locked — a separate checkpoint when compared with it. |
TPM_E_NOOPERATOR | No operator AuthData value is set — a separate checkpoint when compared with it. |
TPM_E_DELEGATE_FAMILY | Attempt to manage a family other then the delegated family — a separate checkpoint when compared with it. |
It specifically answers whether a saved context points to a TPM 1.2 resource that is no longer loaded or recoverable in the expected resource set. In contrast, TPM_E_INVALID_RESOURCE reports a resource-type mismatch; this code reports that the referenced resource is absent.
What a real fix looks like
To remediate it, recreate the resource after it is flushed or expired and avoid sharing context blobs across process or boot lifetimes. Do not persist volatile TPM or TBS handles as durable identifiers. A numeric handle can be valid only inside the creating context and lifecycle, even when its value looks unchanged after restart.
After correcting it, start with a fresh caller context where the protocol requires one, replay the original intended operation, and confirm that hardware-backed policy remains enforced.
Authoritative references
- Microsoft: Resource Virtualization in TBS — source for the checkpoint.
- Microsoft: Command Scheduling in TBS — source for the checkpoint.
- Microsoft: Using TPM Base Services — source for the checkpoint.
- TCG: TPM 1.2 Part 3 — Context commands — source for the checkpoint.
Looking for a different code? Search another status or error code.