| Previous | Next |
| TPM_E_NOTRESETABLE | TPM_E_BAD_TYPE |
TPM_E_NOTLOCAL
The decisive TPM checkpoint
TPM_E_NOTLOCAL (0x80280033) belongs to TPM 1.2 command processing. The base What Is page already shows the short Windows message; the additional diagnostic value is that this result marks the PCR reset request requires a locality that is not represented by the current command transport.
The first producer to identify for this HRESULT is the TPM 1.2 command decoder and state machine. TPM 1.2 is a command/response device with strict binary structures and stateful resources. Windows may present the device response as an HRESULT, but the diagnostic meaning still belongs to the command field, key, session, PCR, NV index or lifecycle check named by the TPM specification.
Read this result as its own boundary in a sequence, not as a verdict that every TPM feature is broken. The sequence reaches the PCR reset request requires a locality that is not represented by the current command transport, and the component returns 0x80280033 before the application can safely assume that later key, attestation, boot or licensing work occurred.
Before changing the platform
- Request identity: exact function or command, input lengths, flags, caller context and this result.
- State identity: PCR index, resettable and locality attributes, TBS locality argument, effective locality, and boot environment.
- Platform identity for this HRESULT: TPM generation, manufacturer/firmware revision, Windows build and relevant service events.
- Binary identity: preserve opaque structures byte-for-byte and log
0x80280033in hexadecimal.
Test the contract
Repeat only from the platform component that can legitimately assert the required locality and compare the same pcr attributes. Keep every other this result test condition unchanged. If the comparison reaches a later checkpoint, then the original the condition has been isolated even when a second defect remains.
| Observed outcome | Interpretation |
|---|---|
| The exact request succeeds | The changed condition belongs to the rejected the PCR reset request requires a locality that is not represented by the current command transport. |
| A more specific earlier code appears | Preserve the earlier result in the result trace; the previous trace probably lost the first producer. |
| The same code returns with identical bytes | Escalate the persistent it with firmware, service and command evidence rather than broad configuration changes. |
| The code disappears only after destructive reset | The result experiment is not diagnostic because original protected state and evidence were removed. |
Why another code is not equivalent
| Nearby constant | Why it is different |
|---|---|
TPM_E_BAD_TYPE | Make identity blob not properly typed — a separate checkpoint when compared with it. |
TPM_E_NOTRESETABLE | Attempt to reset a PCR register that does not have the resettable attribute — a separate checkpoint when compared with it. |
TPM_E_NOTFIPS | The TPM is attempting to execute a command only available when in FIPS mode — a separate checkpoint when compared with it. |
For this page, the useful contrast is: TPM_E_NOTRESETABLE means the PCR cannot be reset at all under its attributes.
Evidence of success
Apply the narrow remedy: move the operation to the authorized boot or firmware context; do not spoof locality in a user-mode request. Do not clear ownership, delete keys or reset PCR-related state merely to see whether the message disappears; those actions can destroy the evidence and protected material while leaving serialization or command-order defects unchanged.
Close the incident only when the same API or TPM command passes with the intended hardware-backed behavior and the expected output can be independently validated.
References
- TCG: TPM 1.2 Main Specification — source for the checkpoint.
- TCG: TPM 1.2 Part 2 — Structures — source for the checkpoint.
- TCG: TPM 1.2 Part 3 — Commands — source for the checkpoint.
- Microsoft: TPM Base Services portal — source for the checkpoint.
Looking for a different code? Search another status or error code.
