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