| Previous | Next |
| DWM_E_REMOTING_NOT_SUPPORTED | DWM_E_NOT_QUEUING_PRESENTS |
DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE
No DWM redirection surface is available
DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE is HRESULT 0x80263003 (signed decimal -2144980989, unsigned decimal 2149986307). AllStat carries the winerror.h message that DWM was unable to provide a redirection surface needed to complete a DirectX present. The SDK text contains the spelling redireciton; that typo is not a separate status or alternate contract.
A DWM redirection surface is compositor-managed state associated with a window's presented content. This HRESULT says the requested surface is not available at that moment or for that window path. It does not establish that the source DirectX texture is corrupt, that all GPU memory is exhausted, or that desktop composition is globally disabled.
Conditions to distinguish
- The target
HWNDwas destroyed, recreated, reparented, cloaked, minimized, or moved between presentation states while the caller retained an earlier surface relationship. - DWM, the display driver, or the adapter was reset, invalidating the previous redirection resource generation.
- The window is not eligible for the specific shared-surface path, including a session, top-level-window, composition, or API-version restriction.
- Resource pressure or display-topology transition prevented DWM from creating or retaining the surface, but the raw HRESULT alone does not identify which resource was limiting.
Diagnostic sequence
- Capture the exact API. Microsoft documents
DwmDxGetWindowSharedSurfaceas a Windows 7 driver/runtime function, available by ordinal rather than a public header or import library; application code should not assume that private contract is portable. - Record the target window owner, process and session, window rectangle, DPI, visibility, cloaking/minimization state, adapter LUID, surface dimensions and format, and the generation in which the surface was acquired.
- Correlate DWM restarts, display-driver resets, monitor hot-plug, docking, HDR changes, mode switches, and remote-session transitions with the first failure.
- Verify acquire/update ordering. Microsoft requires
DwmDxUpdateWindowSharedSurfaceonly after a successful shared-surface acquisition and requires the update ID from that acquisition; stale update IDs must not cross generations.
Difference from related results
DWM_E_COMPOSITIONDISABLED means the composition prerequisite is missing. DWM_E_ADAPTER_NOT_FOUND identifies an invalid or stale adapter LUID. DWM_E_TEXTURE_TOO_LARGE identifies unsupported surface dimensions. This status is the remaining surface-availability case and should not be automatically rewritten as any of those more specific failures.
Recovery and retry
Release stale references and reacquire the surface after the window and compositor have reached a stable state. If a device reset occurred, rebuild the owning graphics device and dependent resources first. If the API is private, obsolete, or documented only for Windows 7, replace it with a supported capture or presentation mechanism rather than relying on unbounded retries. Backoff is appropriate during a real lifecycle transition; no retry policy can make an ineligible window or unsupported platform satisfy the contract.
Telemetry
- HRESULT, API name, target
HWND, owner PID/session, and window lifetime generation. - Adapter LUID, device-removal reason if available, dimensions, pixel format, DPI, and display topology.
- Acquire result, update ID, last successful update time, and whether the call followed DWM restart or TDR.
- Fallback chosen and whether a supported capture/presentation API succeeds for the same content.
Practical scenario
A diagnostic runtime caches a redirection surface and update ID, then a monitor mode switch causes DWM to recreate compositor resources. The next operation reports DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE. Correct handling discards the old generation, waits for the target window to become valid, reacquires through the documented sequence, and never sends the stale update ID to the new surface.
References
- Microsoft: DWM HRESULT values
- Microsoft: DwmDxGetWindowSharedSurface
- Microsoft: DwmDxUpdateWindowSharedSurface
- Microsoft: display-driver reset and recovery
Looking for a different code? Search another status or error code.