fwpmu.h 22 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _INC_FWPMU
  7. #define _INC_FWPMU
  8. #include <rpc.h>
  9. #include <fwptypes.h>
  10. #include <fwpmtypes.h>
  11. #include <iketypes.h>
  12. #include <ipsectypes.h>
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #if (_WIN32_WINNT >= 0x0600)
  17. #ifndef MAXUINT64
  18. #define MAXUINT64 (0xFFFFFFFFFFFFFFFFULL)
  19. #endif /* MAXUINT64 */
  20. #define FWPM_AUTO_WEIGHT_BITS (60)
  21. #define FWPM_AUTO_WEIGHT_MAX (MAXUINT64 >> 4)
  22. #define FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS (0xC)
  23. #define FWPM_WEIGHT_RANGE_IPSEC (0x0)
  24. #define FWPM_WEIGHT_RANGE_MAX (MAXUINT64 >> 60)
  25. DEFINE_GUID(FWPM_PROVIDER_IKEEXT,0x10AD9216,0xCCDE,0x456C,0x8B,0x16,0xE9,0xF0,0x4E,0x60,0xA9,0x0B);
  26. DEFINE_GUID(FWPM_PROVIDER_TCP_CHIMNEY_OFFLOAD,0x896AA19E,0x9A34,0x4BCB,0xAE,0x79,0xBE,0xB9,0x12,0x7C,0x84,0xB9);
  27. typedef UINT32 IPSEC_SA_SPI;
  28. typedef void ( CALLBACK *FWPM_CALLOUT_CHANGE_CALLBACK0 )(
  29. void *context,
  30. const FWPM_CALLOUT_CHANGE0 *change
  31. );
  32. typedef void ( CALLBACK *FWPM_FILTER_CHANGE_CALLBACK0 )(
  33. void *context,
  34. const FWPM_FILTER_CHANGE0 *change
  35. );
  36. typedef void ( CALLBACK *FWPM_PROVIDER_CHANGE_CALLBACK0 )(
  37. void *context,
  38. const FWPM_PROVIDER_CHANGE0 *change
  39. );
  40. typedef void ( CALLBACK *FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 )(
  41. void *context,
  42. const FWPM_PROVIDER_CONTEXT_CHANGE0 *change
  43. );
  44. typedef void ( CALLBACK *FWPM_SUBLAYER_CHANGE_CALLBACK0 )(
  45. void *context,
  46. const FWPM_SUBLAYER_CHANGE0 *change
  47. );
  48. DWORD WINAPI FwpmCalloutSubscribeChanges0(
  49. HANDLE engineHandle,
  50. const FWPM_CALLOUT_SUBSCRIPTION0 *subscription,
  51. FWPM_CALLOUT_CHANGE_CALLBACK0 callback,
  52. void *context,
  53. HANDLE *changeHandle
  54. );
  55. DWORD WINAPI FwpmEngineOpen0(
  56. const wchar_t *serverName,
  57. UINT32 authnService,
  58. SEC_WINNT_AUTH_IDENTITY_W *authIdentity,
  59. const FWPM_SESSION0 *session,
  60. HANDLE *engineHandle
  61. );
  62. DWORD WINAPI FwpmCalloutAdd0(
  63. HANDLE engineHandle,
  64. const FWPM_CALLOUT0 *callout,
  65. PSECURITY_DESCRIPTOR sd,
  66. UINT32 *id
  67. );
  68. DWORD WINAPI FwpmFilterAdd0(
  69. HANDLE engineHandle,
  70. const FWPM_FILTER0 *filter,
  71. PSECURITY_DESCRIPTOR sd,
  72. UINT64 *id
  73. );
  74. DWORD WINAPI FwpmEngineClose0(
  75. HANDLE engineHandle
  76. );
  77. DWORD WINAPI FwpmFilterSubscribeChanges0(
  78. HANDLE engineHandle,
  79. const FWPM_FILTER_SUBSCRIPTION0 *subscription,
  80. FWPM_FILTER_CHANGE_CALLBACK0 callback,
  81. void *context,
  82. HANDLE *changeHandle
  83. );
  84. DWORD WINAPI FwpmProviderSubscribeChanges0(
  85. HANDLE engineHandle,
  86. const FWPM_PROVIDER_SUBSCRIPTION0 *subscription,
  87. FWPM_PROVIDER_CHANGE_CALLBACK0 callback,
  88. void *context,
  89. HANDLE *changeHandle
  90. );
  91. DWORD WINAPI FwpmProviderContextSubscribeChanges0(
  92. HANDLE engineHandle,
  93. const FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0 *subscription,
  94. FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 callback,
  95. void *context,
  96. HANDLE *changeHandle
  97. );
  98. DWORD WINAPI FwpmProviderContextAdd0(
  99. HANDLE engineHandle,
  100. const FWPM_PROVIDER_CONTEXT0 *providerContext,
  101. PSECURITY_DESCRIPTOR sd,
  102. UINT64 *id
  103. );
  104. DWORD WINAPI FwpmSubLayerSubscribeChanges0(
  105. HANDLE engineHandle,
  106. const FWPM_SUBLAYER_SUBSCRIPTION0 *subscription,
  107. FWPM_SUBLAYER_CHANGE_CALLBACK0 callback,
  108. void *context,
  109. HANDLE *changeHandle
  110. );
  111. DWORD WINAPI FwpmSubLayerAdd0(
  112. HANDLE engineHandle,
  113. const FWPM_SUBLAYER0 *subLayer,
  114. PSECURITY_DESCRIPTOR sd
  115. );
  116. DWORD WINAPI FwpmCalloutCreateEnumHandle0(
  117. HANDLE engineHandle,
  118. const FWPM_CALLOUT_ENUM_TEMPLATE0 *enumTemplate,
  119. HANDLE *enumHandle
  120. );
  121. DWORD WINAPI FwpmCalloutDeleteById0(
  122. HANDLE engineHandle,
  123. UINT32 id
  124. );
  125. DWORD WINAPI FwpmCalloutDeleteByKey0(
  126. HANDLE engineHandle,
  127. const GUID *key
  128. );
  129. DWORD WINAPI FwpmCalloutDestroyEnumHandle0(
  130. HANDLE engineHandle,
  131. HANDLE enumHandle
  132. );
  133. DWORD WINAPI FwpmCalloutEnum0(
  134. HANDLE engineHandle,
  135. HANDLE enumHandle,
  136. UINT32 numEntriesRequested,
  137. FWPM_CALLOUT0 ***entries,
  138. UINT32 *numEntriesReturned
  139. );
  140. void WINAPI FwpmFreeMemory0(
  141. void **p
  142. );
  143. DWORD WINAPI FwpmCalloutGetById0(
  144. HANDLE engineHandle,
  145. UINT32 id,
  146. FWPM_CALLOUT0 **callout
  147. );
  148. DWORD WINAPI FwpmCalloutGetByKey0(
  149. HANDLE engineHandle,
  150. const GUID *key,
  151. FWPM_CALLOUT0 **callout
  152. );
  153. DWORD WINAPI FwpmCalloutGetSecurityInfoByKey0(
  154. HANDLE engineHandle,
  155. const GUID *key,
  156. SECURITY_INFORMATION securityInfo,
  157. PSID *sidOwner,
  158. PSID *sidGroup,
  159. PACL *dacl,
  160. PACL *sacl,
  161. PSECURITY_DESCRIPTOR *securityDescriptor
  162. );
  163. DWORD WINAPI FwpmCalloutSetSecurityInfoByKey0(
  164. HANDLE engineHandle,
  165. const GUID *key,
  166. SECURITY_INFORMATION securityInfo,
  167. const SID *sidOwner,
  168. const SID *sidGroup,
  169. const ACL *dacl,
  170. const ACL *sacl
  171. );
  172. DWORD WINAPI FwpmCalloutSubscriptionsGet0(
  173. HANDLE engineHandle,
  174. FWPM_CALLOUT_SUBSCRIPTION0 ***entries,
  175. UINT32 *numEntries
  176. );
  177. DWORD WINAPI FwpmCalloutUnsubscribeChanges0(
  178. HANDLE engineHandle,
  179. HANDLE changeHandle
  180. );
  181. #define FWPM_NET_EVENT_KEYWORD_INBOUND_MCAST 1
  182. #define FWPM_NET_EVENT_KEYWORD_INBOUND_BCAST 2
  183. DWORD WINAPI FwpmEngineGetOption0(
  184. HANDLE engineHandle,
  185. FWPM_ENGINE_OPTION option,
  186. FWP_VALUE0 **value
  187. );
  188. DWORD WINAPI FwpmEngineGetSecurityInfo0(
  189. HANDLE engineHandle,
  190. SECURITY_INFORMATION securityInfo,
  191. PSID *sidOwner,
  192. PSID *sidGroup,
  193. PACL *dacl,
  194. PACL *sacl,
  195. PSECURITY_DESCRIPTOR *securityDescriptor
  196. );
  197. DWORD WINAPI FwpmEngineSetOption0(
  198. HANDLE engineHandle,
  199. FWPM_ENGINE_OPTION option,
  200. const FWP_VALUE0 *newValue
  201. );
  202. DWORD WINAPI IPsecSaDbSetSecurityInfo0(
  203. HANDLE engineHandle,
  204. SECURITY_INFORMATION securityInfo,
  205. const SID *sidOwner,
  206. const SID *sidGroup,
  207. const ACL *dacl,
  208. const ACL *sacl
  209. );
  210. DWORD WINAPI FwpmFilterCreateEnumHandle0(
  211. HANDLE engineHandle,
  212. const FWPM_FILTER_ENUM_TEMPLATE0 *enumTemplate,
  213. HANDLE *enumHandle
  214. );
  215. DWORD WINAPI FwpmFilterDeleteById0(
  216. HANDLE engineHandle,
  217. UINT64 id
  218. );
  219. DWORD WINAPI FwpmFilterDeleteByKey0(
  220. HANDLE engineHandle,
  221. const GUID *key
  222. );
  223. DWORD WINAPI FwpmFilterDestroyEnumHandle0(
  224. HANDLE engineHandle,
  225. HANDLE enumHandle
  226. );
  227. DWORD WINAPI FwpmFilterEnum0(
  228. HANDLE engineHandle,
  229. HANDLE enumHandle,
  230. UINT32 numEntriesRequested,
  231. FWPM_FILTER0 ***entries,
  232. UINT32 *numEntriesReturned
  233. );
  234. DWORD WINAPI FwpmFilterGetById0(
  235. HANDLE engineHandle,
  236. UINT64 id,
  237. FWPM_FILTER0 **filter
  238. );
  239. DWORD WINAPI FwpmFilterGetByKey0(
  240. HANDLE engineHandle,
  241. const GUID *key,
  242. FWPM_FILTER0 **filter
  243. );
  244. DWORD WINAPI FwpmFilterGetSecurityInfoByKey0(
  245. HANDLE engineHandle,
  246. const GUID *key,
  247. SECURITY_INFORMATION securityInfo,
  248. PSID *sidOwner,
  249. PSID *sidGroup,
  250. PACL *dacl,
  251. PACL *sacl,
  252. PSECURITY_DESCRIPTOR *securityDescriptor
  253. );
  254. DWORD WINAPI FwpmFilterSetSecurityInfoByKey0(
  255. HANDLE engineHandle,
  256. const GUID *key,
  257. SECURITY_INFORMATION securityInfo,
  258. const SID *sidOwner,
  259. const SID *sidGroup,
  260. const ACL *dacl,
  261. const ACL *sacl
  262. );
  263. DWORD WINAPI FwpmFilterSubscriptionsGet0(
  264. HANDLE engineHandle,
  265. FWPM_FILTER_SUBSCRIPTION0 ***entries,
  266. UINT32 *numEntries
  267. );
  268. DWORD WINAPI FwpmFilterUnsubscribeChanges0(
  269. HANDLE engineHandle,
  270. HANDLE changeHandle
  271. );
  272. DWORD WINAPI FwpmGetAppIdFromFileName0(
  273. const wchar_t *fileName,
  274. FWP_BYTE_BLOB **appId
  275. );
  276. DWORD WINAPI FwpmIpsecTunnelAdd0(
  277. HANDLE engineHandle,
  278. UINT32 flags,
  279. const FWPM_PROVIDER_CONTEXT0 *mainModePolicy,
  280. const FWPM_PROVIDER_CONTEXT0 *tunnelPolicy,
  281. UINT32 numFilterConditions,
  282. const FWPM_FILTER_CONDITION0 *filterConditions,
  283. PSECURITY_DESCRIPTOR sd
  284. );
  285. DWORD WINAPI FwpmIPsecTunnelDeleteByKey0(
  286. HANDLE engineHandle,
  287. const GUID *key
  288. );
  289. DWORD WINAPI FwpmLayerCreateEnumHandle0(
  290. HANDLE engineHandle,
  291. const FWPM_LAYER_ENUM_TEMPLATE0 *enumTemplate,
  292. HANDLE *enumHandle
  293. );
  294. DWORD WINAPI FwpmLayerDestroyEnumHandle0(
  295. HANDLE engineHandle,
  296. HANDLE enumHandle
  297. );
  298. DWORD WINAPI FwpmLayerEnum0(
  299. HANDLE engineHandle,
  300. HANDLE enumHandle,
  301. UINT32 numEntriesRequested,
  302. FWPM_LAYER0 ***entries,
  303. UINT32 *numEntriesReturned
  304. );
  305. DWORD WINAPI FwpmLayerGetById0(
  306. HANDLE engineHandle,
  307. UINT16 id,
  308. FWPM_LAYER0 **layer
  309. );
  310. DWORD WINAPI FwpmLayerGetByKey0(
  311. HANDLE engineHandle,
  312. const GUID *key,
  313. FWPM_LAYER0 **layer
  314. );
  315. DWORD WINAPI FwpmLayerGetSecurityInfoByKey0(
  316. HANDLE engineHandle,
  317. const GUID *key,
  318. SECURITY_INFORMATION securityInfo,
  319. PSID *sidOwner,
  320. PSID *sidGroup,
  321. PACL *dacl,
  322. PACL *sacl,
  323. PSECURITY_DESCRIPTOR *securityDescriptor
  324. );
  325. DWORD WINAPI FwpmLayerSetSecurityInfoByKey0(
  326. HANDLE engineHandle,
  327. const GUID *key,
  328. SECURITY_INFORMATION securityInfo,
  329. const SID *sidOwner,
  330. const SID *sidGroup,
  331. const ACL *dacl,
  332. const ACL *sacl
  333. );
  334. DWORD WINAPI FwpmNetEventCreateEnumHandle0(
  335. HANDLE engineHandle,
  336. const FWPM_NET_EVENT_ENUM_TEMPLATE0 *enumTemplate,
  337. HANDLE *enumHandle
  338. );
  339. DWORD WINAPI FwpmNetEventDestroyEnumHandle0(
  340. HANDLE engineHandle,
  341. HANDLE enumHandle
  342. );
  343. DWORD WINAPI FwpmNetEventEnum0(
  344. HANDLE engineHandle,
  345. HANDLE enumHandle,
  346. UINT32 numEntriesRequested,
  347. FWPM_NET_EVENT0 ***entries,
  348. UINT32 *numEntriesReturned
  349. );
  350. DWORD WINAPI FwpmNetEventsGetSecurityInfo0(
  351. HANDLE engineHandle,
  352. SECURITY_INFORMATION securityInfo,
  353. PSID *sidOwner,
  354. PSID *sidGroup,
  355. PACL *dacl,
  356. PACL *sacl,
  357. PSECURITY_DESCRIPTOR *securityDescriptor
  358. );
  359. DWORD WINAPI FwpmNetEventsSetSecurityInfo0(
  360. HANDLE engineHandle,
  361. SECURITY_INFORMATION securityInfo,
  362. const SID *sidOwner,
  363. const SID *sidGroup,
  364. const ACL *dacl,
  365. const ACL *sacl
  366. );
  367. DWORD WINAPI FwpmProviderAdd0(
  368. HANDLE engineHandle,
  369. const FWPM_PROVIDER0 *provider,
  370. PSECURITY_DESCRIPTOR sd
  371. );
  372. DWORD WINAPI FwpmProviderContextCreateEnumHandle0(
  373. HANDLE engineHandle,
  374. const FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *enumTemplate,
  375. HANDLE *enumHandle
  376. );
  377. DWORD WINAPI FwpmProviderContextDeleteById0(
  378. HANDLE engineHandle,
  379. UINT64 id
  380. );
  381. DWORD WINAPI FwpmProviderContextDeleteByKey0(
  382. HANDLE engineHandle,
  383. const GUID *key
  384. );
  385. DWORD WINAPI FwpmProviderContextDestroyEnumHandle0(
  386. HANDLE engineHandle,
  387. HANDLE enumHandle
  388. );
  389. DWORD WINAPI FwpmProviderContextEnum0(
  390. HANDLE engineHandle,
  391. HANDLE enumHandle,
  392. UINT32 numEntriesRequested,
  393. FWPM_PROVIDER_CONTEXT0 ***entries,
  394. UINT32 *numEntriesReturned
  395. );
  396. DWORD WINAPI FwpmProviderContextGetById0(
  397. HANDLE engineHandle,
  398. UINT64 id,
  399. FWPM_PROVIDER_CONTEXT0 **providerContext
  400. );
  401. DWORD WINAPI FwpmProviderContextGetByKey0(
  402. HANDLE engineHandle,
  403. const GUID *key,
  404. FWPM_PROVIDER_CONTEXT0 **providerContext
  405. );
  406. DWORD WINAPI FwpmProviderContextGetSecurityInfoByKey0(
  407. HANDLE engineHandle,
  408. const GUID *key,
  409. SECURITY_INFORMATION securityInfo,
  410. PSID *sidOwner,
  411. PSID *sidGroup,
  412. PACL *dacl,
  413. PACL *sacl,
  414. PSECURITY_DESCRIPTOR *securityDescriptor
  415. );
  416. DWORD WINAPI FwpmProviderContextSetSecurityInfoByKey0(
  417. HANDLE engineHandle,
  418. const GUID *key,
  419. SECURITY_INFORMATION securityInfo,
  420. const SID *sidOwner,
  421. const SID *sidGroup,
  422. const ACL *dacl,
  423. const ACL *sacl
  424. );
  425. DWORD WINAPI FwpmProviderContextSubscriptionsGet0(
  426. HANDLE engineHandle,
  427. FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0 ***entries,
  428. UINT32 *numEntries
  429. );
  430. DWORD WINAPI FwpmProviderContextUnsubscribeChanges0(
  431. HANDLE engineHandle,
  432. HANDLE changeHandle
  433. );
  434. DWORD WINAPI FwpmProviderCreateEnumHandle0(
  435. HANDLE engineHandle,
  436. const FWPM_PROVIDER_ENUM_TEMPLATE0 *enumTemplate,
  437. HANDLE *enumHandle
  438. );
  439. DWORD WINAPI FwpmProviderDeleteByKey0(
  440. HANDLE engineHandle,
  441. const GUID *key
  442. );
  443. DWORD WINAPI FwpmProviderDestroyEnumHandle0(
  444. HANDLE engineHandle,
  445. HANDLE enumHandle
  446. );
  447. DWORD WINAPI FwpmProviderEnum0(
  448. HANDLE engineHandle,
  449. HANDLE enumHandle,
  450. UINT32 numEntriesRequested,
  451. FWPM_PROVIDER0 ***entries,
  452. UINT32 *numEntriesReturned
  453. );
  454. DWORD WINAPI FwpmProviderGetByKey0(
  455. HANDLE engineHandle,
  456. const GUID *key,
  457. FWPM_PROVIDER0 **provider
  458. );
  459. DWORD WINAPI FwpmProviderGetSecurityInfoByKey0(
  460. HANDLE engineHandle,
  461. const GUID *key,
  462. SECURITY_INFORMATION securityInfo,
  463. PSID *sidOwner,
  464. PSID *sidGroup,
  465. PACL *dacl,
  466. PACL *sacl,
  467. PSECURITY_DESCRIPTOR *securityDescriptor
  468. );
  469. DWORD WINAPI FwpmProviderSetSecurityInfoByKey0(
  470. HANDLE engineHandle,
  471. const GUID *key,
  472. SECURITY_INFORMATION securityInfo,
  473. const SID *sidOwner,
  474. const SID *sidGroup,
  475. const ACL *dacl,
  476. const ACL *sacl
  477. );
  478. DWORD WINAPI FwpmProviderSubscriptionsGet0(
  479. HANDLE engineHandle,
  480. FWPM_PROVIDER_SUBSCRIPTION0 ***entries,
  481. UINT32 *numEntries
  482. );
  483. DWORD WINAPI FwpmProviderUnsubscribeChanges0(
  484. HANDLE engineHandle,
  485. HANDLE changeHandle
  486. );
  487. DWORD WINAPI FwpmSessionCreateEnumHandle0(
  488. HANDLE engineHandle,
  489. const FWPM_SESSION_ENUM_TEMPLATE0 *enumTemplate,
  490. HANDLE *enumHandle
  491. );
  492. DWORD WINAPI FwpmSessionDestroyEnumHandle0(
  493. HANDLE engineHandle,
  494. HANDLE enumHandle
  495. );
  496. DWORD WINAPI FwpmSessionEnum0(
  497. HANDLE engineHandle,
  498. HANDLE enumHandle,
  499. UINT32 numEntriesRequested,
  500. FWPM_SESSION0 ***entries,
  501. UINT32 *numEntriesReturned
  502. );
  503. DWORD WINAPI FwpmSubLayerCreateEnumHandle0(
  504. HANDLE engineHandle,
  505. const FWPM_SUBLAYER_ENUM_TEMPLATE0 *enumTemplate,
  506. HANDLE *enumHandle
  507. );
  508. DWORD WINAPI FwpmSubLayerDeleteByKey0(
  509. HANDLE engineHandle,
  510. const GUID *key
  511. );
  512. DWORD WINAPI FwpmSubLayerDestroyEnumHandle0(
  513. HANDLE engineHandle,
  514. HANDLE enumHandle
  515. );
  516. DWORD WINAPI FwpmSubLayerEnum0(
  517. HANDLE engineHandle,
  518. HANDLE enumHandle,
  519. UINT32 numEntriesRequested,
  520. FWPM_SUBLAYER0 ***entries,
  521. UINT32 *numEntriesReturned
  522. );
  523. DWORD WINAPI FwpmSubLayerGetByKey0(
  524. HANDLE engineHandle,
  525. const GUID *key,
  526. FWPM_SUBLAYER0 **subLayer
  527. );
  528. DWORD WINAPI FwpmSubLayerGetSecurityInfoByKey0(
  529. HANDLE engineHandle,
  530. const GUID *key,
  531. SECURITY_INFORMATION securityInfo,
  532. PSID *sidOwner,
  533. PSID *sidGroup,
  534. PACL *dacl,
  535. PACL *sacl,
  536. PSECURITY_DESCRIPTOR *securityDescriptor
  537. );
  538. DWORD WINAPI FwpmCalloutSetSecurityInfoByKey0(
  539. HANDLE engineHandle,
  540. const GUID *key,
  541. SECURITY_INFORMATION securityInfo,
  542. const SID *sidOwner,
  543. const SID *sidGroup,
  544. const ACL *dacl,
  545. const ACL *sacl
  546. );
  547. DWORD WINAPI FwpmSubLayerSubscriptionsGet0(
  548. HANDLE engineHandle,
  549. FWPM_SUBLAYER_SUBSCRIPTION0 ***entries,
  550. UINT32 *numEntries
  551. );
  552. DWORD WINAPI FwpmSubLayerUnsubscribeChanges0(
  553. HANDLE engineHandle,
  554. HANDLE changeHandle
  555. );
  556. DWORD WINAPI FwpmTransactionAbort0(
  557. HANDLE engineHandle
  558. );
  559. DWORD WINAPI FwpmTransactionBegin0(
  560. HANDLE engineHandle,
  561. UINT32 flags
  562. );
  563. DWORD WINAPI FwpmTransactionCommit0(
  564. HANDLE engineHandle
  565. );
  566. DWORD WINAPI IkeextGetStatistics0(
  567. HANDLE engineHandle,
  568. IKEEXT_STATISTICS0 *ikeextStatistics
  569. );
  570. DWORD WINAPI IkeextSaDbGetSecurityInfo0(
  571. HANDLE engineHandle,
  572. SECURITY_INFORMATION securityInfo,
  573. PSID *sidOwner,
  574. PSID *sidGroup,
  575. PACL *dacl,
  576. PACL *sacl,
  577. PSECURITY_DESCRIPTOR *securityDescriptor
  578. );
  579. DWORD WINAPI IkeextSaCreateEnumHandle0(
  580. HANDLE engineHandle,
  581. const IKEEXT_SA_ENUM_TEMPLATE0 *enumTemplate,
  582. HANDLE *enumHandle
  583. );
  584. DWORD WINAPI IkeextSaDbSetSecurityInfo0(
  585. HANDLE engineHandle,
  586. SECURITY_INFORMATION securityInfo,
  587. const SID *sidOwner,
  588. const SID *sidGroup,
  589. const ACL *dacl,
  590. const ACL *sacl
  591. );
  592. DWORD WINAPI IkeextSaDeleteById0(
  593. HANDLE engineHandle,
  594. UINT64 id
  595. );
  596. DWORD WINAPI IkeextSaDestroyEnumHandle0(
  597. HANDLE engineHandle,
  598. HANDLE enumHandle
  599. );
  600. DWORD WINAPI IkeextSaEnum0(
  601. HANDLE engineHandle,
  602. HANDLE enumHandle,
  603. UINT32 numEntriesRequested,
  604. IKEEXT_SA_DETAILS0 ***entries,
  605. UINT32 *numEntriesReturned
  606. );
  607. DWORD WINAPI IkeextSaGetById0(
  608. HANDLE engineHandle,
  609. UINT64 id,
  610. IKEEXT_SA_DETAILS0 **sa
  611. );
  612. DWORD WINAPI IPsecGetStatistics0(
  613. HANDLE engineHandle,
  614. IPSEC_STATISTICS0 *ipsecStatistics
  615. );
  616. DWORD WINAPI IPsecSaContextAddInbound0(
  617. HANDLE engineHandle,
  618. UINT64 id,
  619. const IPSEC_SA_BUNDLE0 *inboundBundle
  620. );
  621. DWORD WINAPI IPsecSaContextAddOutbound0(
  622. HANDLE engineHandle,
  623. UINT64 id,
  624. const IPSEC_SA_BUNDLE0 *outboundBundle
  625. );
  626. DWORD WINAPI IPsecSaContextCreate0(
  627. HANDLE engineHandle,
  628. const IPSEC_TRAFFIC0 *outboundTraffic,
  629. UINT64 *inboundFilterId,
  630. UINT64 *id
  631. );
  632. DWORD WINAPI IPsecSaContextCreateEnumHandle0(
  633. HANDLE engineHandle,
  634. const IPSEC_SA_CONTEXT_ENUM_TEMPLATE0 *enumTemplate,
  635. HANDLE *enumHandle
  636. );
  637. DWORD WINAPI IPsecSaContextDeleteById0(
  638. HANDLE engineHandle,
  639. UINT64 id
  640. );
  641. DWORD WINAPI IPsecSaContextDestroyEnumHandle0(
  642. HANDLE engineHandle,
  643. HANDLE enumHandle
  644. );
  645. DWORD WINAPI FwpmEngineSetSecurityInfo0(
  646. HANDLE engineHandle,
  647. SECURITY_INFORMATION securityInfo,
  648. const SID *sidOwner,
  649. const SID *sidGroup,
  650. const ACL *dacl,
  651. const ACL *sacl
  652. );
  653. DWORD WINAPI IPsecSaContextEnum0(
  654. HANDLE engineHandle,
  655. HANDLE enumHandle,
  656. UINT32 numEntriesRequested,
  657. IPSEC_SA_CONTEXT0 ***entries,
  658. UINT32 *numEntriesReturned
  659. );
  660. DWORD WINAPI IPsecSaContextExpire0(
  661. HANDLE engineHandle,
  662. UINT64 id
  663. );
  664. DWORD WINAPI IPsecSaContextGetById0(
  665. HANDLE engineHandle,
  666. UINT64 id,
  667. IPSEC_SA_CONTEXT0 **saContext
  668. );
  669. DWORD WINAPI IPsecSaContextGetSpi0(
  670. HANDLE engineHandle,
  671. UINT64 id,
  672. const IPSEC_GETSPI0 *getSpi,
  673. IPSEC_SA_SPI *inboundSpi
  674. );
  675. DWORD WINAPI IPsecSaCreateEnumHandle0(
  676. HANDLE engineHandle,
  677. const IPSEC_SA_ENUM_TEMPLATE0 *enumTemplate,
  678. HANDLE *enumHandle
  679. );
  680. DWORD WINAPI IPsecSaDbGetSecurityInfo0(
  681. HANDLE engineHandle,
  682. SECURITY_INFORMATION securityInfo,
  683. PSID *sidOwner,
  684. PSID *sidGroup,
  685. PACL *dacl,
  686. PACL *sacl,
  687. PSECURITY_DESCRIPTOR *securityDescriptor
  688. );
  689. DWORD WINAPI IPsecSaDestroyEnumHandle0(
  690. HANDLE engineHandle,
  691. HANDLE enumHandle
  692. );
  693. DWORD WINAPI IPsecSaEnum0(
  694. HANDLE engineHandle,
  695. HANDLE enumHandle,
  696. UINT32 numEntriesRequested,
  697. IPSEC_SA_DETAILS0 ***entries,
  698. UINT32 *numEntriesReturned
  699. );
  700. #endif /*(_WIN32_WINNT >= 0x0600)*/
  701. #if (_WIN32_WINNT >= 0x0601)
  702. DEFINE_GUID(FWPM_PROVIDER_IPSEC_DOS_CONFIG,0x3C6C0519,0xC05C,0x4BB9,0x83,0x38,0x23,0x27,0x81,0x4C,0xE8,0xBF);
  703. typedef void ( CALLBACK *FWPM_NET_EVENT_CALLBACK0 )(
  704. void *context,
  705. const FWPM_NET_EVENT1 *event
  706. );
  707. typedef void ( CALLBACK *FWPM_SYSTEM_PORTS_CALLBACK0 )(
  708. void *context,
  709. const FWPM_SYSTEM_PORTS0 *sysPorts
  710. );
  711. DWORD WINAPI IkeextGetStatistics1(
  712. HANDLE engineHandle,
  713. IKEEXT_STATISTICS1 *ikeextStatistics
  714. );
  715. DWORD WINAPI IkeextSaEnum1(
  716. HANDLE engineHandle,
  717. HANDLE enumHandle,
  718. UINT32 numEntriesRequested,
  719. IKEEXT_SA_DETAILS1 ***entries,
  720. UINT32 *numEntriesReturned
  721. );
  722. DWORD WINAPI IkeextSaGetById1(
  723. HANDLE engineHandle,
  724. UINT64 id,
  725. GUID *saLookupContext,
  726. IKEEXT_SA_DETAILS1 **sa
  727. );
  728. DWORD WINAPI FwpmIpsecTunnelAdd1(
  729. HANDLE engineHandle,
  730. UINT32 flags,
  731. const FWPM_PROVIDER_CONTEXT1 *mainModePolicy,
  732. const FWPM_PROVIDER_CONTEXT1 *tunnelPolicy,
  733. UINT32 numFilterConditions,
  734. const FWPM_FILTER_CONDITION0 *filterConditions,
  735. const GUID *keyModKey,
  736. PSECURITY_DESCRIPTOR sd
  737. );
  738. DWORD WINAPI IPsecDospGetSecurityInfo0(
  739. HANDLE engineHandle,
  740. SECURITY_INFORMATION securityInfo,
  741. PSID *sidOwner,
  742. PSID *sidGroup,
  743. PACL *dacl,
  744. PACL *sacl,
  745. PSECURITY_DESCRIPTOR *securityDescriptor
  746. );
  747. DWORD WINAPI IPsecDospGetStatistics0(
  748. HANDLE engineHandle,
  749. IPSEC_DOSP_STATISTICS0 *idpStatistics
  750. );
  751. DWORD WINAPI IPsecDospSetSecurityInfo0(
  752. HANDLE engineHandle,
  753. SECURITY_INFORMATION securityInfo,
  754. const SID *sidOwner,
  755. const SID *sidGroup,
  756. const ACL *dacl,
  757. const ACL *sacl
  758. );
  759. DWORD WINAPI IPsecDospStateCreateEnumHandle0(
  760. HANDLE engineHandle,
  761. const IPSEC_DOSP_STATE_ENUM_TEMPLATE0 *enumTemplate,
  762. HANDLE *enumHandle
  763. );
  764. DWORD WINAPI IPsecDospStateDestroyEnumHandle0(
  765. HANDLE engineHandle,
  766. HANDLE enumHandle
  767. );
  768. DWORD WINAPI IPsecDospStateEnum0(
  769. HANDLE engineHandle,
  770. HANDLE enumHandle,
  771. UINT32 numEntriesRequested,
  772. IPSEC_DOSP_STATE0 ***entries,
  773. UINT32 *numEntries
  774. );
  775. DWORD WINAPI IPsecGetStatistics1(
  776. HANDLE engineHandle,
  777. IPSEC_STATISTICS1 *ipsecStatistics
  778. );
  779. DWORD WINAPI IPsecSaContextAddInbound1(
  780. HANDLE engineHandle,
  781. UINT64 id,
  782. const IPSEC_SA_BUNDLE1 *inboundBundle
  783. );
  784. DWORD WINAPI IPsecSaContextAddOutbound1(
  785. HANDLE engineHandle,
  786. UINT64 id,
  787. const IPSEC_SA_BUNDLE1 *outboundBundle
  788. );
  789. DWORD WINAPI IPsecSaContextCreate1(
  790. HANDLE engineHandle,
  791. const IPSEC_TRAFFIC1 *outboundTraffic,
  792. const IPSEC_VIRTUAL_IF_TUNNEL_INFO0 *virtualIfTunnelInfo,
  793. UINT64 *inboundFilterId,
  794. UINT64 *id
  795. );
  796. DWORD WINAPI FwpmNetEventEnum1(
  797. HANDLE engineHandle,
  798. HANDLE enumHandle,
  799. UINT32 numEntriesRequested,
  800. FWPM_NET_EVENT1 ***entries,
  801. UINT32 *numEntriesReturned
  802. );
  803. DWORD WINAPI FwpmNetEventSubscribe0(
  804. HANDLE engineHandle,
  805. const FWPM_NET_EVENT_SUBSCRIPTION0 *subscription,
  806. FWPM_NET_EVENT_CALLBACK0 callback,
  807. void *context,
  808. HANDLE *eventsHandle
  809. );
  810. DWORD WINAPI FwpmNetEventSubscriptionsGet0(
  811. HANDLE engineHandle,
  812. FWPM_NET_EVENT_SUBSCRIPTION0 ***entries,
  813. UINT32 *numEntries
  814. );
  815. DWORD WINAPI FwpmNetEventUnsubscribe0(
  816. HANDLE engineHandle,
  817. HANDLE eventsHandle
  818. );
  819. DWORD WINAPI FwpmProviderContextAdd1(
  820. HANDLE engineHandle,
  821. const FWPM_PROVIDER_CONTEXT1 *providerContext,
  822. PSECURITY_DESCRIPTOR sd,
  823. UINT64 *id
  824. );
  825. DWORD WINAPI FwpmProviderContextEnum1(
  826. HANDLE engineHandle,
  827. HANDLE enumHandle,
  828. UINT32 numEntriesRequested,
  829. FWPM_PROVIDER_CONTEXT1 ***entries,
  830. UINT32 *numEntriesReturned
  831. );
  832. DWORD WINAPI FwpmProviderContextGetById1(
  833. HANDLE engineHandle,
  834. UINT64 id,
  835. FWPM_PROVIDER_CONTEXT1 **providerContext
  836. );
  837. DWORD WINAPI FwpmProviderContextGetByKey1(
  838. HANDLE engineHandle,
  839. const GUID *key,
  840. FWPM_PROVIDER_CONTEXT1 **providerContext
  841. );
  842. DWORD WINAPI FwpmSystemPortsGet0(
  843. HANDLE engineHandle,
  844. FWPM_SYSTEM_PORTS0 **sysPorts
  845. );
  846. DWORD WINAPI FwpmSystemPortsSubscribe0(
  847. HANDLE engineHandle,
  848. void *reserved,
  849. FWPM_SYSTEM_PORTS_CALLBACK0 callback,
  850. void *context,
  851. HANDLE *sysPortsHandle
  852. );
  853. DWORD WINAPI FwpmSystemPortsUnsubscribe0(
  854. HANDLE engineHandle,
  855. HANDLE sysPortsHandle
  856. );
  857. DWORD WINAPI IPsecSaContextEnum1(
  858. HANDLE engineHandle,
  859. HANDLE enumHandle,
  860. UINT32 numEntriesRequested,
  861. IPSEC_SA_CONTEXT1 ***entries,
  862. UINT32 *numEntriesReturned
  863. );
  864. DWORD WINAPI IPsecSaContextGetById1(
  865. HANDLE engineHandle,
  866. UINT64 id,
  867. IPSEC_SA_CONTEXT1 **saContext
  868. );
  869. DWORD WINAPI IPsecSaContextGetSpi1(
  870. HANDLE engineHandle,
  871. UINT64 id,
  872. const IPSEC_GETSPI1 *getSpi,
  873. IPSEC_SA_SPI *inboundSpi
  874. );
  875. DWORD WINAPI IPsecSaContextUpdate0(
  876. HANDLE engineHandle,
  877. UINT32 flags,
  878. const IPSEC_SA_CONTEXT1 *newValues
  879. );
  880. DWORD WINAPI IPsecSaEnum1(
  881. HANDLE engineHandle,
  882. HANDLE enumHandle,
  883. UINT32 numEntriesRequested,
  884. IPSEC_SA_DETAILS1 ***entries,
  885. UINT32 *numEntriesReturned
  886. );
  887. DWORD WINAPI IPsecSaContextSetSpi0(
  888. HANDLE engineHandle,
  889. UINT64 id,
  890. const IPSEC_GETSPI1 *getSpi,
  891. IPSEC_SA_SPI inboundSpi
  892. );
  893. #endif /*(_WIN32_WINNT >= 0x0601)*/
  894. #ifdef __cplusplus
  895. }
  896. #endif
  897. #endif /*_INC_FWPMU*/