Notice: This is a pre-release version of the LSAPI code and documentation. The documentation is meant to accompany technology that is still in development. Some of the information in this documentation may be inaccurate or may not be an accurate representation of the functionality of the final technology. Microsoft assumes no responsibility for any damages that might occur either directly or indirectly from these inaccuracies.
License systems provide a management layer that can track the rights to use purchased software. You can incorporate license verification in your product by using the License Service Application Programming Interface (LSAPI) version 1.10, a set of functions that provides licensing services within applications. The LSAPI specification provides a standard interface between LSAPI-enabled software and LSAPI-compliant software licensing products. An LSAPI-enabled application is one that uses calls to the LSAPI function layer to register license usage. An LSAPI-compliant licensing system is one that conforms to the LSAPI standard. Applications can gain access to the LSAPI interface through the dynamic-link library, LSAPI32.DLL.
The LSAPI-compliant model includes the following basic components:
·An LSAPI-enabled desktop application
·The standard LSAPI function layer
·An LSAPI-compliant license product that includes a database for storing license data, and access "tokens" that serve as digital license certificates
The standard LSAPI functions are listed following.
Function | Description |
LSEnumProviders | Returns a unique string for each installed license system service provider. |
LSFreeHandle | Frees the handle to the license context. |
LSGetMessage | Returns the message string associated with a license service function status code. |
LSQuery | Returns information about the service provider or the license system context associated with the specified handle obtained by the LSRequest call. |
LSRelease | Requests that the license system release the licensing resources associated with a specific license context. |
LSRequest | Requests that the license system grant the licensing resources so the calling application can execute. |
LSUpdate | Updates the synchronization between the licensed application and the license system. |
The LSAPI standardizes access to, and use of, the primary features common to many licensing products. These include the ability to request that the licensing system grant the application software rights to run, release those rights when they are no longer needed, and update the state of the licensing resources granted to the software product.
The LSAPI also provides a standard software development approach to software license management. Because all LSAPI-compliant license service providers support the same API, applications can use one interface to communicate with all LSAPI-compliant license servers. Developers can isolate code from license policy; the policy can be handled by the licensing system rather than by the application. The LSAPI allows you to develop a single package that cooperates with multiple licensing systems. You only need to change existing product code once to incorporate the licensing functions; the platform and the networking environment can change, but you do not need to rewrite the desktop application. This provides license system independence, and multiple license providers can be used at one time.
LSAPI-enabled Windows applications running on Windows 95 and Windows NT will also interface with other LSAPI-compliant license servers, without modifications.