| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _INC_FWPMTYPES |
| #define _INC_FWPMTYPES |
| #include <fwptypes.h> |
| #include <ipsectypes.h> |
| #include <iketypes.h> |
| #if (_WIN32_WINNT >= 0x0600) |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef UINT32 FWP_ACTION_TYPE; |
| |
| typedef enum FWPM_PROVIDER_CONTEXT_TYPE_ { |
| FWPM_IPSEC_KEYING_CONTEXT, |
| FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT, |
| FWPM_IPSEC_IKE_QM_TUNNEL_CONTEXT, |
| FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT, |
| FWPM_IPSEC_AUTHIP_QM_TUNNEL_CONTEXT, |
| FWPM_IPSEC_IKE_MM_CONTEXT, |
| FWPM_IPSEC_AUTHIP_MM_CONTEXT, |
| FWPM_CLASSIFY_OPTIONS_CONTEXT, |
| FWPM_GENERAL_CONTEXT, |
| FWPM_IPSEC_IKEV2_QM_TUNNEL_CONTEXT, |
| FWPM_IPSEC_IKEV2_MM_CONTEXT, |
| FWPM_DOSP_CONTEXT, |
| FWPM_PROVIDER_CONTEXT_TYPE_MAX |
| } FWPM_PROVIDER_CONTEXT_TYPE; |
| |
| typedef enum FWPM_NET_EVENT_TYPE_ { |
| FWPM_NET_EVENT_TYPE_IKEEXT_MM_FAILURE, |
| FWPM_NET_EVENT_TYPE_IKEEXT_QM_FAILURE, |
| FWPM_NET_EVENT_TYPE_IKEEXT_EM_FAILURE, |
| FWPM_NET_EVENT_TYPE_CLASSIFY_DROP, |
| FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP, |
| FWPM_NET_EVENT_TYPE_IPSEC_DOSP_DROP, |
| FWPM_NET_EVENT_TYPE_MAX |
| } FWPM_NET_EVENT_TYPE; |
| |
| typedef struct FWPM_ACTION0_ { |
| FWP_ACTION_TYPE type; |
| __MINGW_EXTENSION union { |
| GUID filterType; |
| GUID calloutKey; |
| }; |
| } FWPM_ACTION0; |
| |
| typedef struct FWPM_DISPLAY_DATA0_ { |
| wchar_t *name; |
| wchar_t *description; |
| } FWPM_DISPLAY_DATA0; |
| |
| typedef struct FWPM_SESSION0_ { |
| GUID sessionKey; |
| FWPM_DISPLAY_DATA0 displayData; |
| UINT32 flags; |
| UINT32 txnWaitTimeoutInMSec; |
| DWORD processId; |
| SID *sid; |
| wchar_t *username; |
| WINBOOL kernelMode; |
| } FWPM_SESSION0; |
| |
| typedef struct FWPM_CALLOUT_ENUM_TEMPLATE0_ { |
| GUID *providerKey; |
| GUID layerKey; |
| } FWPM_CALLOUT_ENUM_TEMPLATE0; |
| |
| typedef struct FWPM_CALLOUT_SUBSCRIPTION0_ { |
| FWPM_CALLOUT_ENUM_TEMPLATE0 *enumTemplate; |
| UINT32 flags; |
| GUID sessionKey; |
| } FWPM_CALLOUT_SUBSCRIPTION0; |
| |
| typedef enum FWPM_CHANGE_TYPE_ { |
| FWPM_CHANGE_ADD = 1, |
| FWPM_CHANGE_DELETE, |
| FWPM_CHANGE_TYPE_MAX |
| } FWPM_CHANGE_TYPE; |
| |
| typedef struct FWPM_CALLOUT_CHANGE0_ { |
| FWPM_CHANGE_TYPE changeType; |
| GUID calloutKey; |
| UINT32 calloutId; |
| } FWPM_CALLOUT_CHANGE0; |
| |
| typedef struct FWPM_CALLOUT0_ { |
| GUID calloutKey; |
| FWPM_DISPLAY_DATA0 displayData; |
| UINT32 flags; |
| GUID *providerKey; |
| FWP_BYTE_BLOB providerData; |
| GUID applicableLayer; |
| UINT32 calloutId; |
| } FWPM_CALLOUT0; |
| |
| typedef struct FWPM_CLASSIFY_OPTION0_ { |
| FWP_CLASSIFY_OPTION_TYPE type; |
| FWP_VALUE0 value; |
| } FWPM_CLASSIFY_OPTION0; |
| |
| typedef struct FWPM_CLASSIFY_OPTIONS0_ { |
| UINT32 numOptions; |
| FWPM_CLASSIFY_OPTION0 *options; |
| } FWPM_CLASSIFY_OPTIONS0; |
| |
| typedef enum FWPM_ENGINE_OPTION_ { |
| FWPM_ENGINE_COLLECT_NET_EVENTS, |
| FWPM_ENGINE_NET_EVENT_MATCH_ANY_KEYWORDS, |
| FWPM_ENGINE_NAME_CACHE, |
| FWPM_ENGINE_OPTION_MAX |
| } FWPM_ENGINE_OPTION; |
| |
| typedef enum FWPM_FIELD_TYPE_ { |
| FWPM_FIELD_RAW_DATA, |
| FWPM_FIELD_IP_ADDRESS, |
| FWPM_FIELD_FLAGS, |
| FWPM_FIELD_TYPE_MAX |
| } FWPM_FIELD_TYPE; |
| |
| typedef struct FWPM_FIELD0_ { |
| GUID *fieldKey; |
| FWPM_FIELD_TYPE type; |
| FWP_DATA_TYPE dataType; |
| } FWPM_FIELD0; |
| |
| typedef struct FWPM_FILTER_CHANGE0_ { |
| FWPM_CHANGE_TYPE changeType; |
| GUID filterKey; |
| UINT64 filterId; |
| } FWPM_FILTER_CHANGE0; |
| |
| typedef struct FWPM_FILTER_CONDITION0_ { |
| GUID fieldKey; |
| FWP_MATCH_TYPE matchType; |
| FWP_CONDITION_VALUE conditionValue; |
| } FWPM_FILTER_CONDITION0; |
| |
| typedef struct FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0_ { |
| GUID *providerKey; |
| FWPM_PROVIDER_CONTEXT_TYPE providerContextType; |
| } FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0; |
| |
| typedef struct FWPM_FILTER_ENUM_TEMPLATE0_ { |
| GUID *providerKey; |
| GUID layerKey; |
| FWP_FILTER_ENUM_TYPE enumType; |
| UINT32 flags; |
| FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *providerContextTemplate; |
| UINT32 numFilterConditions; |
| FWPM_FILTER_CONDITION0 *filterCondition; |
| UINT32 actionMask; |
| GUID *calloutKey; |
| } FWPM_FILTER_ENUM_TEMPLATE0; |
| |
| typedef struct FWPM_FILTER_SUBSCRIPTION0_ { |
| FWPM_FILTER_ENUM_TEMPLATE0 *enumTemplate; |
| UINT32 flags; |
| GUID sessionKey; |
| } FWPM_FILTER_SUBSCRIPTION0; |
| |
| typedef struct FWPM_FILTER0_ { |
| GUID filterKey; |
| FWPM_DISPLAY_DATA0 displayData; |
| UINT32 flags; |
| GUID *providerKey; |
| FWP_BYTE_BLOB providerData; |
| GUID layerKey; |
| GUID subLayerKey; |
| FWP_VALUE0 weight; |
| UINT32 numFilterConditions; |
| FWPM_FILTER_CONDITION0 *filterCondition; |
| FWPM_ACTION0 action; |
| __MINGW_EXTENSION union { |
| UINT64 rawContext; |
| GUID providerContextKey; |
| }; |
| GUID *reserved; |
| UINT64 filterId; |
| FWP_VALUE0 effectiveWeight; |
| } FWPM_FILTER0; |
| |
| typedef struct FWPM_LAYER_ENUM_TEMPLATE0_ { |
| UINT64 reserved; |
| } FWPM_LAYER_ENUM_TEMPLATE0; |
| |
| typedef struct FWPM_LAYER0_ { |
| GUID layerKey; |
| FWPM_DISPLAY_DATA0 displayData; |
| UINT32 flags; |
| UINT32 numFields; |
| FWPM_FIELD0 *field; |
| GUID defaultSubLayerKey; |
| UINT16 layerId; |
| } FWPM_LAYER0; |
| |
| typedef struct FWPM_NET_EVENT_CLASSIFY_DROP0_ { |
| UINT64 filterId; |
| UINT16 layerId; |
| } FWPM_NET_EVENT_CLASSIFY_DROP0; |
| |
| typedef struct FWPM_NET_EVENT_ENUM_TEMPLATE0_ { |
| FILETIME startTime; |
| FILETIME endTime; |
| UINT32 numFilterConditions; |
| FWPM_FILTER_CONDITION0 *filterCondition; |
| } FWPM_NET_EVENT_ENUM_TEMPLATE0; |
| |
| typedef struct FWPM_NET_EVENT_HEADER0_ { |
| FILETIME timeStamp; |
| UINT32 flags; |
| FWP_IP_VERSION ipVersion; |
| UINT8 ipProtocol; |
| __MINGW_EXTENSION union { |
| UINT32 localAddrV4; |
| FWP_BYTE_ARRAY16 localAddrV6; |
| }; |
| __MINGW_EXTENSION union { |
| UINT32 remoteAddrV4; |
| FWP_BYTE_ARRAY16 remoteAddrV6; |
| }; |
| UINT16 localPort; |
| UINT16 remotePort; |
| UINT32 scopeId; |
| FWP_BYTE_BLOB appId; |
| SID *userId; |
| } FWPM_NET_EVENT_HEADER0; |
| |
| #define IKEEXT_CERT_HASH_LEN 20 |
| |
| typedef struct FWPM_NET_EVENT_IKEEXT_UM_FAILURE0_ { |
| UINT32 failureErrorCode; |
| IPSEC_FAILURE_POINT failurePoint; |
| UINT32 flags; |
| IKEEXT_EM_SA_STATE emState; |
| IKEEXT_SA_ROLE saRole; |
| IKEEXT_AUTHENTICATION_METHOD_TYPE emAuthMethod; |
| UINT8 endCertHash[IKEEXT_CERT_HASH_LEN]; |
| UINT64 mmId; |
| UINT64 qmFilterId; |
| } FWPM_NET_EVENT_IKEEXT_UM_FAILURE0; |
| |
| typedef struct FWPM_NET_EVENT_IKEEXT_MM_FAILURE0_ { |
| UINT32 failureErrorCode; |
| IPSEC_FAILURE_POINT failurePoint; |
| UINT32 flags; |
| IKEEXT_KEY_MODULE_TYPE keyingModuleType; |
| IKEEXT_MM_SA_STATE mmState; |
| IKEEXT_SA_ROLE saRole; |
| IKEEXT_AUTHENTICATION_METHOD_TYPE mmAuthMethod; |
| UINT8 endCertHash[IKEEXT_CERT_HASH_LEN]; |
| UINT64 mmId; |
| UINT64 mmFilterId; |
| } FWPM_NET_EVENT_IKEEXT_MM_FAILURE0; |
| |
| typedef struct FWPM_BET_EVENT_IKEEXT_QM_FAILURE0 { |
| UINT32 failureErrorCode; |
| IPSEC_FAILURE_POINT failurePoint; |
| IKEEXT_KEY_MODULE_TYPE keyingModuleType; |
| IKEEXT_QM_SA_STATE qmState; |
| IKEEXT_SA_ROLE saRole; |
| IPSEC_TRAFFIC_TYPE saTrafficType; |
| __MINGW_EXTENSION union { |
| FWP_CONDITION_VALUE0 localSubNet; |
| ; // case(IPSEC_TRAFFIC_TYPE_TRANSPORT) |
| }; |
| __MINGW_EXTENSION union { |
| FWP_CONDITION_VALUE0 remoteSubNet; |
| ; // case(IPSEC_TRAFFIC_TYPE_TRANSPORT) |
| }; |
| UINT64 qmFilterId; |
| } FWPM_NET_EVENT_IKEEXT_QM_FAILURE0; |
| |
| typedef UINT32 IPSEC_SA_SPI; |
| |
| typedef struct FWPM_NET_EVENT_IPSEC_KERNEL_DROP0_ { |
| INT32 failureStatus; |
| FWP_DIRECTION direction; |
| IPSEC_SA_SPI spi; |
| UINT64 filterId; |
| UINT16 layerId; |
| } FWPM_NET_EVENT_IPSEC_KERNEL_DROP0; |
| |
| typedef struct FWPM_NET_EVENT_IPSEC_DOSP_DROP0_ { |
| FWP_IP_VERSION ipVersion; |
| __MINGW_EXTENSION union { |
| UINT32 publicHostV4Addr; |
| UINT8 publicHostV6Addr[16]; |
| }; |
| __MINGW_EXTENSION union { |
| UINT32 internalHostV4Addr; |
| UINT8 internalHostV6Addr[16]; |
| }; |
| INT32 failureStatus; |
| FWP_DIRECTION direction; |
| } FWPM_NET_EVENT_IPSEC_DOSP_DROP0; |
| |
| typedef struct FWPM_NET_EVENT0_ { |
| FWPM_NET_EVENT_HEADER0 header; |
| FWPM_NET_EVENT_TYPE type; |
| __MINGW_EXTENSION union { |
| FWPM_NET_EVENT_IKEEXT_MM_FAILURE0 *ikeMmFailure; |
| FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 *ikeQmFailure; |
| FWPM_NET_EVENT_IKEEXT_EM_FAILURE0 *ikeEmFailure; |
| FWPM_NET_EVENT_CLASSIFY_DROP0 *classifyDrop; |
| FWPM_NET_EVENT_IPSEC_KERNEL_DROP0 *ipsecDrop; |
| FWPM_NET_EVENT_IPSEC_DOSP_DROP0 *idpDrop; |
| }; |
| } FWPM_NET_EVENT0; |
| |
| typedef struct FWPM_PROVIDER_CHANGE0_ { |
| FWPM_CHANGE_TYPE changeType; |
| GUID providerKey; |
| } FWPM_PROVIDER_CHANGE0; |
| |
| typedef struct FWPM_PROVIDER_CONTEXT_CHANGE0_ { |
| FWPM_CHANGE_TYPE changeType; |
| GUID providerContextKey; |
| UINT64 providerContextId; |
| } FWPM_PROVIDER_CONTEXT_CHANGE0; |
| |
| typedef struct FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0_ { |
| FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *enumTemplate; |
| UINT32 flags; |
| GUID sessionKey; |
| } FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0; |
| |
| typedef struct FWPM_PROVIDER_CONTEXT0_ { |
| GUID providerContextKey; |
| FWPM_DISPLAY_DATA0 displayData; |
| UINT32 flags; |
| GUID *providerKey; |
| FWP_BYTE_BLOB providerData; |
| FWPM_PROVIDER_CONTEXT_TYPE type; |
| __MINGW_EXTENSION union { |
| IPSEC_KEYING_POLICY0 *keyingPolicy; |
| IPSEC_TRANSPORT_POLICY0 *ikeQmTransportPolicy; |
| IPSEC_TUNNEL_POLICY0 *ikeQmTunnelPolicy; |
| IPSEC_TRANSPORT_POLICY0 *authipQmTransportPolicy; |
| IPSEC_TUNNEL_POLICY0 *authipQmTunnelPolicy; |
| IKEEXT_POLICY0 *ikeMmPolicy; |
| IKEEXT_POLICY0 *authIpMmPolicy; |
| FWP_BYTE_BLOB *dataBuffer; |
| FWPM_CLASSIFY_OPTIONS0 *classifyOptions; |
| }; |
| UINT64 providerContextId; |
| } FWPM_PROVIDER_CONTEXT0; |
| |
| typedef struct FWPM_PROVIDER_ENUM_TEMPLATE0_ { |
| UINT64 reserved; |
| } FWPM_PROVIDER_ENUM_TEMPLATE0; |
| |
| typedef struct FWPM_PROVIDER_SUBSCRIPTION0_ { |
| FWPM_PROVIDER_ENUM_TEMPLATE0 *enumTemplate; |
| UINT32 flags; |
| GUID sessionKey; |
| } FWPM_PROVIDER_SUBSCRIPTION0; |
| |
| typedef struct FWPM_PROVIDER0_ { |
| GUID providerKey; |
| FWPM_DISPLAY_DATA0 displayData; |
| UINT32 flags; |
| FWP_BYTE_BLOB providerData; |
| wchar_t *serviceName; |
| } FWPM_PROVIDER0; |
| |
| typedef struct FWPM_SESSION_ENUM_TEMPLATE0_ { |
| UINT64 reserved; |
| } FWPM_SESSION_ENUM_TEMPLATE0; |
| |
| typedef struct FWPM_SUBLAYER_CHANGE0_ { |
| FWPM_CHANGE_TYPE changeType; |
| GUID subLayerKey; |
| } FWPM_SUBLAYER_CHANGE0; |
| |
| typedef struct FWPM_SUBLAYER_ENUM_TEMPLATE0_ { |
| GUID *providerKey; |
| } FWPM_SUBLAYER_ENUM_TEMPLATE0; |
| |
| typedef struct FWPM_SUBLAYER_SUBSCRIPTION0_ { |
| FWPM_SUBLAYER_ENUM_TEMPLATE0 *enumTemplate; |
| UINT32 flags; |
| GUID sessionKey; |
| } FWPM_SUBLAYER_SUBSCRIPTION0; |
| |
| typedef struct FWPM_SUBLAYER0_ { |
| GUID subLayerKey; |
| FWPM_DISPLAY_DATA0 displayData; |
| UINT16 flags; |
| GUID *providerKey; |
| FWP_BYTE_BLOB providerData; |
| UINT16 weight; |
| } FWPM_SUBLAYER0; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ |
| #endif /*_INC_FWPMTYPES*/ |