| Previous | Next |
| TPM_E_NOTRESETABLE | TPM_E_BAD_TYPE |
TPM_E_NOTLOCAL
The relevant TPM condition
TPM_E_NOTLOCAL (0x80280033) belongs to TPM 1.2 command processing. This result means the PCR reset request requires a locality that is not represented by the current command transport.
The first producer to identify 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: 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.
| 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 diagnostic 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 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. |
TPM_E_NOTRESETABLE | Attempt to reset a PCR register that does not have the resettable attribute. |
TPM_E_NOTFIPS | The TPM is attempting to execute a command only available when in FIPS mode. |
By contrast, 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.
References
- TCG: TPM 1.2 Main Specification — source for this result.
- TCG: TPM 1.2 Part 2 — Structures — source for this result.
- TCG: TPM 1.2 Part 3 — Commands — source for this result.
- Microsoft: TPM Base Services portal — source for this result.
Looking for a different code? Search another status or error code.
