| Previous | Next |
| DWM_S_GDI_REDIRECTION_SURFACE | NAP_S_CERT_ALREADY_PRESENT |
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI
DWM redirection surface must be copied through GDI
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI is HRESULT 2502664 (0x00263008) from winerror.h. AllStat describes it as “{GDI redirection surface is either on a different adapter or in system memory; Perform blt via GDI} GDI redirection surface is either on a different adapter or in system memory; Perform blt via GDI.” In the Windows display topology or Desktop Window Manager operation, the value reports a nonfailure state that must not be collapsed into plain S_OK.
For DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI, a cleared severity bit does not make the return equivalent to ordinary completion; the postcondition remains specific.
What must be true before accepting it
Verify that the surface is on another adapter or in system memory and the caller selects a compatible GDI blit path. For DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI, that proof prevents usable partial state from being confused with full completion.
For DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI, also confirm that returned outputs belong to the current operation generation and were not inherited from an earlier attempt.
Where the status is encountered
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDIcan appear during VidPN mode-set, topology, and path negotiation; capture the exact API, object, and phase because the same numeric success severity does not define the state by itself.DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDIcan appear during display miniport and graphics-kernel dataset enumeration; capture the exact API, object, and phase because the same numeric success severity does not define the state by itself.DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDIcan appear during DWM composition and GDI redirection-surface handling; capture the exact API, object, and phase because the same numeric success severity does not define the state by itself.
Keep DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI attached to the operation that returned it. Interpreting DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI outside that API contract can turn a normal continuation or partial result into an incorrect retry or false completion.
Diagnostic sequence
- Capture raw
0x00263008andDWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDIbefore exceptions, signed formatting, or a generic success wrapper removes the symbolic value. - Identify the interface, method, callback, service, driver, or broker that returned
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI, including component version, process, thread, and correlation ID. - Prove the decisive condition for
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI: the surface is on another adapter or in system memory and the caller selects a compatible GDI blit path. - For
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI, inspect every output, count, object handle, callback, queue entry, media item, report, transaction, topology element, or signaling response the call produced. - Compare state immediately before and after
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDIand verify that ownership, lifetime, persistence, and user-visible effects match the status. - Reproduce
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDIwith the smallest input, then change only the suspected cause and confirm that the return value or postcondition changes as predicted.
Evidence and telemetry
- Preserve window and surface IDs for
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI. - Preserve source and destination adapters for
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI. - Preserve memory placement for
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI. - Preserve GDI blit parameters for
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI. - Preserve copy timing and result for
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI.
For DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI, also record UTC time, process and thread IDs, component version, operation generation, and a correlation ID. Keep sensitive DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI content out of logs; use lengths, hashes, GUIDs, and policy-safe metadata where possible.
Correct handling and recovery
Perform the copy through GDI, preserve clipping and color semantics, and measure the fallback cost. Re-evaluate when adapter or window placement changes.
Retry after DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI only when a recorded input, capability, resource, policy, or state has changed.
Practical scenario
A window moves between adapters and its capture surface becomes system-memory backed. The capture tool switches to GDI blit and avoids a failing GPU copy.
A regression test should reproduce DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI, assert all relevant outputs and state, then change only the decisive condition and verify ordinary completion or the expected neighboring result.
Difference from nearby results
DWM_S_GDI_REDIRECTION_SURFACE returns the surface without requiring this specific cross-adapter or system-memory fallback.
Using one generic success branch for DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI and its neighbor can lose output, repeat work, or misreport completion.
Developer and administrator guidance
When DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI crosses COM, RPC, managed, scripting, driver, or service boundaries, preserve the unsigned 32-bit value. Unit tests for DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI should assert the code-specific postcondition, not only success severity.
For DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI, the smallest targeted state change best verifies that the diagnosed condition was causal. Document who owns continuation, cancellation, cleanup, fallback, and user messaging for DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI.
References
- Microsoft: VidPN model and enumeration — official Microsoft material relevant to
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI. - Microsoft: Desktop Window Manager overview — official Microsoft material relevant to
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI. - Microsoft: HRESULT values — official Microsoft material relevant to
DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI.
Looking for a different code? Search another status or error code.