What does HRESULT 0xC00D1B6D (NS_E_VIDCAPCREATEWINDOW) mean?

 
Previous Next
NS_E_ICMQUERYFORMAT NS_E_VIDCAPDRVINUSE

NS_E_VIDCAPCREATEWINDOW

The failing boundary in the Encoder object model

The useful reading of NS_E_VIDCAPCREATEWINDOW (0xC00D1B6D) is not merely the standard message shown above. It locates creation of the hidden or visible capture window required by the legacy capture path inside video capture and compressor negotiation.

A live video source passes through device opening, capture-format negotiation, optional clipping and preview-window setup before an encoder codec accepts the frames in a session that returns this result. Width, height, pixel format and driver state belong to this boundary at the vidcapcreatewindow checkpoint.

Evidence that separates this code from a wrapper error

Seeing a device in enumeration or obtaining a preview frame does not establish that the requested capture format can be delivered continuously to the encoder in a session that returns this result. For example, a service session attempts to create a capture window on a noninteractive desktop. Preserve the result distinction before a UI layer converts the result into a broad start, capture or profile failure.

FieldWhat to preserve
Decisive valuesthread desktop, window-station access, parent HWND, UI-thread identity and Win32 error
Producing objectdevice moniker, driver version, requested and native width/height, frame rate, BITMAPINFOHEADER compression and bit depth, preview state, source-plug-in result and first driver error
Session correlationthe same source-group generation, audience index, object identity and callback sequence that produced this result
Lower-level evidencethe first COM, driver, file-system or codec HRESULT observed before the Encoder mapped the condition to this result
Controlled comparisona known-good session that changes only the setting named in the vidcapcreatewindow boundary

Interpret the next measurement

ObservationHow to interpret it
Observation that supports itThe decisive evidence is thread desktop, window-station access, parent HWND, UI-thread identity and Win32 error. It confirms creation of the hidden or visible capture window required by the legacy capture path in the same object generation.
Observation that points to an earlier failureThe recorded values satisfy the vidcapcreatewindow rule, but a source, driver, COM activation or file operation returns a different HRESULT first.
Observation that points to a later failureThe Encoder passes this boundary (creation of the hidden or visible capture window required by the legacy capture path), but a codec, archive or broadcast sink then fails in a subsequent stage.
Verification after correctionApply this isolated change: create the capture object on a thread with a usable message queue and desktop or run without the invalid preview host. The original vidcapcreatewindow call should then advance past the same checkpoint.

The operational impact of it is limited to the video capture and compressor negotiation transition that owns creation of the hidden or visible capture window required by the legacy capture path. In the representative case where a service session attempts to create a capture window on a noninteractive desktop, keep the first failing call and its object identity so a later wrapper cannot replace the vidcapcreatewindow evidence.

Test the condition without rewriting the session

  1. Record 0xC00D1B6D, it, the Encoder version and the exact API call or property access that returned it.
  2. Export the current .wme or .prx configuration, then capture thread desktop, window-station access, parent HWND, UI-thread identity and Win32 error.
  3. verify the video capture and compressor negotiation precondition without changing the source, profile and output sink at the same time.
  4. Run one controlled comparison in which only this condition changes: create the capture object on a thread with a usable message queue and desktop or run without the invalid preview host.
  5. After the change, recreate the affected Encoder object rather than assuming the existing graph discarded its earlier vidcapcreatewindow state.

Interpret neighboring results carefully

ResultWhy it is a different boundary
NS_E_ICMQUERYFORMATquerying a Video for Windows compressor for an acceptable output format
NS_E_VIDCAPDRVINUSEdetection of an already active stream on the same video driver
NS_E_VIDSOURCESIZEnegotiation of live capture width and height with the source device

Resolution and verification

The direct repair for this occurrence is to create the capture object on a thread with a usable message queue and desktop or run without the invalid preview host. Recreate the affected source group, profile or output object, repeat the same operation, and confirm that the first failing HRESULT no longer comes from the vidcapcreatewindow checkpoint.

Do not keep retrying an unstable capture driver in the same process after preserving the first error; close the graph and test one known-native format in a fresh process in a session that returns it.

References for the boundary


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