| Previous | Next |
| NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK_FROM_SERVER | NS_E_DRM_TRANSFER_CHAINED_LICENSES_UNSUPPORTED |
NS_E_DRM_POLICY_METERING_DISABLED
Where the operation stopped
0xC00D2776 maps to NS_E_DRM_POLICY_METERING_DISABLED. Read it as a result from portable-device certificate, secure clock and transfer policy: the content requires metering but metering is disabled for the client or device path. Keeping the “policy metering disabled” boundary intact for NS_E_DRM_POLICY_METERING_DISABLED prevents a later playback message from hiding the original DRM failure.
The built-in message summarizes the user-visible outcome, while the symbolic phrase “policy metering disabled” preserves the exact WMDRM boundary for diagnosis. For this code, the proof step is to record license metering requirement, policy state and metering object initialization.
State to capture before retry
Capture the first NS_E_DRM_POLICY_METERING_DISABLED occurrence before retry or teardown changes state. The smallest useful record contains:
- Code-specific proof: record license metering requirement, policy state and metering object initialization.
- Protected identity: device activation, registration and metering result.
- Operation state: device model, firmware and WMDRM capability.
- Persistence or transport: device certificate chain and serial identity.
- Security context: secure clock value, source and last successful update.
- Correlation point: requested transfer/burn action and license restriction.
Prefer IDs, hashes, sizes, and timestamps. Never log keys, passwords, licenses, or decrypted media.
Place in the DRM workflow
The workflow around NS_E_DRM_POLICY_METERING_DISABLED matters: a device can be reachable as storage while still failing WMDRM authentication, secure-clock or policy requirements. In addition, time-bound and subscription licenses may require a trusted device clock; changing the host clock does not repair a device clock that was never obtained or set.
A useful investigation order
- Start from
0xC00D2776and map it to the first WMDRM object that returned it. - Separate content/header evidence, license evidence, machine/device evidence and service/network evidence around “policy metering disabled”.
- Before retrying
NS_E_DRM_POLICY_METERING_DISABLED, check whether another “policy metering disabled” operation was active or whether the previous result may have committed partially. - Apply the smallest supported fix: enable supported metering or obtain a license that does not require it; avoid resetting unrelated protected state.
Narrow remediation
The supported response to NS_E_DRM_POLICY_METERING_DISABLED is narrow: enable supported metering or obtain a license that does not require it. After correcting NS_E_DRM_POLICY_METERING_DISABLED, reopen or recreate the object that owned “policy metering disabled” so cached state from the failed generation is not mistaken for the repair result.
Representative case: Playback is denied because the license expects usage reports that policy has disabled.
What not to do first
- Avoid treating an unsupported-device result as a generic USB or file-copy failure. That changes evidence without demonstrating why
NS_E_DRM_POLICY_METERING_DISABLEDwas produced. - Avoid formatting the device before preserving its certificate, clock and firmware evidence. That shortcut can create a second store, identity or policy problem.
- Do not reduce
NS_E_DRM_POLICY_METERING_DISABLEDto “DRM failed” in telemetry; retain the HRESULT, symbolic name, operation and object identity.
Nearby results with different meanings
| Result | Different boundary |
|---|---|
NS_E_DRM_TRANSFER_CHAINED_LICENSES_UNSUPPORTED | The requested device transfer does not support the selected chained-license relationship. |
NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK_FROM_SERVER | The client cannot obtain authoritative secure-clock data from the service. |
NS_E_DRM_UNABLE_TO_SET_SECURE_CLOCK | The DRM client cannot commit secure-clock data to the device. |
Order the NS_E_DRM_POLICY_METERING_DISABLED event chain by timestamp; prefer the earliest specific result.
Verification after correction
A valid regression for NS_E_DRM_POLICY_METERING_DISABLED has two fixtures: one that deliberately produces “the content requires metering but metering is disabled for the client or device path” and one that applies the targeted correction. Compare callback order, selected license/KID, final rights decision and persistence state; disappearance of the “policy metering disabled” dialog alone is not proof.
Code-specific operational note
The symbolic phrase “policy metering disabled” is the important search and telemetry key for NS_E_DRM_POLICY_METERING_DISABLED. Keep it beside the exact value 0xC00D2776; the official message “This content requires the metering policy to be enabled.” is useful to users, but it does not identify the producing API, object generation or protected identity on its own.
Technical references
- IWMDRMDeviceApp interface — official Windows Media DRM context for
NS_E_DRM_POLICY_METERING_DISABLED. - Device registration — API and state rules relevant to this boundary.
- Output protection levels — platform documentation used to distinguish this result from adjacent results.
- Windows Media DRM error codes
Looking for a different code? Search another status or error code.