Previous section.

Systems Management: Software License Use Management (XSLM)
Copyright © 1999 The Open Group




#include <libxslm.h>

xslm_uint32 xslm_adv_query(
    xslm_handle     session_handle,
    xslm_handle     lic_handle,
    xslm_uint32     query_type,
    xslm_uint32     * query_buffer_length,
    xslm_bin_string * query_buffer,
    xslm_uint32     * status,
    xslm_uint32     auth_token,
    xslm_bin_string * auth_signature,
    xslm_uuid       * auth_lic_sys_id


xslm_adv_query() returns various types of license certificate information associated with the specified license handle.



A reference returned by xslm_adv_begin_session().


A reference returned by xslm_adv_request_license().


Value which identifies the information to be returned:

Query Type Explanation
XSLM_QUERY_PUBLISHER_INFO Return the publisher-unique section of the license certificate publisher defined data element structure. A returned query_buffer_length value of null indicates that the certificate contains no publisher-unique section.
XSLM_QUERY_CUST_DEF_INFO Return application-related information specified by the customer. A returned query_buffer_length value of null indicates that the certificate does not contain the CUSTOMER_ASSIGNED_APPL_INFO data element.
XSLM_QUERY_CERTIFICATE Return the certificate as it has been created by the application publisher.
XSLM_QUERY_CERT_RELATED_INFO Return the certificate related information maintained by the Licensing System.


A 32-bit arbitrary value created by the application and used as part of the licensing system authentication process. See Process Description for more information.



As an input parameter, the length of the buffer to receive the results of the query. A value of zero indicates a request for the size of the buffer required to contain the entire results of the query. No data is returned in the key buffer when a value of zero is passed.

As an output parameter, the length of data returned, or the size of the buffer required to contain the entire query result if the input value was zero.

Note that the buffer must be large enough to contain the entire result of the query. If it is not, no data is placed in the buffer and the output value of query_buffer_length contains the buffer length needed to contain the entire result. A value of zero on output indicates that the requested information was not available on the certificate.

Note that because the certificate related information may change at any time, the actual size needed may be different from the returned value in cases other than XSLM_QUERY_PUBLISHER_INFO and XSLM_QUERY_CERTIFICATE query types.



Buffer in which the query results are returned. The results are returned as a set of one or more data elements.


Completion status. Detailed error code directly addressable by the caller. This value is set to XSLM_STATUS_OK if no error occurred. For other messages, see ERRORS.


An area large enough to contain a 16-byte digital signature created by the licensing system from the input parameters and auth_token. Used as part of the licensing system authentication process.


A unique identifier for the particular type of licensing system handling the current license instance. Used as part of the licensing system authentication process.



Query completed successfully


Communications problem


Resources unavailable


Bad parameters passed


The function return value gives an overall indication of the success or failure of the call. In addition, the status parameter will be set to one of the following values, to further help point to the reason for a failed request.
In the future, additional values may be defined for the status variable. An application must not rely upon these being the only possible values.

Return Value Status Value Explanation
XSLM_OK XSLM_STATUS_OK No errors occurred
XSLM_COMM_ERR XSLM_COMM_UNAVAIL Communications problem
XSLM_RESRC_UNAVL XSLM_NO_RES Local platform specific environmental problems
  XSLM_SERVER_ERROR Unrecoverable environmental error was encountered by the license server
XSLM_PARM_ERR XSLM_BAD_BUFFER_LENGTH The non-zero value for the buffer length was too small for the certificate being retrieved.
  XSLM_BAD_LICENSE_HANDLE Invalid license handle passed.
  XSLM_BAD_PARM One or more parameters were not correct
  XSLM_BAD_SESSION_HANDLE The specified session handle is invalid
  XSLM_INVALID_API_USE Attempt to combine standard and advanced API for the same handle


See Data Elements for details on the data elements.

Note that if the query_buffer_length parameter does not specify a large enough buffer to contain the entire query result, no data is returned


xslm_adv_begin_session(), xslm_adv_request_license().

Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index