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
15extern "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
30DEFINE_GUID(FWPM_PROVIDER_IKEEXT,0x10AD9216,0xCCDE,0x456C,0x8B,0x16,0xE9,0xF0,0x4E,0x60,0xA9,0x0B);
31DEFINE_GUID(FWPM_PROVIDER_TCP_CHIMNEY_OFFLOAD,0x896AA19E,0x9A34,0x4BCB,0xAE,0x79,0xBE,0xB9,0x12,0x7C,0x84,0xB9);
32
33typedef UINT32 IPSEC_SA_SPI;
34
35typedef void ( CALLBACK *FWPM_CALLOUT_CHANGE_CALLBACK0 )(
36  void *context,
37  const FWPM_CALLOUT_CHANGE0 *change
38);
39
40typedef void ( CALLBACK *FWPM_FILTER_CHANGE_CALLBACK0 )(
41  void *context,
42  const FWPM_FILTER_CHANGE0 *change
43);
44
45typedef void ( CALLBACK *FWPM_PROVIDER_CHANGE_CALLBACK0 )(
46  void *context,
47  const FWPM_PROVIDER_CHANGE0 *change
48);
49
50typedef void ( CALLBACK *FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 )(
51  void *context,
52  const FWPM_PROVIDER_CONTEXT_CHANGE0 *change
53);
54
55typedef void ( CALLBACK *FWPM_SUBLAYER_CHANGE_CALLBACK0 )(
56  void *context,
57  const FWPM_SUBLAYER_CHANGE0 *change
58);
59
60DWORD 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
68DWORD 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
76DWORD WINAPI FwpmCalloutAdd0(
77  HANDLE engineHandle,
78  const FWPM_CALLOUT0 *callout,
79  PSECURITY_DESCRIPTOR sd,
80  UINT32 *id
81);
82
83DWORD WINAPI FwpmFilterAdd0(
84  HANDLE engineHandle,
85  const FWPM_FILTER0 *filter,
86  PSECURITY_DESCRIPTOR sd,
87  UINT64 *id
88);
89
90DWORD WINAPI FwpmEngineClose0(
91  HANDLE engineHandle
92);
93
94DWORD 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
102DWORD 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
110DWORD 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
118DWORD WINAPI FwpmProviderContextAdd0(
119  HANDLE engineHandle,
120  const FWPM_PROVIDER_CONTEXT0 *providerContext,
121  PSECURITY_DESCRIPTOR sd,
122  UINT64 *id
123);
124
125DWORD 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
133DWORD WINAPI FwpmSubLayerAdd0(
134  HANDLE engineHandle,
135  const FWPM_SUBLAYER0 *subLayer,
136  PSECURITY_DESCRIPTOR sd
137);
138
139DWORD WINAPI FwpmCalloutCreateEnumHandle0(
140  HANDLE engineHandle,
141  const FWPM_CALLOUT_ENUM_TEMPLATE0 *enumTemplate,
142  HANDLE *enumHandle
143);
144
145DWORD WINAPI FwpmCalloutDeleteById0(
146  HANDLE engineHandle,
147  UINT32 id
148);
149
150DWORD WINAPI FwpmCalloutDeleteByKey0(
151  HANDLE engineHandle,
152  const GUID *key
153);
154
155DWORD WINAPI FwpmCalloutDestroyEnumHandle0(
156  HANDLE engineHandle,
157  HANDLE enumHandle
158);
159
160DWORD WINAPI FwpmCalloutEnum0(
161  HANDLE engineHandle,
162  HANDLE enumHandle,
163  UINT32 numEntriesRequested,
164  FWPM_CALLOUT0 ***entries,
165  UINT32 *numEntriesReturned
166);
167
168void WINAPI FwpmFreeMemory0(
169  void **p
170);
171
172DWORD WINAPI FwpmCalloutGetById0(
173  HANDLE engineHandle,
174  UINT32 id,
175  FWPM_CALLOUT0 **callout
176);
177
178DWORD WINAPI FwpmCalloutGetByKey0(
179  HANDLE engineHandle,
180  const GUID *key,
181  FWPM_CALLOUT0 **callout
182);
183
184DWORD 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
195DWORD 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
205DWORD WINAPI FwpmCalloutSubscriptionsGet0(
206  HANDLE engineHandle,
207  FWPM_CALLOUT_SUBSCRIPTION0 ***entries,
208  UINT32 *numEntries
209);
210
211DWORD 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
219DWORD WINAPI FwpmEngineGetOption0(
220  HANDLE engineHandle,
221  FWPM_ENGINE_OPTION option,
222  FWP_VALUE0 **value
223);
224
225DWORD 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
235DWORD WINAPI FwpmEngineSetOption0(
236  HANDLE engineHandle,
237  FWPM_ENGINE_OPTION option,
238  const FWP_VALUE0 *newValue
239);
240
241DWORD 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
250DWORD WINAPI FwpmFilterCreateEnumHandle0(
251  HANDLE engineHandle,
252  const FWPM_FILTER_ENUM_TEMPLATE0 *enumTemplate,
253  HANDLE *enumHandle
254);
255
256DWORD WINAPI FwpmFilterDeleteById0(
257  HANDLE engineHandle,
258  UINT64 id
259);
260
261DWORD WINAPI FwpmFilterDeleteByKey0(
262  HANDLE engineHandle,
263  const GUID *key
264);
265
266DWORD WINAPI FwpmFilterDestroyEnumHandle0(
267  HANDLE engineHandle,
268  HANDLE enumHandle
269);
270
271DWORD WINAPI FwpmFilterEnum0(
272  HANDLE engineHandle,
273  HANDLE enumHandle,
274  UINT32 numEntriesRequested,
275  FWPM_FILTER0 ***entries,
276  UINT32 *numEntriesReturned
277);
278
279DWORD WINAPI FwpmFilterGetById0(
280  HANDLE engineHandle,
281  UINT64 id,
282  FWPM_FILTER0 **filter
283);
284
285DWORD WINAPI FwpmFilterGetByKey0(
286  HANDLE engineHandle,
287  const GUID *key,
288  FWPM_FILTER0 **filter
289);
290
291DWORD 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
302DWORD 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
312DWORD WINAPI FwpmFilterSubscriptionsGet0(
313  HANDLE engineHandle,
314  FWPM_FILTER_SUBSCRIPTION0 ***entries,
315  UINT32 *numEntries
316);
317
318DWORD WINAPI FwpmFilterUnsubscribeChanges0(
319  HANDLE engineHandle,
320  HANDLE changeHandle
321);
322
323DWORD WINAPI FwpmGetAppIdFromFileName0(
324  const wchar_t *fileName,
325  FWP_BYTE_BLOB **appId
326);
327
328DWORD 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
338DWORD WINAPI FwpmIPsecTunnelDeleteByKey0(
339  HANDLE engineHandle,
340  const GUID *key
341);
342
343DWORD WINAPI FwpmLayerCreateEnumHandle0(
344  HANDLE engineHandle,
345  const FWPM_LAYER_ENUM_TEMPLATE0 *enumTemplate,
346  HANDLE *enumHandle
347);
348
349DWORD WINAPI FwpmLayerDestroyEnumHandle0(
350  HANDLE engineHandle,
351  HANDLE enumHandle
352);
353
354DWORD WINAPI FwpmLayerEnum0(
355  HANDLE engineHandle,
356  HANDLE enumHandle,
357  UINT32 numEntriesRequested,
358  FWPM_LAYER0 ***entries,
359  UINT32 *numEntriesReturned
360);
361
362DWORD WINAPI FwpmLayerGetById0(
363  HANDLE engineHandle,
364  UINT16 id,
365  FWPM_LAYER0 **layer
366);
367
368DWORD WINAPI FwpmLayerGetByKey0(
369  HANDLE engineHandle,
370  const GUID *key,
371  FWPM_LAYER0 **layer
372);
373
374DWORD 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
385DWORD 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
395DWORD WINAPI FwpmNetEventCreateEnumHandle0(
396  HANDLE engineHandle,
397  const FWPM_NET_EVENT_ENUM_TEMPLATE0 *enumTemplate,
398  HANDLE *enumHandle
399);
400
401DWORD WINAPI FwpmNetEventDestroyEnumHandle0(
402  HANDLE engineHandle,
403  HANDLE enumHandle
404);
405
406DWORD WINAPI FwpmNetEventEnum0(
407  HANDLE engineHandle,
408  HANDLE enumHandle,
409  UINT32 numEntriesRequested,
410  FWPM_NET_EVENT0 ***entries,
411  UINT32 *numEntriesReturned
412);
413
414DWORD 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
424DWORD 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
433DWORD WINAPI FwpmProviderAdd0(
434  HANDLE engineHandle,
435  const FWPM_PROVIDER0 *provider,
436  PSECURITY_DESCRIPTOR sd
437);
438
439DWORD WINAPI FwpmProviderContextCreateEnumHandle0(
440  HANDLE engineHandle,
441  const FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *enumTemplate,
442  HANDLE *enumHandle
443);
444
445DWORD WINAPI FwpmProviderContextDeleteById0(
446  HANDLE engineHandle,
447  UINT64 id
448);
449
450DWORD WINAPI FwpmProviderContextDeleteByKey0(
451  HANDLE engineHandle,
452  const GUID *key
453);
454
455DWORD WINAPI FwpmProviderContextDestroyEnumHandle0(
456  HANDLE engineHandle,
457  HANDLE enumHandle
458);
459
460DWORD WINAPI FwpmProviderContextEnum0(
461  HANDLE engineHandle,
462  HANDLE enumHandle,
463  UINT32 numEntriesRequested,
464  FWPM_PROVIDER_CONTEXT0 ***entries,
465  UINT32 *numEntriesReturned
466);
467
468DWORD WINAPI FwpmProviderContextGetById0(
469  HANDLE engineHandle,
470  UINT64 id,
471  FWPM_PROVIDER_CONTEXT0 **providerContext
472);
473
474DWORD WINAPI FwpmProviderContextGetByKey0(
475  HANDLE engineHandle,
476  const GUID *key,
477  FWPM_PROVIDER_CONTEXT0 **providerContext
478);
479
480DWORD 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
491DWORD 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
501DWORD WINAPI FwpmProviderContextSubscriptionsGet0(
502  HANDLE engineHandle,
503  FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0 ***entries,
504  UINT32 *numEntries
505);
506
507DWORD WINAPI FwpmProviderContextUnsubscribeChanges0(
508  HANDLE engineHandle,
509  HANDLE changeHandle
510);
511
512DWORD WINAPI FwpmProviderCreateEnumHandle0(
513  HANDLE engineHandle,
514  const FWPM_PROVIDER_ENUM_TEMPLATE0 *enumTemplate,
515  HANDLE *enumHandle
516);
517
518DWORD WINAPI FwpmProviderDeleteByKey0(
519  HANDLE engineHandle,
520  const GUID *key
521);
522
523DWORD WINAPI FwpmProviderDestroyEnumHandle0(
524  HANDLE engineHandle,
525  HANDLE enumHandle
526);
527
528DWORD WINAPI FwpmProviderEnum0(
529  HANDLE engineHandle,
530  HANDLE enumHandle,
531  UINT32 numEntriesRequested,
532  FWPM_PROVIDER0 ***entries,
533  UINT32 *numEntriesReturned
534);
535
536DWORD WINAPI FwpmProviderGetByKey0(
537  HANDLE engineHandle,
538  const GUID *key,
539  FWPM_PROVIDER0 **provider
540);
541
542DWORD 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
553DWORD 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
563DWORD WINAPI FwpmProviderSubscriptionsGet0(
564  HANDLE engineHandle,
565  FWPM_PROVIDER_SUBSCRIPTION0 ***entries,
566  UINT32 *numEntries
567);
568
569DWORD WINAPI FwpmProviderUnsubscribeChanges0(
570  HANDLE engineHandle,
571  HANDLE changeHandle
572);
573
574DWORD WINAPI FwpmSessionCreateEnumHandle0(
575  HANDLE engineHandle,
576  const FWPM_SESSION_ENUM_TEMPLATE0 *enumTemplate,
577  HANDLE *enumHandle
578);
579
580DWORD WINAPI FwpmSessionDestroyEnumHandle0(
581  HANDLE engineHandle,
582  HANDLE enumHandle
583);
584
585DWORD WINAPI FwpmSessionEnum0(
586  HANDLE engineHandle,
587  HANDLE enumHandle,
588  UINT32 numEntriesRequested,
589  FWPM_SESSION0 ***entries,
590  UINT32 *numEntriesReturned
591);
592
593DWORD WINAPI FwpmSubLayerCreateEnumHandle0(
594  HANDLE engineHandle,
595  const FWPM_SUBLAYER_ENUM_TEMPLATE0 *enumTemplate,
596  HANDLE *enumHandle
597);
598
599DWORD WINAPI FwpmSubLayerDeleteByKey0(
600  HANDLE engineHandle,
601  const GUID *key
602);
603
604DWORD WINAPI FwpmSubLayerDestroyEnumHandle0(
605  HANDLE engineHandle,
606  HANDLE enumHandle
607);
608
609DWORD WINAPI FwpmSubLayerEnum0(
610  HANDLE engineHandle,
611  HANDLE enumHandle,
612  UINT32 numEntriesRequested,
613  FWPM_SUBLAYER0 ***entries,
614  UINT32 *numEntriesReturned
615);
616
617DWORD WINAPI FwpmSubLayerGetByKey0(
618  HANDLE engineHandle,
619  const GUID *key,
620  FWPM_SUBLAYER0 **subLayer
621);
622
623DWORD 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
634DWORD 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
644DWORD WINAPI FwpmSubLayerSubscriptionsGet0(
645  HANDLE engineHandle,
646  FWPM_SUBLAYER_SUBSCRIPTION0 ***entries,
647  UINT32 *numEntries
648);
649
650DWORD WINAPI FwpmSubLayerUnsubscribeChanges0(
651  HANDLE engineHandle,
652  HANDLE changeHandle
653);
654
655DWORD WINAPI FwpmTransactionAbort0(
656  HANDLE engineHandle
657);
658
659DWORD WINAPI FwpmTransactionBegin0(
660  HANDLE engineHandle,
661  UINT32 flags
662);
663
664DWORD WINAPI FwpmTransactionCommit0(
665  HANDLE engineHandle
666);
667
668DWORD WINAPI IkeextGetStatistics0(
669  HANDLE engineHandle,
670  IKEEXT_STATISTICS0 *ikeextStatistics
671);
672
673DWORD 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
683DWORD WINAPI IkeextSaCreateEnumHandle0(
684  HANDLE engineHandle,
685  const IKEEXT_SA_ENUM_TEMPLATE0 *enumTemplate,
686  HANDLE *enumHandle
687);
688
689DWORD 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
698DWORD WINAPI IkeextSaDeleteById0(
699  HANDLE engineHandle,
700  UINT64 id
701);
702
703DWORD WINAPI IkeextSaDestroyEnumHandle0(
704  HANDLE engineHandle,
705  HANDLE enumHandle
706);
707
708DWORD WINAPI IkeextSaEnum0(
709  HANDLE engineHandle,
710  HANDLE enumHandle,
711  UINT32 numEntriesRequested,
712  IKEEXT_SA_DETAILS0 ***entries,
713  UINT32 *numEntriesReturned
714);
715
716DWORD WINAPI IkeextSaGetById0(
717  HANDLE engineHandle,
718  UINT64 id,
719  IKEEXT_SA_DETAILS0 **sa
720);
721
722DWORD WINAPI IPsecGetStatistics0(
723  HANDLE engineHandle,
724  IPSEC_STATISTICS0 *ipsecStatistics
725);
726
727DWORD WINAPI IPsecSaContextAddInbound0(
728  HANDLE engineHandle,
729  UINT64 id,
730  const IPSEC_SA_BUNDLE0 *inboundBundle
731);
732
733DWORD WINAPI IPsecSaContextAddOutbound0(
734  HANDLE engineHandle,
735  UINT64 id,
736  const IPSEC_SA_BUNDLE0 *outboundBundle
737);
738
739DWORD WINAPI IPsecSaContextCreate0(
740  HANDLE engineHandle,
741  const IPSEC_TRAFFIC0 *outboundTraffic,
742  UINT64 *inboundFilterId,
743  UINT64 *id
744);
745
746DWORD WINAPI IPsecSaContextCreateEnumHandle0(
747  HANDLE engineHandle,
748  const IPSEC_SA_CONTEXT_ENUM_TEMPLATE0 *enumTemplate,
749  HANDLE *enumHandle
750);
751
752DWORD WINAPI IPsecSaContextDeleteById0(
753  HANDLE engineHandle,
754  UINT64 id
755);
756
757DWORD WINAPI IPsecSaContextDestroyEnumHandle0(
758  HANDLE engineHandle,
759  HANDLE enumHandle
760);
761
762DWORD 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
771DWORD WINAPI IPsecSaContextEnum0(
772  HANDLE engineHandle,
773  HANDLE enumHandle,
774  UINT32 numEntriesRequested,
775  IPSEC_SA_CONTEXT0 ***entries,
776  UINT32 *numEntriesReturned
777);
778
779DWORD WINAPI IPsecSaContextExpire0(
780  HANDLE engineHandle,
781  UINT64 id
782);
783
784DWORD WINAPI IPsecSaContextGetById0(
785  HANDLE engineHandle,
786  UINT64 id,
787  IPSEC_SA_CONTEXT0 **saContext
788);
789
790DWORD WINAPI IPsecSaContextGetSpi0(
791  HANDLE engineHandle,
792  UINT64 id,
793  const IPSEC_GETSPI0 *getSpi,
794  IPSEC_SA_SPI *inboundSpi
795);
796
797DWORD WINAPI IPsecSaCreateEnumHandle0(
798  HANDLE engineHandle,
799  const IPSEC_SA_ENUM_TEMPLATE0 *enumTemplate,
800  HANDLE *enumHandle
801);
802
803DWORD 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
813DWORD WINAPI IPsecSaDestroyEnumHandle0(
814  HANDLE engineHandle,
815  HANDLE enumHandle
816);
817
818DWORD 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
830DEFINE_GUID(FWPM_PROVIDER_IPSEC_DOS_CONFIG,0x3C6C0519,0xC05C,0x4BB9,0x83,0x38,0x23,0x27,0x81,0x4C,0xE8,0xBF);
831
832typedef void ( CALLBACK *FWPM_NET_EVENT_CALLBACK0 )(
833  void *context,
834  const FWPM_NET_EVENT1 *event
835);
836
837typedef void ( CALLBACK *FWPM_SYSTEM_PORTS_CALLBACK0 )(
838  void *context,
839  const FWPM_SYSTEM_PORTS0 *sysPorts
840);
841
842DWORD WINAPI IkeextGetStatistics1(
843  HANDLE engineHandle,
844  IKEEXT_STATISTICS1 *ikeextStatistics
845);
846
847DWORD WINAPI IkeextSaEnum1(
848  HANDLE engineHandle,
849  HANDLE enumHandle,
850  UINT32 numEntriesRequested,
851  IKEEXT_SA_DETAILS1 ***entries,
852  UINT32 *numEntriesReturned
853);
854
855DWORD WINAPI IkeextSaGetById1(
856  HANDLE engineHandle,
857  UINT64 id,
858  GUID *saLookupContext,
859  IKEEXT_SA_DETAILS1 **sa
860);
861
862DWORD 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
873DWORD 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
883DWORD WINAPI IPsecDospGetStatistics0(
884  HANDLE engineHandle,
885  IPSEC_DOSP_STATISTICS0 *idpStatistics
886);
887
888DWORD 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
897DWORD WINAPI IPsecDospStateCreateEnumHandle0(
898  HANDLE engineHandle,
899  const IPSEC_DOSP_STATE_ENUM_TEMPLATE0 *enumTemplate,
900  HANDLE *enumHandle
901);
902
903DWORD WINAPI IPsecDospStateDestroyEnumHandle0(
904  HANDLE engineHandle,
905  HANDLE enumHandle
906);
907
908DWORD WINAPI IPsecDospStateEnum0(
909  HANDLE engineHandle,
910  HANDLE enumHandle,
911  UINT32 numEntriesRequested,
912  IPSEC_DOSP_STATE0 ***entries,
913  UINT32 *numEntries
914);
915
916DWORD WINAPI IPsecGetStatistics1(
917  HANDLE engineHandle,
918  IPSEC_STATISTICS1 *ipsecStatistics
919);
920
921DWORD WINAPI IPsecSaContextAddInbound1(
922  HANDLE engineHandle,
923  UINT64 id,
924  const IPSEC_SA_BUNDLE1 *inboundBundle
925);
926
927DWORD WINAPI IPsecSaContextAddOutbound1(
928  HANDLE engineHandle,
929  UINT64 id,
930  const IPSEC_SA_BUNDLE1 *outboundBundle
931);
932
933DWORD 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
941DWORD WINAPI FwpmNetEventEnum1(
942  HANDLE engineHandle,
943  HANDLE enumHandle,
944  UINT32 numEntriesRequested,
945  FWPM_NET_EVENT1 ***entries,
946  UINT32 *numEntriesReturned
947);
948
949DWORD 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
957DWORD WINAPI FwpmNetEventSubscriptionsGet0(
958  HANDLE engineHandle,
959  FWPM_NET_EVENT_SUBSCRIPTION0 ***entries,
960  UINT32 *numEntries
961);
962
963DWORD WINAPI FwpmNetEventUnsubscribe0(
964  HANDLE engineHandle,
965  HANDLE eventsHandle
966);
967
968DWORD WINAPI FwpmProviderContextAdd1(
969  HANDLE engineHandle,
970  const FWPM_PROVIDER_CONTEXT1 *providerContext,
971  PSECURITY_DESCRIPTOR sd,
972  UINT64 *id
973);
974
975DWORD WINAPI FwpmProviderContextEnum1(
976  HANDLE engineHandle,
977  HANDLE enumHandle,
978  UINT32 numEntriesRequested,
979  FWPM_PROVIDER_CONTEXT1 ***entries,
980  UINT32 *numEntriesReturned
981);
982
983DWORD WINAPI FwpmProviderContextGetById1(
984  HANDLE engineHandle,
985  UINT64 id,
986  FWPM_PROVIDER_CONTEXT1 **providerContext
987);
988
989DWORD WINAPI FwpmProviderContextGetByKey1(
990  HANDLE engineHandle,
991  const GUID *key,
992  FWPM_PROVIDER_CONTEXT1 **providerContext
993);
994
995DWORD WINAPI FwpmSystemPortsGet0(
996  HANDLE engineHandle,
997  FWPM_SYSTEM_PORTS0 **sysPorts
998);
999
1000DWORD WINAPI FwpmSystemPortsSubscribe0(
1001  HANDLE engineHandle,
1002  void *reserved,
1003  FWPM_SYSTEM_PORTS_CALLBACK0 callback,
1004  void *context,
1005  HANDLE *sysPortsHandle
1006);
1007
1008DWORD WINAPI FwpmSystemPortsUnsubscribe0(
1009  HANDLE engineHandle,
1010  HANDLE sysPortsHandle
1011);
1012
1013DWORD WINAPI IPsecSaContextEnum1(
1014  HANDLE engineHandle,
1015  HANDLE enumHandle,
1016  UINT32 numEntriesRequested,
1017  IPSEC_SA_CONTEXT1 ***entries,
1018  UINT32 *numEntriesReturned
1019);
1020
1021DWORD WINAPI IPsecSaContextGetById1(
1022  HANDLE engineHandle,
1023  UINT64 id,
1024  IPSEC_SA_CONTEXT1 **saContext
1025);
1026
1027DWORD WINAPI IPsecSaContextGetSpi1(
1028  HANDLE engineHandle,
1029  UINT64 id,
1030  const IPSEC_GETSPI1 *getSpi,
1031  IPSEC_SA_SPI *inboundSpi
1032);
1033
1034DWORD WINAPI IPsecSaContextUpdate0(
1035  HANDLE engineHandle,
1036  UINT32 flags,
1037  const IPSEC_SA_CONTEXT1 *newValues
1038);
1039
1040DWORD WINAPI IPsecSaEnum1(
1041  HANDLE engineHandle,
1042  HANDLE enumHandle,
1043  UINT32 numEntriesRequested,
1044  IPSEC_SA_DETAILS1 ***entries,
1045  UINT32 *numEntriesReturned
1046);
1047
1048DWORD 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