| Previous | Next |
| SL_REMAPPING_SP_STATUS_INVALIDARG | SL_REMAPPING_SP_STATUS_INSUFFICIENT_BUFFER |
SL_REMAPPING_SP_STATUS_ALREADY_EXISTS
How to read this result without losing context
Keep the symbolic result SL_REMAPPING_SP_STATUS_ALREADY_EXISTS together with HRESULT 0xC004D105. The producer is the Software Protection security-processor API; at the stateful API layer that initializes a protected environment, validates handles and versions, commits changes, enumerates data and enforces trusted-time or debugger restrictions, Windows determined that creation was requested for an object or value that is already present in the protected environment.
For triage, this belongs to the Software Protection security-processor API. Existing state is different from a duplicate serialized token or a trusted-store entry-key collision at a lower layer. Product-key changes or network tests are useful only when the evidence points back to those layers.
From HRESULT to a verified cause
- Identify the caller and operation instance that produced
0xC004D105. - Collect the code-specific evidence: record object identifier, namespace, create/open flags and whether the first creation committed successfully.
Where it sits in the licensing pipeline
These results describe the protected API contract; they are not automatically evidence that the installed product key is invalid. To verify this, record object identifier, namespace, create/open flags and whether the first creation committed successfully.
The diagnostic record that matters
- trusted time and system UTC time
- Security-SPP event sequence and caller process
- operation and API version
- environment or handle lifetime
- buffer length and returned required size
What to repair—and what not to reset
Open/update the existing object when permitted or choose a genuinely new identifier.
Representative case: A retry repeats create after the first request succeeded but its response was lost.
Do not confuse it with these nearby results
| Result | Different condition |
|---|---|
SL_REMAPPING_SP_STATUS_INVALIDARG | Compared with this result, an API argument is outside the accepted range, combination or object contract. |
SL_REMAPPING_SP_STATUS_GENERIC_FAILURE | Compared with this result, the security processor failed without exposing a more specific public status at this boundary. |
SL_REMAPPING_SP_STATUS_INSUFFICIENT_BUFFER | Compared with this result, the caller-provided output buffer cannot hold the complete security-processor result. |
Actions that usually destroy useful evidence
- Do not retry the whole activation workflow without preserving the first API result.
- Do not attach debuggers or instrumentation to a protected production path while reproducing the issue.
Technical references
- Software Licensing provider — official platform context used to interpret it.
- SoftwareLicensingService WMI class — supported state, API or recovery information relevant to this HRESULT.
- SoftwareLicensingProduct WMI class — reference for evidence collection and post-repair verification.
- Windows SDK constants — technical contract for the subsystem producing it.
Looking for a different code? Search another status or error code.
