| Previous | Next |
| hrNone | WDSCP_CATEGORY |
S_FALSE
Successful HRESULT with a false or incomplete condition
S_FALSE is HRESULT 1 (0x00000001) from winerror.h. The documented description is “Not a failure.” The high-order severity bit is clear, so this is a success result, but it carries more information than plain S_OK.
The method did not fail, but its documented predicate, enumeration step, or requested condition is false or not fully satisfied.
Evidence to preserve
- Preserve the method name and requested item count.
- Preserve actual output count and nullability of outputs.
- Preserve the loop position or predicate being evaluated.
- Preserve any secondary status array.
- Preserve the branch taken by the caller after SUCCEEDED returned true.
Where the result is encountered
- This result can appear in COM enumerators that reached the end before returning the requested count; record the producing interface and method.
- This result can appear in predicate-style methods whose answer is false; record the producing interface and method.
- It can appear in operations that completed without producing the optional result requested by the caller; record the producing interface and method.
State to verify
The central question is whether the API contract defines what false means for this method; the numeric value alone does not identify end-of-enumeration, absence, cancellation, or partial work.
Diagnostic sequence
- Capture the raw HRESULT
0x00000001immediately after the returning method and record whether the caller usedSUCCEEDED,FAILED, equality testing, or exception translation. - Verify the method-specific state: the API contract defines what false means for this method; the numeric value alone does not identify end-of-enumeration, absence, cancellation, or partial work.
Difference from nearby HRESULT values
S_OK communicates the primary successful condition. E_FAIL and other values with the severity bit set are failures and must not be grouped with it.
Correct handling, retry, and recovery
Handle it as an explicit alternative success path. Check the method documentation and outputs before deciding whether to stop enumeration, report absence, or continue with reduced functionality.
Practical validation scenario
An enumerator requests four elements and returns one element with it. Correct code consumes the one valid element and then stops; code that treats every SUCCEEDED result as a full batch reads uninitialized entries.
Developer and administrator guidance
References
Looking for a different code? Search another status or error code.