| Previous | Next |
| MK_S_HIM | MK_S_MONIKERALREADYREGISTERED |
MK_S_US
Both monikers are the common prefix
MK_S_US is HRESULT 262630 (0x000401E6) from winerror.h. AllStat describes MK_S_US as “Common prefix is both monikers.” The high-order severity bit is clear, so this is a success result, but it carries more information than plain S_OK.
The common-prefix calculation succeeded and reports that the two monikers share their entire identity for this comparison.
Where this result is encountered
MK_S_UScan appear in IMoniker::CommonPrefixWith equality-like outcomes; record the producing interface and method rather than inferring behavior from the symbolic name alone.MK_S_UScan appear in link deduplication; record the producing interface and method rather than inferring behavior from the symbolic name alone.MK_S_UScan appear in running-object lookup preparation; record the producing interface and method rather than inferring behavior from the symbolic name alone.
For MK_S_US, the same numeric success value can be mishandled when a wrapper exposes only a Boolean. For MK_S_US, keep the original HRESULT until the code-specific outputs and state transition have been evaluated.
Diagnostic sequence
- For
MK_S_US, capture the raw HRESULT0x000401E6immediately after the returning method and record whether the caller usedSUCCEEDED,FAILED, equality testing, or exception translation. - Identify the exact owner of
MK_S_US: interface, method, object instance, provider or filter version, thread or apartment, and operation phase. - Validate the decisive contract boundary for
MK_S_US: both monikers are equivalent under the prefix operation, while any stronger identity or binding assumptions are verified separately. - For
MK_S_US, inspect every output parameter, count, status array, returned interface, or side effect that the method documentation associates with this success-with-information result. - Compare the observed state before and after
MK_S_US; do not assume that a success severity bit means every optional sub-operation completed. - For
MK_S_US, reproduce the smallest request with the same object state and then change only the condition identified by the evidence before repeating the operation.
State boundary that must be proved
The central question for MK_S_US is whether both monikers are equivalent under the prefix operation, while any stronger identity or binding assumptions are verified separately. For MK_S_US, the HRESULT alone confirms neither unrelated work nor the quality of optional outputs.
A reliable interpretation of MK_S_US names the exact method contract, the object generation, and the outputs that remain valid. For MK_S_US, this prevents a success-with-information result from being promoted to full success or demoted to a generic error.
Correct handling, retry, and recovery
Treat the whole moniker as the common prefix and avoid generating an unnecessary relative suffix. Use IsEqual or binding only when the application requires stronger identity proof.
Retry MK_S_US only when the recorded state can change the documented outcome. For MK_S_US, repeating the same call is inappropriate for a stable end marker, cancellation, unsupported format, adjusted property, or partial result whose completed side effects have not been reconciled.
Evidence and telemetry to preserve
- For
MK_S_US, preserve display names and moniker classes. - For
MK_S_US, preserve IMoniker::IsEqual result. - For
MK_S_US, preserve bind context. - For
MK_S_US, preserve returned prefix ownership. - For
MK_S_US, preserve object identity after binding when relevant.
Also record mk_s_us_operation, mk_s_us_object, mk_s_us_state_before, mk_s_us_state_after, UTC time, process and thread identifiers, and a correlation ID. For MK_S_US, keep secrets out of logs while retaining GUIDs, CLSIDs, media subtypes, property IDs, row identities, and hashes needed to distinguish objects.
Difference from nearby HRESULT values
MK_S_ME and MK_S_HIM identify one operand as a strict or selected prefix; MK_S_US indicates the shared prefix covers both.
For MK_S_US, this distinction determines whether the caller should consume partial outputs, stop iteration, wait, reconfigure, notify the user, or perform no error recovery at all.
Developer and administrator guidance
Code handling MK_S_US should test the exact documented value before a generic SUCCEEDED(hr) branch when outputs or control flow differ. Operational remediation for MK_S_US should target the owning COM, media, Tablet PC, or OLE DB component instead of resetting unrelated services.
A support report for MK_S_US should include decimal 262630, hexadecimal 0x000401E6, the AllStat meaning, the owning API, and the first detailed status or output that explains why the method did not return ordinary S_OK.
Practical validation scenario
A document contains two independently reconstructed monikers for the same embedded item. MK_S_US lets the link manager collapse the path representation, then IsEqual confirms the intended equality contract.
The negative test should preserve the condition that produces MK_S_US; the recovery test should alter only that condition and verify the final state as well as the HRESULT.
References
- Microsoft: COM moniker status codes — official documentation relevant to
MK_S_US. - Microsoft: IMoniker::CommonPrefixWith — official documentation relevant to
MK_S_US. - Microsoft: IMoniker::IsEqual — official documentation relevant to
MK_S_US.
Looking for a different code? Search another status or error code.