| Previous | Next |
| NS_E_DRM_RIV_TOO_SMALL | NS_E_COMPRESSED_DIGITAL_VIDEO_PROTECTION_LEVEL_UNSUPPORTED |
NS_E_OUTPUT_PROTECTION_LEVEL_UNSUPPORTED
Read the code before the dialog
The producer of 0xC00D2904 has determined that the active output path cannot meet the license’s overall minimum protection level. Diagnosis of NS_E_OUTPUT_PROTECTION_LEVEL_UNSUPPORTED therefore starts in Windows Media DRM output protection, the layer responsible for license-policy evaluation that compares the content owner’s required output protection level or scheme with the active audio/video output path.
The shortest path to a defensible diagnosis is to read the base OPL and negotiated connector capability for the requested action.
Correlate the owner and the policy
A complete incident ties together license OPL fields, play or copy action, output connector type, compressed/uncompressed state, driver-reported protection capability and selected rendering path; the minimum correlation set for it is the requested action, required OPL values, active connector, negotiated protection mechanism and whether the stream is compressed at that boundary.
The comparison is useful only if it preserves the fact that the active output path cannot meet the license’s overall minimum protection level.
The final dialog can be broader
The established fact is that the active output path cannot meet the license’s overall minimum protection level. That fact does not independently establish damaged media bytes, a missing decoder, a generally broken network, or invalid rights for every other action.
If the Player, encoder, setup program or device layer later emits a broader error, retain this result as the first specific result. The object and operation attached to it are usually more diagnostic than a later cleanup or user-interface summary.
Why the first HRESULT matters
This result should be modeled as a failed precondition, not as an arbitrary media exception. Demonstrate the precondition by choosing to read the base OPL and negotiated connector capability for the requested action, and remove it by choosing to select an output path meeting the minimum or obtain differently constrained rights. The result comparison should preserve content and device identity so success cannot be attributed to testing a different asset.
Minimum evidence set
| Field | Value |
|---|---|
| Policy input | requested action plus the exact license, certificate, profile, output or registration property evaluated by this result |
| Temporal state | trusted/system time, validity interval, request sequence and retry number when they influence it |
| Lower result | the earliest store, network, cryptographic, driver or provider status preceding the final it wrapper |
| Owner | operation, API/callback, object or session identifier, and component/device version associated with it |
| Direct check | read the base OPL and negotiated connector capability for the requested action |
A controlled reproduction
- Preserve it and
0xC00D2904before cleanup, fallback or another media item changes the context. - Associate it with its current Windows Media DRM output protection object and the requested action.
- Run the direct check for it: read the base OPL and negotiated connector capability for the requested action.
- Compare the failure with a known-good case that changes only the property named by this condition: the active output path cannot meet the license’s overall minimum protection level.
- Apply the narrow correction for it: select an output path meeting the minimum or obtain differently constrained rights.
- Repeat the same action with the same content/device identity and verify that it is not replaced by another policy or trust failure.
Contrast with related results
| Result | Why it points elsewhere |
|---|---|
NS_E_COMPRESSED_DIGITAL_VIDEO_PROTECTION_LEVEL_UNSUPPORTED | compressed digital video leaves through a path below the required protection level |
NS_E_UNCOMPRESSED_DIGITAL_VIDEO_PROTECTION_LEVEL_UNSUPPORTED | the uncompressed video rendering path cannot enforce the license’s minimum protection |
NS_E_ANALOG_VIDEO_PROTECTION_LEVEL_UNSUPPORTED | the analog video output cannot apply the policy required by the license |
Recovery at the right layer
A matching correction is to select an output path meeting the minimum or obtain differently constrained rights. Success means that the same requested action is accepted after that precise state change, not merely that another file or device happens to work.
- While investigating it, keep this restriction: Do not treat every output-protection result as a missing codec; the decoder can be present while the connector or driver cannot enforce the license policy.
- Do not alter trusted time, revocation enforcement, certificate validation or output policy merely to suppress it; that bypasses the decision instead of correcting its input.
- Retain one failing artifact and one corrected artifact so the resolution of it can be regression-tested.
Re-test the original case
For the final it test, keep the content KID or file hash, requested action, user/account, device identity and output route unchanged wherever they apply.
Technical references
- Output protection levels — provides the normative workflow relevant to it.
- Working with output protection levels — lists the security and state transitions used to interpret it.
- WMDRM output-protection structures — defines the platform objects used when diagnosing it.
- DRM actions and rights — documents the protocol or API boundary behind it.
Looking for a different code? Search another status or error code.