What does HRESULT 0xC0262339 (ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY) mean?

 
Previous Next
ERROR_GRAPHICS_MONITOR_NOT_CONNECTED ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE

ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY

Interpret the result in its owning layer: graphics source not in topology

The useful interpretation of ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY (0xC0262339) starts at the vidpn boundary: the requested source ID is not used by any path in the supplied topology. In practical terms, inspect VidPN source membership before changing application-wide graphics settings.

Prove source membership from paths

Do not infer membership from the adapter source count. Enumerate the present paths of the supplied topology and match VidPnSourceId on those paths; a source can exist on the adapter while being absent from this candidate topology. Preserve the path list before mutation, then add or remove one source-target path in the test. The passing case must show the requested source in a path owned by the same topology handle.

Capture before recreating objects

Capture itemWhy it matters
Object identityVidPN source membership
Rejected conditionthe requested source ID is not used by any path in the supplied topology
What to capturesource ID, enumerated paths, topology generation and the caller assumption that selected the source
Current graph stateVidPN, topology, source and target mode sets, and the present path connecting them
Supporting tracesource and target IDs, topology generation, path descriptors, pinned modes, mode-set handles and monitor timing data

Reproduce one variable at a time

  1. Capture the failing state. Record source ID, enumerated paths, topology generation and the caller assumption that selected the source.
  2. Enumerate paths before and after adding the source to a disposable topology.

The comparison with ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY is especially useful: ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY applies the same check to a target.

Recovery contract

Derive source membership from the topology instead of adapter-wide enumeration alone.

  • debug-layer, ETW or driver diagnostics no longer report the rejected VidPN source membership contract during the same scenario.

Implementation notes

Log source and target IDs, topology generation, path descriptors, pinned modes, mode-set handles and monitor timing data.

A production fallback should be explicit: pause rendering, re-enumerate, rebuild one cache entry, recreate a device, or decline a protected path only when this layer calls for that action. Reinstalling every display component, deleting all caches or forcing a resolution change is not an evidence-based fix.

Technical references


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