License Revocation (Microsoft Windows Media DRM Client)

[The feature associated with this page, Windows Media Format 11 SDK, is a legacy feature. It has been superseded by Source Reader and Sink Writer. Source Reader and Sink Writer have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use Source Reader and Sink Writer instead of Windows Media Format 11 SDK, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

License revocation refers to the removal of licenses from a local license store. A common scenario for license revocation occurs when a service provider, such as a music subscription service, must deactivate the service on a user's computer.

The license revocation process is initiated by a service provided by the license issuer. Your application can host this service or it can be a Web application. In either case, your application must be able to receive a license challenge created by the service.

To remove licenses from the license store, do the following:

  1. Upon receiving a license challenge from the license issuer, create a revocation challenge using the IWMDRMLicenseManagement::CreateLicenseRevocationChallenge method. This method will allocate a buffer containing a revocation challenge data, which is passed to your application through the ppbChallengeOutput parameter.
  2. Send the license revocation challenge to a license revocation service. The server will generate a license revocation BLOB (LRB) in response.
  3. Remove the license from the local store using the IWMDRMLicenseManagement::ProcessLicenseRevocationResponse method, passing the LRB returned by license server.
  4. Deallocate the buffer allocated by CreateLicenseRevocationChallenge by using the CoTaskMemFree function.

For more information on how license revocation works or on how to write a revocation service, see Implementing License Revocation.

Enabling DRM Support

Local License Store

Programming Guide