mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-18 16:14:57 +00:00
578 lines
18 KiB
C
578 lines
18 KiB
C
|
/**
|
||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||
|
* This file is part of the mingw-w64 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>
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
#if (_WIN32_WINNT >= 0x0600)
|
||
|
|
||
|
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;
|
||
|
__C89_NAMELESS 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_VALUE0 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;
|
||
|
__C89_NAMELESS 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;
|
||
|
__C89_NAMELESS union {
|
||
|
UINT32 localAddrV4;
|
||
|
FWP_BYTE_ARRAY16 localAddrV6;
|
||
|
};
|
||
|
__C89_NAMELESS 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_NET_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;
|
||
|
__C89_NAMELESS union {
|
||
|
FWP_CONDITION_VALUE0 localSubNet;
|
||
|
};
|
||
|
__C89_NAMELESS union {
|
||
|
FWP_CONDITION_VALUE0 remoteSubNet;
|
||
|
};
|
||
|
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;
|
||
|
|
||
|
#if (_WIN32_WINNT >= 0x0601)
|
||
|
typedef struct FWPM_NET_EVENT_IPSEC_DOSP_DROP0_ {
|
||
|
FWP_IP_VERSION ipVersion;
|
||
|
__C89_NAMELESS union {
|
||
|
UINT32 publicHostV4Addr;
|
||
|
UINT8 publicHostV6Addr[16];
|
||
|
};
|
||
|
__C89_NAMELESS union {
|
||
|
UINT32 internalHostV4Addr;
|
||
|
UINT8 internalHostV6Addr[16];
|
||
|
};
|
||
|
INT32 failureStatus;
|
||
|
FWP_DIRECTION direction;
|
||
|
} FWPM_NET_EVENT_IPSEC_DOSP_DROP0;
|
||
|
#endif /*(_WIN32_WINNT >= 0x0601)*/
|
||
|
|
||
|
typedef struct FWPM_NET_EVENT_IKEEXT_EM_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_EM_FAILURE0;
|
||
|
|
||
|
typedef struct FWPM_NET_EVENT0_ {
|
||
|
FWPM_NET_EVENT_HEADER0 header;
|
||
|
FWPM_NET_EVENT_TYPE type;
|
||
|
__C89_NAMELESS 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;
|
||
|
#if (_WIN32_WINNT >= 0x0601)
|
||
|
FWPM_NET_EVENT_IPSEC_DOSP_DROP0 *idpDrop;
|
||
|
#endif /*(_WIN32_WINNT >= 0x0601)*/
|
||
|
};
|
||
|
} 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;
|
||
|
__C89_NAMELESS 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;
|
||
|
|
||
|
#endif /*(_WIN32_WINNT >= 0x0600)*/
|
||
|
|
||
|
#if (_WIN32_WINNT >= 0x0601)
|
||
|
|
||
|
typedef enum FWPM_SYSTEM_PORT_TYPE_ {
|
||
|
FWPM_SYSTEM_PORT_RPC_EPMAP,
|
||
|
FWPM_SYSTEM_PORT_TEREDO,
|
||
|
FWPM_SYSTEM_PORT_IPHTTPS_IN,
|
||
|
FWPM_SYSTEM_PORT_IPHTTPS_OUT,
|
||
|
FWPM_SYSTEM_PORT_TYPE_MAX
|
||
|
} FWPM_SYSTEM_PORT_TYPE;
|
||
|
|
||
|
typedef enum {
|
||
|
DlUnicast,
|
||
|
DlMulticast,
|
||
|
DlBroadcast
|
||
|
} DL_ADDRESS_TYPE, *PDL_ADDRESS_TYPE;
|
||
|
|
||
|
typedef struct FWPM_PROVIDER_CONTEXT1_ {
|
||
|
GUID providerContextKey;
|
||
|
FWPM_DISPLAY_DATA0 displayData;
|
||
|
UINT32 flags;
|
||
|
GUID *providerKey;
|
||
|
FWP_BYTE_BLOB providerData;
|
||
|
FWPM_PROVIDER_CONTEXT_TYPE type;
|
||
|
__C89_NAMELESS union {
|
||
|
IPSEC_KEYING_POLICY0 *keyingPolicy;
|
||
|
IPSEC_TRANSPORT_POLICY1 *ikeQmTransportPolicy;
|
||
|
IPSEC_TUNNEL_POLICY1 *ikeQmTunnelPolicy;
|
||
|
IPSEC_TRANSPORT_POLICY1 *authipQmTransportPolicy;
|
||
|
IPSEC_TUNNEL_POLICY1 *authipQmTunnelPolicy;
|
||
|
IKEEXT_POLICY1 *ikeMmPolicy;
|
||
|
IKEEXT_POLICY1 *authIpMmPolicy;
|
||
|
FWP_BYTE_BLOB *dataBuffer;
|
||
|
FWPM_CLASSIFY_OPTIONS0 *classifyOptions;
|
||
|
IPSEC_TUNNEL_POLICY1 *ikeV2QmTunnelPolicy;
|
||
|
IKEEXT_POLICY1 *ikeV2MmPolicy;
|
||
|
IPSEC_DOSP_OPTIONS0 *idpOptions;
|
||
|
};
|
||
|
UINT64 providerContextId;
|
||
|
} FWPM_PROVIDER_CONTEXT1;
|
||
|
|
||
|
typedef struct FWPM_NET_EVENT_HEADER1_ {
|
||
|
FILETIME timeStamp;
|
||
|
UINT32 flags;
|
||
|
FWP_IP_VERSION ipVersion;
|
||
|
UINT8 ipProtocol;
|
||
|
__C89_NAMELESS union {
|
||
|
UINT32 localAddrV4;
|
||
|
FWP_BYTE_ARRAY16 localAddrV6;
|
||
|
};
|
||
|
__C89_NAMELESS union {
|
||
|
UINT32 remoteAddrV4;
|
||
|
FWP_BYTE_ARRAY16 remoteAddrV6;
|
||
|
};
|
||
|
UINT16 localPort;
|
||
|
UINT16 remotePort;
|
||
|
UINT32 scopeId;
|
||
|
FWP_BYTE_BLOB appId;
|
||
|
SID *userId;
|
||
|
__C89_NAMELESS union {
|
||
|
__C89_NAMELESS struct {
|
||
|
FWP_AF addressFamily;
|
||
|
__C89_NAMELESS union {
|
||
|
__C89_NAMELESS struct {
|
||
|
FWP_BYTE_ARRAY6 dstAddrEth;
|
||
|
FWP_BYTE_ARRAY6 srcAddrEth;
|
||
|
DL_ADDRESS_TYPE addrType;
|
||
|
FWP_ETHER_ENCAP_METHOD encapMethod;
|
||
|
UINT16 etherType;
|
||
|
UINT32 snapControl;
|
||
|
UINT32 snapOui;
|
||
|
UINT16 vlanTag;
|
||
|
UINT64 ifLuid;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
} FWPM_NET_EVENT_HEADER1;
|
||
|
|
||
|
#define IKEEXT_CERT_HASH_LEN 20
|
||
|
|
||
|
typedef struct FWPM_NET_EVENT_IKEEXT_MM_FAILURE1_ {
|
||
|
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;
|
||
|
wchar_t *localPrincipalNameForAuth;
|
||
|
wchar_t *remotePrincipalNameForAuth;
|
||
|
UINT32 numLocalPrincipalGroupSids;
|
||
|
LPWSTR *localPrincipalGroupSids;
|
||
|
UINT32 numRemotePrincipalGroupSids;
|
||
|
LPWSTR *remotePrincipalGroupSids;
|
||
|
} FWPM_NET_EVENT_IKEEXT_MM_FAILURE1;
|
||
|
|
||
|
typedef struct FWPM_NET_EVENT_IKEEXT_EM_FAILURE1_ {
|
||
|
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;
|
||
|
wchar_t *localPrincipalNameForAuth;
|
||
|
wchar_t *remotePrincipalNameForAuth;
|
||
|
UINT32 numLocalPrincipalGroupSids;
|
||
|
LPWSTR *localPrincipalGroupSids;
|
||
|
UINT32 numRemotePrincipalGroupSids;
|
||
|
LPWSTR *remotePrincipalGroupSids;
|
||
|
IPSEC_TRAFFIC_TYPE saTrafficType;
|
||
|
} FWPM_NET_EVENT_IKEEXT_EM_FAILURE1;
|
||
|
|
||
|
typedef struct FWPM_NET_EVENT_CLASSIFY_DROP1_ {
|
||
|
UINT64 filterId;
|
||
|
UINT16 layerId;
|
||
|
UINT32 reauthReason;
|
||
|
UINT32 originalProfile;
|
||
|
UINT32 currentProfile;
|
||
|
UINT32 msFwpDirection;
|
||
|
BOOL isLoopback;
|
||
|
} FWPM_NET_EVENT_CLASSIFY_DROP1;
|
||
|
|
||
|
typedef struct FWPM_NET_EVENT1_ {
|
||
|
FWPM_NET_EVENT_HEADER1 header;
|
||
|
FWPM_NET_EVENT_TYPE type;
|
||
|
__C89_NAMELESS union {
|
||
|
FWPM_NET_EVENT_IKEEXT_MM_FAILURE1 *ikeMmFailure;
|
||
|
FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 *ikeQmFailure;
|
||
|
FWPM_NET_EVENT_IKEEXT_EM_FAILURE1 *ikeEmFailure;
|
||
|
FWPM_NET_EVENT_CLASSIFY_DROP1 *classifyDrop;
|
||
|
FWPM_NET_EVENT_IPSEC_KERNEL_DROP0 *ipsecDrop;
|
||
|
FWPM_NET_EVENT_IPSEC_DOSP_DROP0 *idpDrop;
|
||
|
};
|
||
|
} FWPM_NET_EVENT1;
|
||
|
|
||
|
typedef struct FWPM_NET_EVENT_SUBSCRIPTION0_ {
|
||
|
FWPM_NET_EVENT_ENUM_TEMPLATE0 *enumTemplate;
|
||
|
UINT32 flags;
|
||
|
GUID sessionKey;
|
||
|
} FWPM_NET_EVENT_SUBSCRIPTION0;
|
||
|
|
||
|
typedef struct FWPM_SYSTEM_PORTS_BY_TYPE0_ {
|
||
|
FWPM_SYSTEM_PORT_TYPE type;
|
||
|
UINT32 numPorts;
|
||
|
UINT16 *ports;
|
||
|
} FWPM_SYSTEM_PORTS_BY_TYPE0;
|
||
|
|
||
|
typedef struct FWPM_SYSTEM_PORTS0_ {
|
||
|
UINT32 numTypes;
|
||
|
FWPM_SYSTEM_PORTS_BY_TYPE0 *types;
|
||
|
} FWPM_SYSTEM_PORTS0;
|
||
|
|
||
|
#endif /*(_WIN32_WINNT >= 0x0601)*/
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /*_INC_FWPMTYPES*/
|