What does HRESULT 0xC00D0FB9 (NS_E_WMPXML_EMPTYDOC) mean?

 
Previous Next
NS_E_WMPXML_PINOTFOUND NS_E_WMP_PATH_ALREADY_IN_LIBRARY

NS_E_WMPXML_EMPTYDOC

The exact condition behind the dialog

The symbolic result NS_E_WMPXML_EMPTYDOC narrows 0xC00D0FB9 to the XML parser empty document condition: the caller attempted to persist a parser object that contains no document data. Keep the XML parser empty document boundary visible when a later dialog reduces it to a general media error.

An additional test is to record whether any load/parse operation completed and whether the parser was cleared before persist; that evidence is more useful than reinstalling the Player or changing several unrelated settings at once.

What succeeds before this failure

Two platform rules frame the diagnosis. First, an XML document can be well-formed yet still fail the Windows Media schema or object-model rules expected by the caller. In this case, parser position, source encoding and the exact bytes supplied to the final parse call are more useful than a generic “bad XML” dialog.

Representative case: A save command runs after initialization but before the XML source was attached. The example isolates only the producing component.

State worth preserving

Capture state before Player cleanup:

  • Decisive check: record whether any load/parse operation completed and whether the parser was cleared before persist.
  • Artifact: line/column or byte offset from any lower-level parser diagnostic.
  • State: source URL or archive member and a hash of the exact XML bytes.
  • Object identity: encoding declaration, byte-order mark and parser input length.
  • Underlying evidence: last successful element, attribute or processing-instruction lookup.
  • Correlation: parser state when GetParseError, persist or lookup was called.

Log paths, hashes, IDs, offsets, and HRESULTs. Exclude secrets and unrelated content from logs.

Reproduce without destroying evidence

  1. Preserve 0xC00D0FB9, the ErrorItem context and the object generation involved in the failing operation.
  2. Compare the failing artifact with a known-good artifact that differs only in the suspected property.
  3. Separate acquisition, parsing, object construction, playback and persistence until the component that produced the failure is clear.
  4. Confirm the failure directly: record whether any load/parse operation completed and whether the parser was cleared before persist.
  5. After you load or construct a document before persisting it, recreate the owning WMP object and verify that the corrected generation completes.

Related HRESULTs, different boundaries

ResultDifferent boundary
NS_E_WMPXML_PINOTFOUNDThe requested XML processing instruction is not present in the parsed document
NS_E_WMPXML_ATTRIBUTENOTFOUNDThe requested named attribute or attribute index is absent on the current element
NS_E_WMPXML_PARSEERRORThe XML parser rejected the supplied document but exposed no more specific WMP parser result

If this result is followed by a broader “cannot play,” “cannot load,” or “operation failed” result, preserve the earlier event. A later wrapper error may be secondary.

Recovery at the right layer

Change the responsible precondition rather than masking the symptom: load or construct a document before persisting it. A retry is meaningful only after that recorded condition changes.

  • Avoid rewriting the XML before preserving the failing bytes and parser position; it can destroy the artifact or state needed to explain this result.
  • Avoid treating a missing optional node as proof that the whole document is malformed; that can replace the original HRESULT with a secondary failure from another layer.

How to know the repair is real

Keep one fixture that reproduces 0xC00D0FB9 and one corrected fixture that changes only the identified precondition. This condition correction is complete when the intended operation succeeds without being replaced by a neighboring WMP HRESULT.

Practical interpretation

Use this result, 0xC00D0FB9 and the symbolic phrase in traces. Correlate search keys with API and object.

Technical references


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