What does HRESULT 0x80284007 (TBS_E_INVALID_CONTEXT_PARAM) mean?

 
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.

QuestionEvidence 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

ConstantCheckpoint represented by its standard message
TBS_E_SERVICE_START_PENDINGThe TBS service has been started but is not yet running — a separate checkpoint when compared with TBS_E_INVALID_CONTEXT_PARAM.
TBS_E_INSUFFICIENT_BUFFERA specified output buffer is too small — a separate checkpoint when compared with TBS_E_INVALID_CONTEXT_PARAM.
TBS_E_COMMAND_CANCELEDThe 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


Looking for a different code? Search another status or error code.