| Previous | Next |
| DWM_E_NOT_QUEUING_PRESENTS | DWM_E_TEXTURE_TOO_LARGE |
DWM_E_ADAPTER_NOT_FOUND
DWM cannot find the adapter identified by the LUID
DWM_E_ADAPTER_NOT_FOUND is HRESULT 0x80263005 (signed decimal -2144980987, unsigned decimal 2149986309). AllStat and winerror.h describe a Desktop Window Manager operation whose supplied adapter locally unique identifier does not identify an adapter known to DWM.
An adapter LUID is meaningful only in the system and adapter-generation context in which it was obtained. The code therefore commonly points to stale identity, cross-session or cross-process transport mistakes, adapter removal, driver reset, hybrid-GPU transition, or an attempt to use an identifier from a different boot. It does not mean that Windows has no display adapter at all.
Relevant API context
Microsoft's documentation for DwmDxGetWindowSharedSurface explicitly lists DWM_E_ADAPTER_NOT_FOUND when the luidAdapter value is invalid. That API is intended for a graphics driver or runtime, is documented only for Windows 7, and is not a normal application API. For any other call site, preserve the exact function because the public description does not prove a broader owner.
Causes to separate
- The LUID was cached across reboot, display-driver upgrade, device reset, disable/enable, docking, hot removal, or graphics-device recreation.
- A hybrid-graphics application selected one adapter but the target window or compositor surface belongs to another.
- The identifier was serialized with the high and low parts swapped, truncated, sign-extended, or formatted as a string and parsed incorrectly.
- A service or broker supplied an adapter identity from another session or namespace without validating it against the consumer's current adapter enumeration.
Diagnostic sequence
- Log both 32-bit components of the LUID in hexadecimal and record where and when the value was obtained.
- Enumerate current adapters through the graphics API used by the caller and match the complete LUID, not a device name, ordinal, or vendor/device pair.
- Record adapter description, hardware ID, driver version, device-removal reason, session, and display topology at acquisition and at failure.
- Invalidate cached adapter-bound objects after TDR, device removal, power transition, docking, or display reconfiguration. Re-enumerate before retrying.
Difference from neighboring results
DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE can occur even with a valid adapter when DWM cannot provide the required window surface. DWM_E_TEXTURE_TOO_LARGE means the selected path cannot support the requested dimensions. Here the decisive input is adapter identity. Shrinking content or waiting for a surface will not repair a stale LUID.
Recovery
Discard the failed adapter-bound generation, enumerate the adapters visible to the current process/session, select the adapter associated with the target output or window, and rebuild dependent devices and surfaces. Retry only with a newly validated LUID. If the application must persist a user preference, persist a stable descriptive preference and remap it to a current adapter at startup; do not persist a LUID as a durable machine identity.
Telemetry
- Supplied LUID high/low values, acquisition API, timestamp and object generation.
- Current adapter enumeration with LUIDs, descriptions, hardware IDs, driver package versions and output mappings.
- Target
HWND, process/session, monitor and presentation adapter. - Recent TDR, device-removed result, docking, hot-plug, power or driver-update event.
Practical scenario
A capture runtime records an adapter LUID at startup. The GPU driver is reset and the runtime rebuilds its Direct3D device but continues using the old LUID for a DWM shared-surface request. DWM returns DWM_E_ADAPTER_NOT_FOUND. Re-enumerating and binding the new adapter generation fixes the identity error; retrying with the cached value cannot.
References
- Microsoft: DWM and graphics HRESULT values
- Microsoft: DwmDxGetWindowSharedSurface adapter contract
- Microsoft: IDXGIAdapter1::GetDesc1
- Microsoft: adapter reset and resource invalidation
Looking for a different code? Search another status or error code.