What does HRESULT 0x80263001 (DWM_E_COMPOSITIONDISABLED) mean?

 
Previous Next
ERROR_HUNG_DISPLAY_DRIVER_THREAD DWM_E_REMOTING_NOT_SUPPORTED

DWM_E_COMPOSITIONDISABLED

Desktop composition is unavailable

DWM_E_COMPOSITIONDISABLED is HRESULT 0x80263001 (signed decimal -2144980991, unsigned decimal 2149986305). AllStat reproduces the winerror.h description: desktop composition is disabled, so the requested operation cannot be completed. The value is a failure from the Desktop Window Manager graphics facility.

The exact meaning depends strongly on Windows version and API age. On Windows 7 and earlier, composition could genuinely be disabled. Starting with Windows 8, DWM composition is always enabled for the normal desktop, while several legacy DWM APIs were deprecated or changed behavior. A modern occurrence can therefore identify a legacy, private, compatibility, session, or startup path rather than a user-controllable “turn Aero on” setting.

APIs and stages where it matters

  • Legacy DWM functions that require a composed desktop may return this value when their composition prerequisite is absent.
  • DwmDxGetWindowSharedSurface, an undocumented-header Windows 7 driver/runtime API documented by Microsoft, lists this HRESULT when DWM cannot provide the expected composed path.
  • Deprecated functions such as DwmAttachMilContent and DwmGetGraphicsStreamClient are documented as returning this value on later systems; their failure should not be interpreted as evidence that the entire desktop compositor stopped.
  • Calls made during logon, shutdown, secure-desktop transition, session teardown, or DWM restart can observe a transiently unusable composition context even though composition is normally mandatory.

What to verify

  • Capture the exact function and operating-system build. The same HRESULT from a supported public API and from an obsolete ordinal-only API has a very different maintenance implication.
  • Record the interactive session, desktop name, window station, target HWND, owning process, and whether the call ran in a service, broker, remote session, or user desktop.
  • Check whether the target window still exists and belongs to the current session. A stale window or a call during session destruction should not be “repaired” by changing global composition settings.
  • For software that uses compatibility manifests, distinguish the return value of DwmIsCompositionEnabled from the HRESULT of the failing operation. Microsoft documents compatibility behavior for that query on Windows 8 and later.

Do not conclude

Do not conclude from this HRESULT alone that the DWM process is permanently broken, that the display driver must be reinstalled, or that a user can enable composition through a current control-panel switch. Also do not confuse it with DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE: the latter says DWM could not supply a specific redirection surface, while this code states that the composition prerequisite itself is unavailable to the operation.

Recovery strategy

For supported APIs on legacy systems, use the documented non-composed fallback and respond to WM_DWMCOMPOSITIONCHANGED before retrying. For current Windows, verify that the application is not depending on a deprecated DWM mechanism; migrate rendering and presentation to supported DirectComposition, DXGI flip-model, or ordinary window rendering contracts as appropriate. Retry only after a real lifecycle change such as DWM restart, session activation, or recreation of the target window. Repeating the same obsolete API call cannot enable a capability that the platform no longer supports.

Telemetry

  • Raw HRESULT and symbolic name.
  • API name, process architecture, application manifest compatibility declarations, and Windows build.
  • Session ID, remote/local state, desktop, target window identity, and window lifetime generation.
  • DWM and display events around the call, including a compositor restart or display-driver recovery.

Practical scenario

An older capture component calls a Windows 7 shared-surface path on a current machine and reports DWM_E_COMPOSITIONDISABLED. DwmIsCompositionEnabled and the visible desktop are not enough to prove that the private legacy contract remains valid. The fix is to identify the obsolete API and replace the capture path, not to instruct the user to search for a removed desktop-composition switch.

References


Looking for a different code? Search another status or error code.