Home | History | Annotate | Download | only in include
      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