Implementing License Revocation

[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.]

The Windows Media Rights Manager 10 SDK includes a feature called license revocation. This feature enables license servers to request that licenses be removed from the client computer. The Windows Media Format SDK provides methods that process revocation messages and remove the licenses from the local license store.

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, perform the following steps:

  1. Upon receiving a license challenge from the license issuer, call the WMCreateLicenseRevocationAgent function to create a license revocation agent object and obtain a pointer to the IWMLicenseRevocationAgent interface.
  2. Call the IWMLicenseRevocationAgent::GetLRBChallenge method to generate the challenge response.
  3. Send the challenge response back to the license service component from which you received the challenge.
  4. The license service component sends a signed license revocation blob (LRB) to your application. When you receive it, call the IWMLicenseRevocationAgent::ProcessLRB method. ProcessLRB creates an acknowledgement message that you must send back to the license service to verify that the licenses were removed.

Note

DRM is not supported by the x64-based version of this SDK.

 

Enabling DRM Support

IWMLicenseRevocationAgent Interface