| Previous | Next |
| TBSIMP_E_INVALID_OUTPUT_POINTER | TBSIMP_E_RPC_INIT_FAILED |
TBSIMP_E_INVALID_PARAMETER
Which layer owns this HRESULT
TBSIMP_E_INVALID_PARAMETER (0x80290208) 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 an internal TBS routine rejected a parameter after the public call was decoded.
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.
Diagnostic record
Preserve these this result items before changing anything:
- This result and
0x80290208, the exact returning method or command, and the first nested status. - public API and arguments, marshalled command, internal event, command locality and priority, buffer lengths, and OS build.
- The TPM generation, manufacturer/firmware revision, Windows build, caller identity and TBS/provider state for this HRESULT.
- The complete opaque request artifacts, redacting authorization secrets but not rewriting structure boundaries.
How to verify the distinction
Run this focused check: reduce the request to a documented minimal call and add one field at a time. Do not combine the result test with firmware updates, TPM clearing, account changes, key recreation and policy edits in the same trial; such a result cannot isolate this boundary.
| Checkpoint | Pass condition |
|---|---|
| an internal TBS routine rejected a parameter after the public call was decoded | The original this result command reaches the next defined state without returning it. |
| Security behavior | The result verification still uses the intended TPM, authorization, locality and policy. |
| Output integrity | The object, digest, event log or state transition produced after it validates independently. |
Common false equivalences
| Related result | Separate meaning |
|---|---|
TBSIMP_E_RPC_INIT_FAILED | The RPC subsystem could not be initialized — a separate checkpoint when compared with it. |
TBSIMP_E_INVALID_OUTPUT_POINTER | The pointer to the returned handle location was NULL or invalid — a separate checkpoint when compared with it. |
TBSIMP_E_SCHEDULER_NOT_RUNNING | The TBS scheduler is not running — a separate checkpoint when compared with it. |
The practical distinction is that TBSIMP_E_INVALID_CONTEXT_PARAM narrows the problem to context attributes.
What a real fix looks like
The supported direction is to correct the first invalid field or service-version mismatch before investigating TPM authorization. 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.
If the same bytes still return it after the documented preconditions are satisfied, retain this code-specific trace for the platform vendor or Windows component owner rather than erasing state.
Technical references
- 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.
