windows-nt/Source/XPSP1/NT/termsrv/winsta/rpc/lcrpc.idl
2020-09-26 16:20:57 +08:00

127 lines
2.7 KiB
Plaintext

/*
* 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_NP_EP L\"\\\\pipe\\\\TermSrv_Licensing_Core\"")
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]", "ncacn_np:[\\pipe\\TermSrv_Licensing_Core]")
]
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
);
}