| Previous | Next |
| TBS_E_IOERROR | TBS_E_SERVICE_NOT_RUNNING |
TBS_E_INVALID_CONTEXT_PARAM
The state machine behind the code
TBS_E_INVALID_CONTEXT_PARAM (0x80284007) 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 context-creation structure contains a version, flags or TPM-generation request that the API does not accept.
The first producer to identify for TBS_E_INVALID_CONTEXT_PARAM is the TBS client library, local RPC service and command scheduler before or around device execution. For TBS_E_INVALID_CONTEXT_PARAM, tBS centralizes TPM access through a local RPC service. For TBS_E_INVALID_CONTEXT_PARAM, 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 TBS_E_INVALID_CONTEXT_PARAM value 0x80284007 should remain attached to the symbolic name. Some TBS_E_INVALID_CONTEXT_PARAM logs store the value as a negative signed integer; others expose only a generic CNG, WMI, BitLocker or enrollment message. Neither substitution identifies the the TBS context-creation structure contains a version, flags or TPM-generation request that the API does not accept as precisely as TBS_E_INVALID_CONTEXT_PARAM.
Evidence table
- Producer for
TBS_E_INVALID_CONTEXT_PARAM: the TBS client library, local RPC service and command scheduler before or around device execution. - Rejected invariant: the TBS context-creation structure contains a version, flags or TPM-generation request that the API does not accept.
- Decisive capture: structure version, includeTpm12/includeTpm20 flags, reserved fields, structure size, OS version, and the exact context-create entry point.
- Safe comparison: zero-initialize the documented structure and request only the detected TPM generation.
Reproduction plan
Build the TBS_E_INVALID_CONTEXT_PARAM minimal case around the original command contract. Use a disposable object when the TBS_E_INVALID_CONTEXT_PARAM request can write NV data, advance a counter, change authorization state or consume a lock transition. For TBS_E_INVALID_CONTEXT_PARAM, the comparison is valid only when the caller, TPM generation and security policy remain the same.
| Question | Evidence for TBS_E_INVALID_CONTEXT_PARAM |
|---|---|
| What exact state was rejected? | the TBS context-creation structure contains a version, flags or TPM-generation request that the API does not accept |
| Which layer owns the result? | For TBS_E_INVALID_CONTEXT_PARAM, the TBS client library, local RPC service and command scheduler before or around device execution. |
| What must be correlated? | structure version, includeTpm12/includeTpm20 flags, reserved fields, structure size, OS version, and the exact context-create entry point |
| What is the controlled comparison? | zero-initialize the documented structure and request only the detected TPM generation |
Contrast with neighboring results
| Constant | Checkpoint represented by its standard message |
|---|---|
TBS_E_SERVICE_START_PENDING | The TBS service has been started but is not yet running — a separate checkpoint when compared with TBS_E_INVALID_CONTEXT_PARAM. |
TBS_E_INSUFFICIENT_BUFFER | A specified output buffer is too small — a separate checkpoint when compared with TBS_E_INVALID_CONTEXT_PARAM. |
TBS_E_COMMAND_CANCELED | The command was canceled — a separate checkpoint when compared with TBS_E_INVALID_CONTEXT_PARAM. |
The codes above may appear in the same TBS_E_INVALID_CONTEXT_PARAM workflow, but they are not aliases. For TBS_E_INVALID_CONTEXT_PARAM, TBS_E_BAD_PARAMETER covers parameters to TBS calls more generally.
Confirming remediation
Use the correct structure version and leave reserved fields zero; do not pass an application-private extension. For TBS_E_INVALID_CONTEXT_PARAM, do not restart or disable TBS before capturing its service and event data. For TBS_E_INVALID_CONTEXT_PARAM, most caller-contract errors are reproducible without touching TPM ownership, firmware state or stored keys.
Proof for TBS_E_INVALID_CONTEXT_PARAM 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 TBS_E_INVALID_CONTEXT_PARAM.
Source material
- Microsoft: About TPM Base Services — source for the
TBS_E_INVALID_CONTEXT_PARAMcheckpoint. - Microsoft: TBS return codes — source for the
TBS_E_INVALID_CONTEXT_PARAMcheckpoint. - Microsoft: Tbsi_Context_Create — source for the
TBS_E_INVALID_CONTEXT_PARAMcheckpoint. - Microsoft: Tbsip_Submit_Command — source for the
TBS_E_INVALID_CONTEXT_PARAMcheckpoint.
Looking for a different code? Search another status or error code.