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.

696 lines
17 KiB

  1. /*++
  2. Copyright (c) 1999 Microsoft Corporation
  3. Module Name:
  4. spd.idl
  5. Abstract:
  6. IDL file for IPSec WINAPIs.
  7. Author:
  8. krishnaG 21-September-1999
  9. Environment:
  10. User Level: Win32
  11. Revision History:
  12. abhisheV 29-September-1999 Added the structures.
  13. Added the rpc prototypes.
  14. --*/
  15. [
  16. uuid(12345678-1234-ABCD-EF00-0123456789AB),
  17. version(1.0),
  18. pointer_default(unique)
  19. ]
  20. interface winipsec
  21. {
  22. import "import.idl";
  23. typedef [context_handle] void * TRANSPORTFILTER_HANDLE;
  24. typedef [context_handle] void * TUNNELFILTER_HANDLE;
  25. typedef [context_handle] void * MMFILTER_HANDLE;
  26. typedef [context_handle] void * IKENEGOTIATION_HANDLE;
  27. typedef [context_handle] void * IKENOTIFY_HANDLE;
  28. typedef [handle] wchar_t * STRING_HANDLE;
  29. typedef struct _TRANSPORT_FILTER_CONTAINER {
  30. [range(0,MIDL_MAX_TRANSPORTFILTER_COUNT)] DWORD dwNumFilters;
  31. [size_is(dwNumFilters)] PTRANSPORT_FILTER pTransportFilters;
  32. } TRANSPORT_FILTER_CONTAINER, * PTRANSPORT_FILTER_CONTAINER;
  33. typedef struct _TUNNEL_FILTER_CONTAINER {
  34. [range(0,MIDL_MAX_TUNNELFILTER_COUNT)] DWORD dwNumFilters;
  35. [size_is(dwNumFilters)] PTUNNEL_FILTER pTunnelFilters;
  36. } TUNNEL_FILTER_CONTAINER, * PTUNNEL_FILTER_CONTAINER;
  37. typedef struct _IPSEC_QM_POLICY_CONTAINER {
  38. [range(0,MIDL_MAX_QMPOLICY_COUNT)] DWORD dwNumPolicies;
  39. [size_is(dwNumPolicies)] PIPSEC_QM_POLICY pPolicies;
  40. } IPSEC_QM_POLICY_CONTAINER, * PIPSEC_QM_POLICY_CONTAINER;
  41. typedef struct _IPSEC_MM_POLICY_CONTAINER {
  42. [range(0,MIDL_MAX_MMPOLICY_COUNT)] DWORD dwNumPolicies;
  43. [size_is(dwNumPolicies)] PIPSEC_MM_POLICY pPolicies;
  44. } IPSEC_MM_POLICY_CONTAINER, * PIPSEC_MM_POLICY_CONTAINER;
  45. typedef struct _MM_AUTH_METHODS_CONTAINER {
  46. [range(0, MIDL_MAX_MMAUTH_COUNT)] DWORD dwNumAuthMethods;
  47. [size_is(dwNumAuthMethods)] PMM_AUTH_METHODS pMMAuthMethods;
  48. } MM_AUTH_METHODS_CONTAINER, * PMM_AUTH_METHODS_CONTAINER;
  49. typedef struct _MM_FILTER_CONTAINER {
  50. [range(0,MIDL_MAX_MMFILTER_COUNT)]DWORD dwNumFilters;
  51. [size_is(dwNumFilters)] PMM_FILTER pMMFilters;
  52. } MM_FILTER_CONTAINER, * PMM_FILTER_CONTAINER;
  53. typedef struct _MM_SA_CONTAINER {
  54. [range(0,MIDL_MAX_MMSA_COUNT)] DWORD dwNumMMSAs;
  55. [size_is(dwNumMMSAs)] PIPSEC_MM_SA pMMSAs;
  56. } MM_SA_CONTAINER, * PMM_SA_CONTAINER;
  57. typedef struct _IPSEC_STATISTICS_CONTAINER {
  58. [range(0,1)] DWORD dwNumIpsecStats;
  59. [size_is(dwNumIpsecStats)] PIPSEC_STATISTICS pIpsecStatistics;
  60. } IPSEC_STATISTICS_CONTAINER, * PIPSEC_STATISTICS_CONTAINER;
  61. typedef struct _QM_SA_CONTAINER {
  62. [range(0,MIDL_MAX_QMSA_COUNT)] DWORD dwNumQMSAs;
  63. [size_is(dwNumQMSAs)] PIPSEC_QM_SA pQMSAs;
  64. } QM_SA_CONTAINER, * PQM_SA_CONTAINER;
  65. typedef struct _QM_FILTER_CONTAINER {
  66. [range(0,MIDL_MAX_QMFILTER_COUNT)] DWORD dwNumFilters;
  67. [size_is(dwNumFilters)] PIPSEC_QM_FILTER pQMFilters;
  68. } QM_FILTER_CONTAINER, * PQM_FILTER_CONTAINER;
  69. typedef struct _IPSEC_INTERFACE_CONTAINER {
  70. [range(0,MIDL_MAX_INTERFACE_COUNT)] DWORD dwNumInterfaces;
  71. [size_is(dwNumInterfaces)] PIPSEC_INTERFACE_INFO pIpsecInterfaces;
  72. } IPSEC_INTERFACE_CONTAINER, * PIPSEC_INTERFACE_CONTAINER;
  73. typedef struct _SPD_POLICY_STATE_CONTAINER {
  74. [range(0,1)] DWORD dwNumPolicyStates;
  75. [size_is(dwNumPolicyStates)] PSPD_POLICY_STATE pSpdPolicyStates;
  76. } SPD_POLICY_STATE_CONTAINER, * PSPD_POLICY_STATE_CONTAINER;
  77. DWORD
  78. RpcAddTransportFilter(
  79. [in, string, unique] STRING_HANDLE pServerName,
  80. [in] DWORD dwVersion,
  81. [in] DWORD dwFlags,
  82. [in] PTRANSPORT_FILTER_CONTAINER pFilterContainer,
  83. [out] TRANSPORTFILTER_HANDLE * phFilter
  84. );
  85. DWORD
  86. RpcDeleteTransportFilter(
  87. [in, out] TRANSPORTFILTER_HANDLE * phFilter
  88. );
  89. DWORD
  90. RpcEnumTransportFilters(
  91. [in, string, unique] STRING_HANDLE pServerName,
  92. [in] DWORD dwVersion,
  93. [in] PTRANSPORT_FILTER_CONTAINER pTemplateFilterContainer,
  94. [in] DWORD dwLevel,
  95. [in] GUID gGenericFilterID,
  96. [in] DWORD dwPreferredNumEntries,
  97. [in, out] PTRANSPORT_FILTER_CONTAINER * ppFilterContainer,
  98. [in, out, unique] LPDWORD pdwResumeHandle
  99. );
  100. DWORD
  101. RpcSetTransportFilter(
  102. [in] TRANSPORTFILTER_HANDLE hFilter,
  103. [in] DWORD dwVersion,
  104. [in] PTRANSPORT_FILTER_CONTAINER pFilterContainer
  105. );
  106. DWORD
  107. RpcGetTransportFilter(
  108. [in] TRANSPORTFILTER_HANDLE hFilter,
  109. [in] DWORD dwVersion,
  110. [in, out] PTRANSPORT_FILTER_CONTAINER * ppFilterContainer
  111. );
  112. DWORD
  113. RpcAddQMPolicy(
  114. [in, string, unique] STRING_HANDLE pServerName,
  115. [in] DWORD dwVersion,
  116. [in] DWORD dwFlags,
  117. [in] PIPSEC_QM_POLICY_CONTAINER pQMPolicyContainer
  118. );
  119. DWORD
  120. RpcDeleteQMPolicy(
  121. [in, string, unique] STRING_HANDLE pServerName,
  122. [in] DWORD dwVersion,
  123. [in, string, unique] LPWSTR pszPolicyName
  124. );
  125. DWORD
  126. RpcEnumQMPolicies(
  127. [in, string, unique] STRING_HANDLE pServerName,
  128. [in] DWORD dwVersion,
  129. [in] PIPSEC_QM_POLICY_CONTAINER pQMTempPolicyContainer,
  130. [in] DWORD dwFlags,
  131. [in] DWORD dwPreferredNumEntries,
  132. [in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer,
  133. [in, out, unique] LPDWORD pdwResumeHandle
  134. );
  135. DWORD
  136. RpcSetQMPolicy(
  137. [in, string, unique] STRING_HANDLE pServerName,
  138. [in] DWORD dwVersion,
  139. [in, string, unique] LPWSTR pszPolicyName,
  140. [in] PIPSEC_QM_POLICY_CONTAINER pQMPolicyContainer
  141. );
  142. DWORD
  143. RpcGetQMPolicy(
  144. [in, string, unique] STRING_HANDLE pServerName,
  145. [in] DWORD dwVersion,
  146. [in, string, unique] LPWSTR pszPolicyName,
  147. [in] DWORD dwFlags,
  148. [in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer
  149. );
  150. DWORD
  151. RpcAddMMPolicy(
  152. [in, string, unique] STRING_HANDLE pServerName,
  153. [in] DWORD dwVersion,
  154. [in] DWORD dwFlags,
  155. [in] PIPSEC_MM_POLICY_CONTAINER pMMPolicyContainer
  156. );
  157. DWORD
  158. RpcDeleteMMPolicy(
  159. [in, string, unique] STRING_HANDLE pServerName,
  160. [in] DWORD dwVersion,
  161. [in, string, unique] LPWSTR pszPolicyName
  162. );
  163. DWORD
  164. RpcEnumMMPolicies(
  165. [in, string, unique] STRING_HANDLE pServerName,
  166. [in] DWORD dwVersion,
  167. [in] PIPSEC_MM_POLICY_CONTAINER pMMTempPolicyContainer,
  168. [in] DWORD dwFlags,
  169. [in] DWORD dwPreferredNumEntries,
  170. [in, out] PIPSEC_MM_POLICY_CONTAINER * ppMMPolicyContainer,
  171. [in, out, unique] LPDWORD pdwResumeHandle
  172. );
  173. DWORD
  174. RpcSetMMPolicy(
  175. [in, string, unique] STRING_HANDLE pServerName,
  176. [in] DWORD dwVersion,
  177. [in, string, unique] LPWSTR pszPolicyName,
  178. [in] PIPSEC_MM_POLICY_CONTAINER pMMPolicyContainer
  179. );
  180. DWORD
  181. RpcGetMMPolicy(
  182. [in, string, unique] STRING_HANDLE pServerName,
  183. [in] DWORD dwVersion,
  184. [in, string, unique] LPWSTR pszPolicyName,
  185. [in, out] PIPSEC_MM_POLICY_CONTAINER * ppMMPolicyContainer
  186. );
  187. DWORD
  188. RpcAddMMFilter(
  189. [in, string, unique] STRING_HANDLE pServerName,
  190. [in] DWORD dwVersion,
  191. [in] DWORD dwFlags,
  192. [in] PMM_FILTER_CONTAINER pMMFilterContainer,
  193. [out] MMFILTER_HANDLE * phMMFilter
  194. );
  195. DWORD
  196. RpcDeleteMMFilter(
  197. [in, out] MMFILTER_HANDLE * phMMFilter
  198. );
  199. DWORD
  200. RpcEnumMMFilters(
  201. [in, string, unique] STRING_HANDLE pServerName,
  202. [in] DWORD dwVersion,
  203. [in] PMM_FILTER_CONTAINER pTemplateFilterContainer,
  204. [in] DWORD dwLevel,
  205. [in] GUID gGenericFilterID,
  206. [in] DWORD dwPreferredNumEntries,
  207. [in, out] PMM_FILTER_CONTAINER * ppMMFilterContainer,
  208. [in, out, unique] LPDWORD pdwResumeHandle
  209. );
  210. DWORD
  211. RpcSetMMFilter(
  212. [in] MMFILTER_HANDLE hMMFilter,
  213. [in] DWORD dwVersion,
  214. [in] PMM_FILTER_CONTAINER pMMFilterContainer
  215. );
  216. DWORD
  217. RpcGetMMFilter(
  218. [in] MMFILTER_HANDLE hMMFilter,
  219. [in] DWORD dwVersion,
  220. [in, out] PMM_FILTER_CONTAINER * ppMMFilterContainer
  221. );
  222. DWORD
  223. RpcMatchMMFilter(
  224. [in, string, unique] STRING_HANDLE pServerName,
  225. [in] DWORD dwVersion,
  226. [in] PMM_FILTER_CONTAINER pMMFilterContainer,
  227. [in] DWORD dwFlags,
  228. [in] DWORD dwPreferredNumEntries,
  229. [in, out] PMM_FILTER_CONTAINER * ppMMFilterContainer,
  230. [in, out] PIPSEC_MM_POLICY_CONTAINER * ppMMPolicyContainer,
  231. [in, out] PMM_AUTH_METHODS_CONTAINER * ppMMAuthContainer,
  232. [in, out, unique] LPDWORD pdwResumeHandle
  233. );
  234. DWORD
  235. RpcMatchTransportFilter(
  236. [in, string, unique] STRING_HANDLE pServerName,
  237. [in] DWORD dwVersion,
  238. [in] PTRANSPORT_FILTER_CONTAINER pTxFilterContainer,
  239. [in] DWORD dwFlags,
  240. [in] DWORD dwPreferredNumEntries,
  241. [in, out] PTRANSPORT_FILTER_CONTAINER * ppTxFilterContainer,
  242. [in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer,
  243. [in, out, unique] LPDWORD pdwResumeHandle
  244. );
  245. DWORD
  246. RpcGetQMPolicyByID(
  247. [in, string, unique] STRING_HANDLE pServerName,
  248. [in] DWORD dwVersion,
  249. [in] GUID gQMPolicyID,
  250. [in] DWORD dwFlags,
  251. [in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer
  252. );
  253. DWORD
  254. RpcGetMMPolicyByID(
  255. [in, string, unique] STRING_HANDLE pServerName,
  256. [in] DWORD dwVersion,
  257. [in] GUID gMMPolicyID,
  258. [in, out] PIPSEC_MM_POLICY_CONTAINER * ppMMPolicyContainer
  259. );
  260. DWORD
  261. RpcAddMMAuthMethods(
  262. [in, string, unique] STRING_HANDLE pServerName,
  263. [in] DWORD dwVersion,
  264. [in] DWORD dwFlags,
  265. [in] PMM_AUTH_METHODS_CONTAINER pMMAuthContainer
  266. );
  267. DWORD
  268. RpcDeleteMMAuthMethods(
  269. [in, string, unique] STRING_HANDLE pServerName,
  270. [in] DWORD dwVersion,
  271. [in] GUID gMMAuthID
  272. );
  273. DWORD
  274. RpcEnumMMAuthMethods(
  275. [in, string, unique] STRING_HANDLE pServerName,
  276. [in] DWORD dwVersion,
  277. [in] PMM_AUTH_METHODS_CONTAINER pMMTempAuthContainer,
  278. [in] DWORD dwFlags,
  279. [in] DWORD dwPreferredNumEntries,
  280. [in, out] PMM_AUTH_METHODS_CONTAINER * ppMMAuthContainer,
  281. [in, out, unique] LPDWORD pdwResumeHandle
  282. );
  283. DWORD
  284. RpcSetMMAuthMethods(
  285. [in, string, unique] STRING_HANDLE pServerName,
  286. [in] DWORD dwVersion,
  287. [in] GUID gMMAuthID,
  288. [in] PMM_AUTH_METHODS_CONTAINER pMMAuthContainer
  289. );
  290. DWORD
  291. RpcGetMMAuthMethods(
  292. [in, string, unique] STRING_HANDLE pServerName,
  293. [in] DWORD dwVersion,
  294. [in] GUID gMMAuthID,
  295. [in, out] PMM_AUTH_METHODS_CONTAINER * ppMMAuthContainer
  296. );
  297. DWORD
  298. RpcInitiateIKENegotiation(
  299. [in, string, unique] STRING_HANDLE pServerName,
  300. [in] DWORD dwVersion,
  301. [in] PQM_FILTER_CONTAINER pQMFilterContainer,
  302. [in] DWORD dwClientProcessId,
  303. [in] ULONG uhClientEvent,
  304. [in] DWORD dwFlags,
  305. [in] IPSEC_UDP_ENCAP_CONTEXT UdpEncapContext,
  306. [in, out, unique] IKENEGOTIATION_HANDLE * phIKENegotiation
  307. );
  308. DWORD
  309. RpcQueryIKENegotiationStatus(
  310. [in] IKENEGOTIATION_HANDLE hIKENegotiation,
  311. [in] DWORD dwVersion,
  312. [out, ref] SA_NEGOTIATION_STATUS_INFO * pNegotiationStatus
  313. );
  314. DWORD
  315. RpcCloseIKENegotiationHandle(
  316. [in, out] IKENEGOTIATION_HANDLE * phIKENegotiation
  317. );
  318. DWORD
  319. RpcEnumMMSAs(
  320. [in, string, unique] STRING_HANDLE pServerName,
  321. [in] DWORD dwVersion,
  322. [in] PMM_SA_CONTAINER pMMTemplate,
  323. [in] DWORD dwFlags,
  324. [in] DWORD dwPreferredNumEntries,
  325. [in, out] PMM_SA_CONTAINER * ppMMSAContainer,
  326. [in, out, unique] LPDWORD pdwNumEntries,
  327. [in, out, unique] LPDWORD pdwTotalMMsAvailable,
  328. [in, out, unique] LPDWORD pdwEnumHandle
  329. );
  330. DWORD
  331. RpcDeleteMMSAs(
  332. [in, string, unique] STRING_HANDLE pServerName,
  333. [in] DWORD dwVersion,
  334. [in] PMM_SA_CONTAINER pMMTemplate,
  335. [in] DWORD dwFlags
  336. );
  337. DWORD
  338. RpcDeleteQMSAs(
  339. [in, string, unique] STRING_HANDLE pServerName,
  340. [in] DWORD dwVersion,
  341. [in] PQM_SA_CONTAINER pQMSAContainer,
  342. [in] DWORD dwFlags
  343. );
  344. DWORD
  345. RpcQueryIKEStatistics(
  346. [in, string, unique] STRING_HANDLE pServerName,
  347. [in] DWORD dwVersion,
  348. [out, ref] IKE_STATISTICS * pIKEStatistics
  349. );
  350. DWORD
  351. RpcRegisterIKENotifyClient(
  352. [in, string, unique] STRING_HANDLE pServerName,
  353. [in] DWORD dwVersion,
  354. [in] DWORD dwClientProcessId,
  355. [in] ULONG uhClientEvent,
  356. [in] PQM_SA_CONTAINER pQMSATemplateContainer,
  357. [in] DWORD dwFlags,
  358. [out] IKENOTIFY_HANDLE * phNotifyHandle
  359. );
  360. DWORD
  361. RpcQueryIKENotifyData(
  362. [in] IKENOTIFY_HANDLE uhNotifyHandle,
  363. [in] DWORD dwVersion,
  364. [in] DWORD dwFlags,
  365. [in, out] PQM_SA_CONTAINER * ppQMSAContainer,
  366. [in, out] PDWORD pdwNumEntries
  367. );
  368. DWORD
  369. RpcCloseIKENotifyHandle(
  370. [in, out] IKENOTIFY_HANDLE * phHandle
  371. );
  372. DWORD
  373. RpcQueryIPSecStatistics(
  374. [in, string, unique] STRING_HANDLE pServerName,
  375. [in] DWORD dwVersion,
  376. [in, out] PIPSEC_STATISTICS_CONTAINER * ppIpsecStatsContainer
  377. );
  378. DWORD
  379. RpcEnumQMSAs(
  380. [in, string, unique] STRING_HANDLE pServerName,
  381. [in] DWORD dwVersion,
  382. [in] PQM_SA_CONTAINER pQMSATempContainer,
  383. [in] DWORD dwFlags,
  384. [in] DWORD dwPreferredNumEntries,
  385. [in, out] PQM_SA_CONTAINER * ppQMSAContainer,
  386. [in, out, unique] LPDWORD pdwNumTotalQMSAs,
  387. [in, out, unique] LPDWORD pdwResumeHandle
  388. );
  389. DWORD
  390. RpcAddTunnelFilter(
  391. [in, string, unique] STRING_HANDLE pServerName,
  392. [in] DWORD dwVersion,
  393. [in] DWORD dwFlags,
  394. [in] PTUNNEL_FILTER_CONTAINER pFilterContainer,
  395. [out] TUNNELFILTER_HANDLE * phFilter
  396. );
  397. DWORD
  398. RpcDeleteTunnelFilter(
  399. [in, out] TUNNELFILTER_HANDLE * phFilter
  400. );
  401. DWORD
  402. RpcEnumTunnelFilters(
  403. [in, string, unique] STRING_HANDLE pServerName,
  404. [in] DWORD dwVersion,
  405. [in] PTUNNEL_FILTER_CONTAINER pTemplateFilterContainer,
  406. [in] DWORD dwLevel,
  407. [in] GUID gGenericFilterID,
  408. [in] DWORD dwPreferredNumEntries,
  409. [in, out] PTUNNEL_FILTER_CONTAINER * ppFilterContainer,
  410. [in, out, unique] LPDWORD pdwResumeHandle
  411. );
  412. DWORD
  413. RpcSetTunnelFilter(
  414. [in] TUNNELFILTER_HANDLE hFilter,
  415. [in] DWORD dwVersion,
  416. [in] PTUNNEL_FILTER_CONTAINER pFilterContainer
  417. );
  418. DWORD
  419. RpcGetTunnelFilter(
  420. [in] TUNNELFILTER_HANDLE hFilter,
  421. [in] DWORD dwVersion,
  422. [in, out] PTUNNEL_FILTER_CONTAINER * ppFilterContainer
  423. );
  424. DWORD
  425. RpcMatchTunnelFilter(
  426. [in, string, unique] STRING_HANDLE pServerName,
  427. [in] DWORD dwVersion,
  428. [in] PTUNNEL_FILTER_CONTAINER pTnFilterContainer,
  429. [in] DWORD dwFlags,
  430. [in] DWORD dwPreferredNumEntries,
  431. [in, out] PTUNNEL_FILTER_CONTAINER * ppTnFilterContainer,
  432. [in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer,
  433. [in, out, unique] LPDWORD pdwResumeHandle
  434. );
  435. DWORD
  436. RpcOpenMMFilterHandle(
  437. [in, string, unique] STRING_HANDLE pServerName,
  438. [in] DWORD dwVersion,
  439. [in] PMM_FILTER_CONTAINER pMMFilterContainer,
  440. [out] MMFILTER_HANDLE * phMMFilter
  441. );
  442. DWORD
  443. RpcCloseMMFilterHandle(
  444. [in, out] MMFILTER_HANDLE * phMMFilter
  445. );
  446. DWORD
  447. RpcOpenTransportFilterHandle(
  448. [in, string, unique] STRING_HANDLE pServerName,
  449. [in] DWORD dwVersion,
  450. [in] PTRANSPORT_FILTER_CONTAINER pFilterContainer,
  451. [out] TRANSPORTFILTER_HANDLE * phFilter
  452. );
  453. DWORD
  454. RpcCloseTransportFilterHandle(
  455. [in, out] TRANSPORTFILTER_HANDLE * phFilter
  456. );
  457. DWORD
  458. RpcOpenTunnelFilterHandle(
  459. [in, string, unique] STRING_HANDLE pServerName,
  460. [in] DWORD dwVersion,
  461. [in] PTUNNEL_FILTER_CONTAINER pFilterContainer,
  462. [out] TUNNELFILTER_HANDLE * phFilter
  463. );
  464. DWORD
  465. RpcCloseTunnelFilterHandle(
  466. [in, out] TUNNELFILTER_HANDLE * phFilter
  467. );
  468. DWORD
  469. RpcEnumIpsecInterfaces(
  470. [in, string, unique] STRING_HANDLE pServerName,
  471. [in] DWORD dwVersion,
  472. [in] PIPSEC_INTERFACE_CONTAINER pIpsecIfTempContainer,
  473. [in] DWORD dwFlags,
  474. [in] DWORD dwPreferredNumEntries,
  475. [in, out] PIPSEC_INTERFACE_CONTAINER * ppIpsecIfContainer,
  476. [in, out, unique] LPDWORD pdwNumTotalInterfaces,
  477. [in, out, unique] LPDWORD pdwResumeHandle
  478. );
  479. #define MAX_ADDSA_KEYLEN 1000
  480. DWORD
  481. RpcAddSAs(
  482. [in, string, unique] STRING_HANDLE pServerName,
  483. [in] DWORD dwVersion,
  484. [in] IPSEC_SA_DIRECTION SADirection,
  485. [in,out] PIPSEC_QM_POLICY_CONTAINER pQMPolicyContainer,
  486. [in] PQM_FILTER_CONTAINER pQMFilterContainer,
  487. [in, out] ULONG * puhLarvalContext,
  488. [in,range(0,MAX_ADDSA_KEYLEN)] DWORD dwInboundKeyMatLen,
  489. [in, size_is(dwInboundKeyMatLen)] BYTE * pInboundKeyMat,
  490. [in,range(0,MAX_ADDSA_KEYLEN)] DWORD dwOutboundKeyMatLen,
  491. [in, size_is(dwOutboundKeyMatLen)] BYTE *pOutboundKeyMat,
  492. [in, size_is(sizeof(IKE_COOKIE_PAIR))] BYTE *pContextInfo,
  493. [in] UDP_ENCAP_INFO EncapInfo,
  494. DWORD dwFlags);
  495. DWORD
  496. RpcSetConfigurationVariables(
  497. [in, string, unique] STRING_HANDLE pServerName,
  498. [in] IKE_CONFIG IKEConfig
  499. );
  500. DWORD
  501. RpcGetConfigurationVariables(
  502. [in, string, unique] STRING_HANDLE pServerName,
  503. [out, ref] IKE_CONFIG *pIKEConfig
  504. );
  505. DWORD
  506. RpcQuerySpdPolicyState(
  507. [in, string, unique] STRING_HANDLE pServerName,
  508. [in] DWORD dwVersion,
  509. [in, out] PSPD_POLICY_STATE_CONTAINER * ppSpdPolicyStateContainer
  510. );
  511. }