Leaked source code of windows server 2003
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.

288 lines
10 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1997 - 1999
  6. //
  7. // File: pstrpc.idl
  8. //
  9. // Description:
  10. //
  11. // This file describes the Protected Storage iPStoreProv interface,
  12. // which is a local-only RPC interface used to support pstore
  13. // operations. The server-side handlers for this interface live in
  14. // the lsass.exe process.
  15. //
  16. //--------------------------------------------------------------------------
  17. import "unknwn.idl";
  18. import "pstypes.idl";
  19. import "basetsd.h";
  20. midl_pragma warning(disable:2466)
  21. midl_pragma warning(disable:2467)
  22. typedef [range(0,256)] DWORD PS_PARAM_DWORD;
  23. typedef [range(0,0x10000)] DWORD PS_DATA_DWORD;
  24. ////////////////////////////
  25. // Interfaces
  26. [
  27. uuid(C9378FF1-16F7-11d0-A0B2-00AA0061426A),
  28. version(1.0),
  29. pointer_default(unique)
  30. ]
  31. interface IPStoreProv
  32. {
  33. HRESULT SSPStoreEnumProviders(
  34. [in] handle_t h,
  35. [in] PST_CALL_CONTEXT CallerContext,
  36. [out] PPST_PROVIDERINFO* ppPSTInfo,
  37. [in] DWORD dwIndex,
  38. [in] DWORD dwFlags);
  39. HRESULT SSGetProvInfo(
  40. [in] handle_t h,
  41. [in] PST_PROVIDER_HANDLE hPSTProv,
  42. [in] PST_CALL_CONTEXT CallerContext,
  43. [out] PPST_PROVIDERINFO* ppPSTInfo,
  44. [in] DWORD dwFlags);
  45. // This function is currently not implemented. The output
  46. // buffer is never used.
  47. HRESULT SSGetProvParam(
  48. [in] handle_t h,
  49. [in] PST_PROVIDER_HANDLE hPSTProv,
  50. [in] PST_CALL_CONTEXT CallerContext,
  51. [in] DWORD dwParam,
  52. [out] PS_PARAM_DWORD* pcbData,
  53. [out][size_is(,*pcbData)]
  54. BYTE** ppbData,
  55. [in] DWORD dwFlags);
  56. // This function is currently only used to flush the password
  57. // cache. The input buffer is never used.
  58. HRESULT SSSetProvParam(
  59. [in] handle_t h,
  60. [in] PST_PROVIDER_HANDLE hPSTProv,
  61. [in] PST_CALL_CONTEXT CallerContext,
  62. [in] DWORD dwParam,
  63. [in, range(0,256)]
  64. DWORD cbData,
  65. [in][size_is(cbData)]
  66. BYTE* pbData,
  67. [in] DWORD dwFlags);
  68. HRESULT SSAcquireContext(
  69. [in] handle_t h,
  70. [in] PPST_PROVIDERID pProvID,
  71. [in] PST_CALL_CONTEXT CallerContext,
  72. [in] DWORD pidCaller,
  73. [out] PST_PROVIDER_HANDLE* phPSTProv,
  74. [in] DWORD_PTR lpReserved,
  75. [in] DWORD dwFlags);
  76. HRESULT SSReleaseContext(
  77. [in] handle_t h,
  78. [in] PST_PROVIDER_HANDLE hPSTProv,
  79. [in] PST_CALL_CONTEXT CallerContext,
  80. [in] DWORD dwFlags);
  81. // interface to communicate passwords from external sources
  82. // such as credential managers
  83. HRESULT SSPasswordInterface(
  84. [in] handle_t h,
  85. [in] DWORD dwParam,
  86. [in, range(0,256)]
  87. DWORD cbData,
  88. [in][size_is(cbData)]
  89. BYTE* pbData);
  90. // Enumeration
  91. HRESULT SSEnumTypes(
  92. [in] handle_t h,
  93. [in] PST_PROVIDER_HANDLE hPSTProv,
  94. [in] PST_CALL_CONTEXT CallerContext,
  95. [in] PST_KEY Key,
  96. [out] GUID* pguidType,
  97. [in] DWORD dwIndex,
  98. [in] DWORD dwFlags);
  99. HRESULT SSEnumSubtypes(
  100. [in] handle_t h,
  101. [in] PST_PROVIDER_HANDLE hPSTProv,
  102. [in] PST_CALL_CONTEXT CallerContext,
  103. [in] PST_KEY Key,
  104. [in] const GUID* pguidType,
  105. [out] GUID* pguidSubtype,
  106. [in] DWORD dwIndex,
  107. [in] DWORD dwFlags);
  108. HRESULT SSEnumItems(
  109. [in] handle_t h,
  110. [in] PST_PROVIDER_HANDLE hPSTProv,
  111. [in] PST_CALL_CONTEXT CallerContext,
  112. [in] PST_KEY Key,
  113. [in] const GUID* pguidType,
  114. [in] const GUID* pguidSubtype,
  115. [out] LPWSTR* ppszItemName,
  116. [in] DWORD dwIndex,
  117. [in] DWORD dwFlags);
  118. // Type, Subtype info
  119. HRESULT SSGetTypeInfo(
  120. [in] handle_t h,
  121. [in] PST_PROVIDER_HANDLE hPSTProv,
  122. [in] PST_CALL_CONTEXT CallerContext,
  123. [in] PST_KEY Key,
  124. [in] const GUID* pguidType,
  125. [out] PPST_TYPEINFO* ppinfoType,
  126. [in] DWORD dwFlags);
  127. HRESULT SSGetSubtypeInfo(
  128. [in] handle_t h,
  129. [in] PST_PROVIDER_HANDLE hPSTProv,
  130. [in] PST_CALL_CONTEXT CallerContext,
  131. [in] PST_KEY Key,
  132. [in] const GUID* pguidType,
  133. [in] const GUID* pguidSubtype,
  134. [out] PPST_TYPEINFO* ppinfoSubtype,
  135. [in] DWORD dwFlags);
  136. // Creation
  137. HRESULT SSCreateType(
  138. [in] handle_t h,
  139. [in] PST_PROVIDER_HANDLE hPSTProv,
  140. [in] PST_CALL_CONTEXT CallerContext,
  141. [in] PST_KEY Key,
  142. [in] const GUID* pguidType,
  143. [in] PPST_TYPEINFO pinfoType,
  144. [in] DWORD dwFlags);
  145. HRESULT SSCreateSubtype(
  146. [in] handle_t h,
  147. [in] PST_PROVIDER_HANDLE hPSTProv,
  148. [in] PST_CALL_CONTEXT CallerContext,
  149. [in] PST_KEY Key,
  150. [in] const GUID* pguidType,
  151. [in] const GUID* pguidSubtype,
  152. [in] PPST_TYPEINFO pinfoSubtype,
  153. [in] PPST_ACCESSRULESET psRules,
  154. [in] DWORD dwFlags);
  155. // Deletion
  156. HRESULT SSDeleteType(
  157. [in] handle_t h,
  158. [in] PST_PROVIDER_HANDLE hPSTProv,
  159. [in] PST_CALL_CONTEXT CallerContext,
  160. [in] PST_KEY Key,
  161. [in] const GUID* pguidType,
  162. [in] DWORD dwFlags);
  163. HRESULT SSDeleteSubtype(
  164. [in] handle_t h,
  165. [in] PST_PROVIDER_HANDLE hPSTProv,
  166. [in] PST_CALL_CONTEXT CallerContext,
  167. [in] PST_KEY Key,
  168. [in] const GUID* pguidType,
  169. [in] const GUID* pguidSubtype,
  170. [in] DWORD dwFlags);
  171. HRESULT SSDeleteItem(
  172. [in] handle_t h,
  173. [in] PST_PROVIDER_HANDLE hPSTProv,
  174. [in] PST_CALL_CONTEXT CallerContext,
  175. [in] PST_KEY Key,
  176. [in] const GUID* pguidType,
  177. [in] const GUID* pguidSubtype,
  178. [in] LPCWSTR szItemName,
  179. [in] PPST_PROMPTINFO psPrompt,
  180. [in] DWORD dwFlags);
  181. // Item read/write
  182. HRESULT SSReadItem(
  183. [in] handle_t h,
  184. [in] PST_PROVIDER_HANDLE hPSTProv,
  185. [in] PST_CALL_CONTEXT CallerContext,
  186. [in] PST_KEY Key,
  187. [in] const GUID* pguidType,
  188. [in] const GUID* pguidSubtype,
  189. [in] LPCWSTR szItemName,
  190. [out] PS_DATA_DWORD* pcbData,
  191. [out][size_is(,*pcbData)]
  192. BYTE** ppbData,
  193. [in] PPST_PROMPTINFO psPrompt,
  194. [in] DWORD dwFlags);
  195. HRESULT SSWriteItem(
  196. [in] handle_t h,
  197. [in] PST_PROVIDER_HANDLE hPSTProv,
  198. [in] PST_CALL_CONTEXT CallerContext,
  199. [in] PST_KEY Key,
  200. [in] const GUID* pguidType,
  201. [in] const GUID* pguidSubtype,
  202. [in] LPCWSTR szItemName,
  203. [in, range(0,0x10000)]
  204. DWORD cbData,
  205. [in][size_is(cbData)]
  206. BYTE* pbData,
  207. [in] PPST_PROMPTINFO psPrompt,
  208. [in] DWORD dwDefaultConfirmationStyle,
  209. [in] DWORD dwFlags);
  210. HRESULT SSOpenItem(
  211. [in] handle_t h,
  212. [in] PST_PROVIDER_HANDLE hPSTProv,
  213. [in] PST_CALL_CONTEXT CallerContext,
  214. [in] PST_KEY Key,
  215. [in] const GUID* pguidType,
  216. [in] const GUID* pguidSubtype,
  217. [in] LPCWSTR szItemName,
  218. [in] PST_ACCESSMODE ModeFlags,
  219. [in] PPST_PROMPTINFO psPrompt,
  220. [in] DWORD dwFlags);
  221. HRESULT SSCloseItem(
  222. [in] handle_t h,
  223. [in] PST_PROVIDER_HANDLE hPSTProv,
  224. [in] PST_CALL_CONTEXT CallerContext,
  225. [in] PST_KEY Key,
  226. [in] const GUID* pguidType,
  227. [in] const GUID* pguidSubtype,
  228. [in] LPCWSTR szItemName,
  229. [in] DWORD dwFlags);
  230. HRESULT SSReadAccessRuleset(
  231. [in] handle_t h,
  232. [in] PST_PROVIDER_HANDLE hPSTProv,
  233. [in] PST_CALL_CONTEXT CallerContext,
  234. [in] PST_KEY Key,
  235. [in] const GUID* pguidType,
  236. [in] const GUID* pguidSubtype,
  237. [out] PPST_ACCESSRULESET* ppsRules,
  238. [in] DWORD dwFlags);
  239. HRESULT SSWriteAccessRuleset(
  240. [in] handle_t h,
  241. [in] PST_PROVIDER_HANDLE hPSTProv,
  242. [in] PST_CALL_CONTEXT CallerContext,
  243. [in] PST_KEY Key,
  244. [in] const GUID* pguidType,
  245. [in] const GUID* pguidSubtype,
  246. [in] PPST_ACCESSRULESET psRules,
  247. [in] DWORD dwFlags);
  248. }