Source code of Windows XP (NT5)
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.

126 lines
2.7 KiB

  1. /*
  2. * LCRpc.idl
  3. *
  4. * Author: BreenH
  5. *
  6. * The RPC interface to the licensing core.
  7. */
  8. /*
  9. * LCRPC Interface Context Handle
  10. */
  11. typedef [context_handle] void *LCRPC_HANDLE;
  12. /*
  13. * Create some constants in the generated header. Note that the strings are
  14. * processed twice, therefore any "\" character, which should show up in the
  15. * header as "\\", needs to be written here as "\\\\".
  16. */
  17. cpp_quote("//")
  18. cpp_quote("// Constants")
  19. cpp_quote("//")
  20. cpp_quote("")
  21. cpp_quote("#define LC_RPC_UUID L\"2f59a331-bf7d-48cb-9e5c-7c090d76e8b8\"")
  22. cpp_quote("#define LC_RPC_LRPC_EP L\"LcRpc\"")
  23. cpp_quote("#define LC_RPC_NP_EP L\"\\\\pipe\\\\TermSrv_Licensing_Core\"")
  24. cpp_quote("#define LC_RPC_MAX_THREADS 4")
  25. /*
  26. * LCRPC Interface
  27. */
  28. [
  29. uuid(2f59a331-bf7d-48cb-9e5c-7c090d76e8b8),
  30. version(1.0),
  31. pointer_default(unique),
  32. endpoint("ncalrpc:[LcRpc]", "ncacn_np:[\\pipe\\TermSrv_Licensing_Core]")
  33. ]
  34. interface LCRPC
  35. {
  36. //
  37. // To include headers into the interface, it is necessary to include
  38. // through a separate IDL file.
  39. //
  40. import "lcimport.idl";
  41. //
  42. // RPC Open and Close Server Functions
  43. //
  44. BOOLEAN
  45. RpcLicensingOpenServer(
  46. [in] handle_t hBinding,
  47. [out] LCRPC_HANDLE *phServer,
  48. [out, ref] PLONG pStatus
  49. );
  50. void
  51. RpcLicensingCloseServer(
  52. [in, out] LCRPC_HANDLE *phServer
  53. );
  54. //
  55. // Policy Loading and Activation Functions
  56. //
  57. BOOLEAN
  58. RpcLicensingLoadPolicy(
  59. [in] LCRPC_HANDLE hServer,
  60. [in] ULONG ulPolicyId,
  61. [out, ref] PLONG pStatus
  62. );
  63. BOOLEAN
  64. RpcLicensingUnloadPolicy(
  65. [in] LCRPC_HANDLE hServer,
  66. [in] ULONG ulPolicyId,
  67. [out, ref] PLONG pStatus
  68. );
  69. LONG
  70. RpcLicensingSetPolicy(
  71. [in] LCRPC_HANDLE hServer,
  72. [in] ULONG ulPolicyId,
  73. [out, ref] PLONG pNewPolicyStatus
  74. );
  75. //
  76. // Administrative Functions
  77. //
  78. BOOLEAN
  79. RpcLicensingGetAvailablePolicyIds(
  80. [in] LCRPC_HANDLE hServer,
  81. [out, size_is(,*pcPolicies)] PULONG *ppulPolicyIds,
  82. [out, ref] PULONG pcPolicies,
  83. [out, ref] PLONG pStatus
  84. );
  85. BOOLEAN
  86. RpcLicensingGetPolicy(
  87. [in] LCRPC_HANDLE hServer,
  88. [out, ref] PULONG pulPolicyId,
  89. [out, ref] PLONG pStatus
  90. );
  91. BOOLEAN
  92. RpcLicensingGetPolicyInformation(
  93. [in] LCRPC_HANDLE hServer,
  94. [in] ULONG ulPolicyId,
  95. [in, out, ref] PULONG pulVersion,
  96. [out, size_is(,*pcbPolicyInfo)] PCHAR *ppPolicyInfo,
  97. [in, out, ref] PULONG pcbPolicyInfo,
  98. [out, ref] PLONG pStatus
  99. );
  100. BOOLEAN
  101. RpcLicensingDeactivateCurrentPolicy(
  102. [in] LCRPC_HANDLE hServer,
  103. [out, ref] PLONG pStatus
  104. );
  105. }