| Previous | Next |
| NS_E_DRM_INVALID_LICENSE_ACQUIRED | NS_E_DRM_KEY_ERROR |
NS_E_DRM_NO_RIGHTS
The exact DRM condition
NS_E_DRM_NO_RIGHTS is Windows Media DRM HRESULT 0xC00D2720. It identifies the selected license does not grant the action requested by the caller. The useful scope is the evaluation step that matches a license to protected content and decides whether the requested action is allowed under dates, counters, application security, device registration and output restrictions; it is not a generic statement that the media player, network or file system failed.
Record the exact action and selected license rather than only the content title.
The surrounding protocol and store state
Possessing a license does not imply that every operation is permitted; rights and restrictions are evaluated for the requested action. The same content can have several licenses, so diagnostics must identify the license actually selected by the DRM component.
Evidence worth preserving
- Protected identity: remaining counts, device registration and revocation state.
- Operation state: requested action such as play, copy, burn or transfer.
- Persistence or transport: license ID, KID and content-header identity.
- Security context: valid-from, expiration and secure-clock values.
- Correlation point: application security level and required output protection.
For the “no rights” investigation, use KIDs, license IDs, hashes, certificate thumbprints, sizes and timestamps where possible. Do not place content keys, complete license blobs, passwords, cookies or decrypted media in ordinary logs.
Related codes and the diagnostic split
| Result | Different condition |
|---|---|
NS_E_DRM_ACTION_NOT_QUERIED | The application attempts a protected action before querying whether the license permits it. |
NS_E_DRM_LICENSE_UNUSABLE | The license is invalid. Contact the content provider for further assistance. |
NS_E_DRM_CACHED_CONTENT_ERROR | Windows media digital rights management (drm) cannot play the protected file because you do not have the appropriate rights. |
Several values can accompany the “no rights” condition in one incident. Order the event chain by timestamp and prefer the first code produced at the lowest specific boundary over a later player-level summary.
Diagnostic sequence
- Prove the boundary by ensuring you can record the exact action and selected license rather than only the content title.
- After you obtain a license granting that action or choose an allowed operation, verify both the requested right and the final store/device state.
Correcting the producing condition
Resolve the underlying condition directly: obtain a license granting that action or choose an allowed operation. A player reinstall, reboot or new license request is useful only when it changes the condition “no rights” and can be verified against the original evidence.
Representative case: Playback is allowed, but the same license does not permit burning or transfer.
Actions that do not prove a fix
- Avoid changing the system clock or bypassing output protection to make a time- or security-bound license appear valid.
- Avoid treating every policy denial as damaged media or a missing codec.
Regression check
Repeat the operation that originally returned it. Assert the exact HRESULT at the producing API in the failing “no rights” fixture; then change only the relevant precondition and confirm that the corrected run completes without substituting a neighboring DRM result. After correcting it, verify the requested action and the final license-store, secure-clock, device or migration state relevant to “no rights”.
Code-specific operational note
The user-facing message “The requested operation cannot be performed on this file.” describes the visible condition but does not identify the producing API, object instance, or protected identity by itself.
Technical references
- DRM basics and rights enforcement.
- Licenses and the local license store.
- Output protection levels — API and state rules for the DRM operation described here.
- DRM protection and license distribution.
Looking for a different code? Search another status or error code.
