| Previous | Next |
| TBSIMP_E_COMMAND_FAILED | TBSIMP_E_RESOURCE_EXPIRED |
TBSIMP_E_UNKNOWN_ORDINAL
Read the result in context
TBSIMP_E_UNKNOWN_ORDINAL (0x80290212) belongs to the public and internal TPM Base Services path. The base What Is page already shows the short Windows message; the additional diagnostic value is that this result marks the TBS implementation does not recognize the TPM 1.2 ordinal it was asked to schedule or virtualize.
The first producer to identify for this HRESULT is the TBS client library, local RPC service and command scheduler before or around device execution. TBS centralizes TPM access through a local RPC service. A failure can therefore occur in the caller contract, RPC/service startup, scheduling, buffer handling or TPM submission, and each layer requires different evidence.
The result value 0x80290212 should remain attached to the symbolic name. Some this result logs store the value as a negative signed integer; others expose only a generic CNG, WMI, BitLocker or enrollment message. Neither substitution identifies the TBS implementation does not recognize the TPM 1.2 ordinal it was asked to schedule or virtualize as precisely as it.
Fields worth decoding
- Producer for this HRESULT: the TBS client library, local RPC service and command scheduler before or around device execution.
- Rejected invariant: the TBS implementation does not recognize the TPM 1.2 ordinal it was asked to schedule or virtualize.
- Decisive capture: ordinal, command header, TPM generation, caller privilege, OS command tables, and whether the operation was added after the OS build.
- Safe comparison: submit a known supported capability ordinal through the same context and decode the failing command header.
Controlled comparison
Build the result minimal case around the original command contract. Use a disposable object when the request can write NV data, advance a counter, change authorization state or consume a lock transition. The comparison is valid only when the caller, TPM generation and security policy remain the same.
| Question | Evidence for this HRESULT |
|---|---|
| What exact state was rejected? | the TBS implementation does not recognize the TPM 1.2 ordinal it was asked to schedule or virtualize |
| Which layer owns the result? | The TBS client library, local RPC service and command scheduler before or around device execution. |
| What must be correlated? | ordinal, command header, TPM generation, caller privilege, OS command tables, and whether the operation was added after the OS build |
| What is the controlled comparison? | submit a known supported capability ordinal through the same context and decode the failing command header |
Adjacent failure boundaries
| Constant | Checkpoint represented by its standard message |
|---|---|
TBSIMP_E_TPM_INCOMPATIBLE | TBS is not compatible with the version of TPM found on the system — a separate checkpoint when compared with this result. |
TBSIMP_E_COMMAND_FAILED | The TPM command failed — a separate checkpoint when compared with this result. |
TBSIMP_E_OUT_OF_MEMORY | There was not enough memory to fulfill the request — a separate checkpoint when compared with it. |
The codes above may appear in the same workflow, but they are not aliases. TPM_E_BAD_ORDINAL is the TPM device’s own unknown-command response.
Repair without destroying evidence
Use the command set supported by the installed windows/tbs version or a documented higher-level api. Do not restart or disable TBS before capturing its service and event data. Most caller-contract errors are reproducible without touching TPM ownership, firmware state or stored keys.
Proof for this HRESULT 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 it.
Source material
- Microsoft: About TPM Base Services — source for the checkpoint.
- Microsoft: TBS return codes — source for the checkpoint.
- Microsoft: Tbsi_Context_Create — source for the checkpoint.
- Microsoft: Tbsip_Submit_Command — source for the checkpoint.
Looking for a different code? Search another status or error code.