| Previous | Next |
| VFW_E_VP_NEGOTIATION_FAILED | VFW_E_NO_VP_HARDWARE |
VFW_E_DDRAW_CAPS_NOT_SUITABLE
Exact result and bit fields
VFW_E_DDRAW_CAPS_NOT_SUITABLE has the unsigned HRESULT value 2147746419 (0x80040273) and the signed 32-bit representation -2147220877. AllStat describes it as “Either DirectDraw has not been installed or the Video Card capabilities are not suitable. Make sure the display is not in 16 color mode or try changing the graphics mode”. In the operation that produces this result, the selected legacy video path requires DirectDraw capabilities that the current graphics mode or adapter does not provide.
The high bit is set, so this value is a failure HRESULT. Its facility field is 4 (FACILITY_ITF) and its low code is 627 (0x0273). These fields classify this result, but they do not identify which filter, thread, device, file or graph generation returned it.
Conditions that can produce it
- Cause 1 for this HRESULT: the display runs in an obsolete low-color mode.
- Cause 2 for this HRESULT: DirectDraw acceleration is disabled or unavailable.
- Cause 3 for this HRESULT: the adapter lacks overlay or surface capabilities required by the filter.
Contract boundary
This result is tied to a legacy rendering or graphics-capability boundary. The result should be diagnosed from the selected renderer, adapter, driver, surface contract and graph topology rather than from the file extension alone.
The practical owner to locate for this HRESULT is the renderer, graphics driver, display connection and negotiated surfaces. When handling this result, capture the native result before a wrapper replaces it with a generic exception, and keep the graph generation or object identity with the record.
Step-by-step diagnosis
- Capture it at the first native return, not only at the top-level playback failure.
- identify the exact graph stage described here: the selected legacy video path requires DirectDraw capabilities that the current graphics mode or adapter does not provide.
- compare the live object state, topology and input with the documented interface preconditions.
- Before changing filters, drivers, registry data or media for this HRESULT, collect the code-specific evidence below.
- Test one evidence-backed the correction on the smallest reproducible graph.
- Verify that the corrected run no longer returns it and does not merely replace it with a nearby HRESULT.
Evidence worth preserving
Log the interface and method, filter CLSID and friendly name, process and thread, graph state, connected pin names, media-type summary, renderer or device identity where relevant, and the first preceding HRESULT. Record lengths and hashes instead of raw content when the incident includes display identifiers, protected-content state, driver details and media paths.
- Evidence 1 for this HRESULT: DirectDraw capability flags and display mode.
- Evidence 2 for this HRESULT: adapter and driver version.
- Evidence 3 for this HRESULT: renderer selected and exact surface request.
Correction strategy
- Action 1 for this HRESULT: choose a renderer suited to the current Windows and adapter.
- Action 2 for this HRESULT: change the display mode only when legacy deployment requires it.
- Action 3 for this HRESULT: remove assumptions about overlay support from automatic graph construction.
Example incident
A legacy renderer is forced on a remote session where DirectDraw overlays are unavailable; selecting a software-compatible renderer prevents it. This example keeps the diagnosis at the specific the boundary instead of treating every DirectShow failure as a codec reinstall problem.
Retry and recovery
Retry rule for this HRESULT: Retry after changing renderer, driver or display mode; reinstalling media codecs does not add DirectDraw capabilities. A safe it retry must use a changed capability, state, object generation or input. While recovering from it, preserve cancellation and avoid replaying side effects when the original operation may have partially completed.
How it differs from nearby results
VFW_E_DDRAW_VERSION_NOT_SUITABLE rejects the DirectDraw version, while it rejects the capabilities exposed by the installed version and mode. Keep those cases separate in telemetry, UI messages and retry policy because their next actions are different.
Implementation notes
Code that handles it should preserve the original HRESULT, the failed stage and an opaque correlation identifier. After it, do not infer success from partial graph construction, and do not continue using interfaces retained from a graph or device generation that has already changed.
Operational remediation for this HRESULT should favor supported component installation, device configuration and documented DirectShow calls. Manual registry or driver changes are appropriate only when the collected evidence for this HRESULT points to that layer and a rollback is available.
Official Microsoft references
- Microsoft: DirectShow error and success codes
- Microsoft: choosing a DirectShow video renderer
- Microsoft: video rendering in DirectShow
Looking for a different code? Search another status or error code.