What does HRESULT 0xC00D2773 (NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK) mean?

 
Previous Next
NS_E_DRM_UNABLE_TO_GET_DEVICE_CERT NS_E_DRM_UNABLE_TO_SET_SECURE_CLOCK

NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK

Meaning beyond the player message

The symbolic result NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK narrows 0xC00D2773 to portable-device certificate, secure clock and transfer policy. In practical terms, the DRM client cannot read the device or local secure clock; the producing layer is the device-facing path that authenticates a WMDRM-capable device, obtains its certificate and secure clock, evaluates transfer policy, and records metering or registration state.

The built-in message summarizes the user-visible outcome, while the symbolic phrase “unable to get secure clock” preserves the exact WMDRM boundary for diagnosis. For this code, the proof step is to record device capability, clock status and last successful initialization.

Which component owns the failure

Do not flatten NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK into a generic DRM error. A device can be reachable as storage while still failing WMDRM authentication, secure-clock or policy requirements. The second relevant rule is that 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.

How to prove the condition

  1. Preserve NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK, the calling interface and the first lower-level status before a wrapper replaces it.
  2. Correlate NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK with one KID/license ID, content hash, device certificate or migration operation ID for this path.
  3. Reconstruct the state transition immediately preceding “unable to get secure clock” instead of starting from the final player dialog.
  4. Prove the boundary by ensuring you can record device capability, clock status and last successful initialization.
  5. After you initialize or repair the secure-clock provider before evaluating time-bound rights, verify both the requested right and the final store/device state.

Diagnostic inputs that separate the causes

Capture the first NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK occurrence before retry or teardown changes state. The smallest useful record contains:

  • Code-specific proof: record device capability, clock status and last successful initialization.
  • Protected identity: secure clock value, source and last successful update.
  • Operation state: requested transfer/burn action and license restriction.
  • Persistence or transport: device activation, registration and metering result.
  • Security context: device model, firmware and WMDRM capability.
  • Correlation point: device certificate chain and serial identity.

Prefer IDs, hashes, sizes, and timestamps. Never log keys, passwords, licenses, or decrypted media.

Do not merge these HRESULTs

ResultDifferent boundary
NS_E_DRM_UNABLE_TO_GET_DEVICE_CERTThe client cannot retrieve or validate the target device certificate.
NS_E_DRM_UNABLE_TO_SET_SECURE_CLOCKThe DRM client cannot commit secure-clock data to the device.
NS_E_DRM_TRACK_EXCEEDED_TRACKBURN_RESTRICTIONThe track has exhausted its overall burn count in the Windows Media DRM client

Order the NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK event chain by timestamp; prefer the earliest specific result.

What a supported fix should change

Resolve NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK at its producing boundary: initialize or repair the secure-clock provider before evaluating time-bound rights. A player reinstall, reboot or new license request is useful only when it changes the “unable to get secure clock” boundary and can be verified against the original evidence.

Representative case: A subscription transfer fails because the portable device has no readable trusted clock.

How to know the fix is real

Repeat the operation that originally returned NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK. Assert the exact HRESULT at the producing API in the failing “unable to get secure clock” fixture; then change only the decisive precondition and confirm that the corrected run completes without substituting a neighboring DRM result. After correcting NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK, verify the requested action and the final license-store, secure-clock, device or migration state relevant to “unable to get secure clock”.

Code-specific operational note

The symbolic phrase “unable to get secure clock” is the important search and telemetry key for NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK. Keep it beside the exact value 0xC00D2773; the official message “A problem has occurred in obtaining the device's secure clock. Contact Microsoft product support.” is useful to users, but it does not identify the producing API, object generation or protected identity on its own.

Technical references


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