You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
2.7 KiB
125 lines
2.7 KiB
/*
|
|
* LCRpc.idl
|
|
*
|
|
* Author: BreenH
|
|
*
|
|
* The RPC interface to the licensing core.
|
|
*/
|
|
|
|
/*
|
|
* LCRPC Interface Context Handle
|
|
*/
|
|
|
|
typedef [context_handle] void *LCRPC_HANDLE;
|
|
|
|
/*
|
|
* Create some constants in the generated header. Note that the strings are
|
|
* processed twice, therefore any "\" character, which should show up in the
|
|
* header as "\\", needs to be written here as "\\\\".
|
|
*/
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// Constants")
|
|
cpp_quote("//")
|
|
cpp_quote("")
|
|
cpp_quote("#define LC_RPC_UUID L\"2f59a331-bf7d-48cb-9e5c-7c090d76e8b8\"")
|
|
cpp_quote("#define LC_RPC_LRPC_EP L\"LcRpc\"")
|
|
cpp_quote("#define LC_RPC_MAX_THREADS 4")
|
|
|
|
/*
|
|
* LCRPC Interface
|
|
*/
|
|
|
|
[
|
|
uuid(2f59a331-bf7d-48cb-9e5c-7c090d76e8b8),
|
|
version(1.0),
|
|
pointer_default(unique),
|
|
endpoint("ncalrpc:[LcRpc]")
|
|
]
|
|
|
|
interface LCRPC
|
|
{
|
|
//
|
|
// To include headers into the interface, it is necessary to include
|
|
// through a separate IDL file.
|
|
//
|
|
|
|
import "lcimport.idl";
|
|
|
|
//
|
|
// RPC Open and Close Server Functions
|
|
//
|
|
|
|
BOOLEAN
|
|
RpcLicensingOpenServer(
|
|
[in] handle_t hBinding,
|
|
[out] LCRPC_HANDLE *phServer,
|
|
[out, ref] PLONG pStatus
|
|
);
|
|
|
|
void
|
|
RpcLicensingCloseServer(
|
|
[in, out] LCRPC_HANDLE *phServer
|
|
);
|
|
|
|
//
|
|
// Policy Loading and Activation Functions
|
|
//
|
|
|
|
BOOLEAN
|
|
RpcLicensingLoadPolicy(
|
|
[in] LCRPC_HANDLE hServer,
|
|
[in] ULONG ulPolicyId,
|
|
[out, ref] PLONG pStatus
|
|
);
|
|
|
|
BOOLEAN
|
|
RpcLicensingUnloadPolicy(
|
|
[in] LCRPC_HANDLE hServer,
|
|
[in] ULONG ulPolicyId,
|
|
[out, ref] PLONG pStatus
|
|
);
|
|
|
|
LONG
|
|
RpcLicensingSetPolicy(
|
|
[in] LCRPC_HANDLE hServer,
|
|
[in] ULONG ulPolicyId,
|
|
[out, ref] PLONG pNewPolicyStatus
|
|
);
|
|
|
|
//
|
|
// Administrative Functions
|
|
//
|
|
|
|
BOOLEAN
|
|
RpcLicensingGetAvailablePolicyIds(
|
|
[in] LCRPC_HANDLE hServer,
|
|
[out, size_is(,*pcPolicies)] PULONG *ppulPolicyIds,
|
|
[out, ref] PULONG pcPolicies,
|
|
[out, ref] PLONG pStatus
|
|
);
|
|
|
|
BOOLEAN
|
|
RpcLicensingGetPolicy(
|
|
[in] LCRPC_HANDLE hServer,
|
|
[out, ref] PULONG pulPolicyId,
|
|
[out, ref] PLONG pStatus
|
|
);
|
|
|
|
BOOLEAN
|
|
RpcLicensingGetPolicyInformation(
|
|
[in] LCRPC_HANDLE hServer,
|
|
[in] ULONG ulPolicyId,
|
|
[in, out, ref] PULONG pulVersion,
|
|
[out, size_is(,*pcbPolicyInfo)] PCHAR *ppPolicyInfo,
|
|
[in, out, ref] PULONG pcbPolicyInfo,
|
|
[out, ref] PLONG pStatus
|
|
);
|
|
|
|
BOOLEAN
|
|
RpcLicensingDeactivateCurrentPolicy(
|
|
[in] LCRPC_HANDLE hServer,
|
|
[out, ref] PLONG pStatus
|
|
);
|
|
}
|
|
|