| Previous | Next |
| NS_E_DRM_CERTIFICATE_REVOKED | NS_E_DRM_DEVICE_LIMIT_REACHED |
NS_E_DRM_LICENSE_UNAVAILABLE
Start with the producing object
The useful reading of NS_E_DRM_LICENSE_UNAVAILABLE is narrow: no license available to the transmitter authorizes the requested WMDRM-ND action. The subsystem producing NS_E_DRM_LICENSE_UNAVAILABLE is WMDRM for Network Devices, not the media decoder; it performs the transmitter/receiver protocol that registers a network playback device, approves it, validates proximity, opens a protected session and transcrypts licensed content for that receiver.
The investigation becomes concrete when you query the content KID and action before transcryption starts. The standard AllStat text is already shown above; this custom section concentrates on the object state and the evidence needed to separate NS_E_DRM_LICENSE_UNAVAILABLE from neighboring Windows Media errors.
Relevant runtime state
The security decision represented by NS_E_DRM_LICENSE_UNAVAILABLE depends on device certificate and serial number, registration-database entry, approval flag, validation timestamp, network session, protocol message and transcrypt policy. Record the exact WMDRM-ND message type, device identifier, certificate chain, registration state, round-trip timing and the first protocol HRESULT from the same NS_E_DRM_LICENSE_UNAVAILABLE attempt.
The producing layer has not made a claim about every media operation; it has only established that no license available to the transmitter authorizes the requested WMDRM-ND action.
Practical diagnostic path
- Preserve
NS_E_DRM_LICENSE_UNAVAILABLEand0xC00D28A2before cleanup, fallback or another media item changes the context. - Run the direct check for
NS_E_DRM_LICENSE_UNAVAILABLE: query the content KID and action before transcryption starts. - Compare the failure with a known-good case that changes only the property named by this condition: no license available to the transmitter authorizes the requested WMDRM-ND action.
- Apply the narrow correction for
NS_E_DRM_LICENSE_UNAVAILABLE: acquire or install a license granting network-device playback. - Associate
NS_E_DRM_LICENSE_UNAVAILABLEwith its current WMDRM for Network Devices object and the requested action. - Repeat the same action with the same content/device identity and verify that
NS_E_DRM_LICENSE_UNAVAILABLEis not replaced by another policy or trust failure.
One-variable comparison
NS_E_DRM_LICENSE_UNAVAILABLE should be modeled as a failed precondition, not as an arbitrary media exception. Demonstrate the precondition by choosing to query the content KID and action before transcryption starts, and remove it by choosing to acquire or install a license granting network-device playback. The NS_E_DRM_LICENSE_UNAVAILABLE model is suitable for a regression fixture because its expected state change is observable without weakening the DRM policy.
Do not diagnose the wrong layer
For NS_E_DRM_LICENSE_UNAVAILABLE, the established fact is that no license available to the transmitter authorizes the requested WMDRM-ND action. For NS_E_DRM_LICENSE_UNAVAILABLE, 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 NS_E_DRM_LICENSE_UNAVAILABLE as the first specific result. The object and operation attached to NS_E_DRM_LICENSE_UNAVAILABLE are usually more diagnostic than a later cleanup or user-interface summary.
Trace requirements
| Field | Value for NS_E_DRM_LICENSE_UNAVAILABLE |
|---|---|
| Owner | operation, API/callback, object or session identifier, and component/device version associated with NS_E_DRM_LICENSE_UNAVAILABLE |
| Direct check | query the content KID and action before transcryption starts |
| Policy input | requested action plus the exact license, certificate, profile, output or registration property evaluated by NS_E_DRM_LICENSE_UNAVAILABLE |
| Temporal state | trusted/system time, validity interval, request sequence and retry number when they influence NS_E_DRM_LICENSE_UNAVAILABLE |
| Lower result | the earliest store, network, cryptographic, driver or provider status preceding the final NS_E_DRM_LICENSE_UNAVAILABLE wrapper |
What another code would mean
| Result | Why it points elsewhere |
|---|---|
NS_E_DRM_INVALID_CERTIFICATE | the WMDRM-ND peer certificate is malformed, corrupted or fails signature validation |
NS_E_DRM_CERTIFICATE_REVOKED | the WMDRM-ND peer certificate is explicitly revoked |
NS_E_DRM_DEVICE_LIMIT_REACHED | the transmitter has reached the number of network devices allowed by policy or implementation |
What success looks like
A matching correction is to acquire or install a license granting network-device playback. For NS_E_DRM_LICENSE_UNAVAILABLE, success means that the same requested action is accepted after that precise state change, not merely that another file or device happens to work.
- Evidence for
NS_E_DRM_LICENSE_UNAVAILABLEis easy to destroy; Do not delete the complete device-registration database before preserving the failing device record and certificate chain; that removes the distinction between registration, approval, validation and session failures. - Do not alter trusted time, revocation enforcement, certificate validation or output policy merely to suppress
NS_E_DRM_LICENSE_UNAVAILABLE; that bypasses the decision instead of correcting its input. - Retain one failing artifact and one corrected artifact so the resolution of
NS_E_DRM_LICENSE_UNAVAILABLEcan be regression-tested.
Regression check
For the final NS_E_DRM_LICENSE_UNAVAILABLE test, keep the content KID or file hash, requested action, user/account, device identity and output route unchanged wherever they apply. The NS_E_DRM_LICENSE_UNAVAILABLE case is resolved only when the operation completes without this HRESULT and without a substitute failure from a neighboring license, trust, session or policy check.
Technical references for NS_E_DRM_LICENSE_UNAVAILABLE
- Windows Media DRM 10 for Network Devices — provides the normative workflow relevant to NS_E_DRM_LICENSE_UNAVAILABLE.
- Device registration — lists the security and state transitions used to interpret NS_E_DRM_LICENSE_UNAVAILABLE.
- Using the WMDRM-ND protocol — defines the platform objects used when diagnosing NS_E_DRM_LICENSE_UNAVAILABLE.
- MS-DRMND protocol specification — documents the protocol or API boundary behind NS_E_DRM_LICENSE_UNAVAILABLE.
Looking for a different code? Search another status or error code.