| /** | |
| * 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_FWTYPES | |
| #define _INC_FWTYPES | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #if (_WIN32_WINNT >= 0x0600) | |
| #define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x00000001 | |
| #define SOCKET_SETTINGS_ALLOW_INSECURE 0x00000002 | |
| typedef UINT32 FWP_ACTION_TYPE; | |
| typedef enum FWP_CLASSIFY_OPTION_TYPE_ { | |
| FWP_CLASSIFY_OPTION_MULTICAST_STATE = 0, | |
| FWP_CLASSIFY_OPTION_LOOSE_SOURCE_MAPPING, | |
| FWP_CLASSIFY_OPTION_UNICAST_LIFETIME, | |
| FWP_CLASSIFY_OPTION_MCAST_BCAST_LIFETIME, | |
| FWP_CLASSIFY_OPTION_SECURE_SOCKET_SECURITY_FLAGS, | |
| FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_MM_POLICY_KEY, | |
| FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_QM_POLICY_KEY, | |
| FWP_CLASSIFY_OPTION_MAX | |
| } FWP_CLASSIFY_OPTION_TYPE; | |
| typedef enum FWP_DATA_TYPE_ { | |
| FWP_EMPTY = 0, | |
| FWP_UINT8, | |
| FWP_UINT16, | |
| FWP_UINT32, | |
| FWP_UINT64, | |
| FWP_INT8, | |
| FWP_INT16, | |
| FWP_INT32, | |
| FWP_INT64, | |
| FWP_FLOAT, | |
| FWP_DOUBLE, | |
| FWP_BYTE_ARRAY16_TYPE, | |
| FWP_BYTE_BLOB_TYPE, | |
| FWP_SID, | |
| FWP_SECURITY_DESCRIPTOR_TYPE, | |
| FWP_TOKEN_INFORMATION_TYPE , | |
| FWP_TOKEN_ACCESS_INFORMATION_TYPE , | |
| FWP_UNICODE_STRING_TYPE, | |
| FWP_BYTE_ARRAY6_TYPE, | |
| FWP_SINGLE_DATA_TYPE_MAX = 0xFF, | |
| FWP_V4_ADDR_MASK, | |
| FWP_V6_ADDR_MASK, | |
| FWP_RANGE_TYPE, | |
| FWP_DATA_TYPE_MAX | |
| } FWP_DATA_TYPE; | |
| typedef enum FWP_DIRECTION_ { | |
| FWP_DIRECTION_OUTBOUND = 0, | |
| FWP_DIRECTION_INBOUND, | |
| FWP_DIRECTION_MAX | |
| } FWP_DIRECTION; | |
| typedef enum FWP_FILTER_ENUM_TYPE_ { | |
| FWP_FILTER_ENUM_FULLY_CONTAINED = 0, | |
| FWP_FILTER_ENUM_OVERLAPPING, | |
| FWP_FILTER_ENUM_TYPE_MAX | |
| } FWP_FILTER_ENUM_TYPE; | |
| typedef enum FWP_IP_VERSION_ { | |
| FWP_IP_VERSION_V4 = 0, | |
| FWP_IP_VERSION_V6, | |
| FWP_IP_VERSION_NONE, | |
| FWP_IP_VERSION_MAX | |
| } FWP_IP_VERSION; | |
| typedef enum FWP_MATCH_TYPE_ { | |
| FWP_MATCH_EQUAL = 0, | |
| FWP_MATCH_GREATER, | |
| FWP_MATCH_LESS, | |
| FWP_MATCH_GREATER_OR_EQUAL, | |
| FWP_MATCH_LESS_OR_EQUAL, | |
| FWP_MATCH_RANGE, | |
| FWP_MATCH_FLAGS_ALL_SET, | |
| FWP_MATCH_FLAGS_ANY_SET, | |
| FWP_MATCH_FLAGS_NONE_SET, | |
| FWP_MATCH_EQUAL_CASE_INSENSITIVE, | |
| FWP_MATCH_NOT_EQUAL, | |
| FWP_MATCH_TYPE_MAX | |
| } FWP_MATCH_TYPE; | |
| typedef struct FWP_BYTE_ARRAY16_ { | |
| UINT8 byteArray16[16]; | |
| } FWP_BYTE_ARRAY16; | |
| typedef struct FWP_BYTE_BLOB_ { | |
| UINT32 size; | |
| UINT8 *data; | |
| } FWP_BYTE_BLOB; | |
| typedef struct FWP_BYTE_ARRAY6_ { | |
| UINT8 byteArray6[6]; | |
| } FWP_BYTE_ARRAY6; | |
| typedef struct FWP_V4_ADDR_AND_MASK_ { | |
| UINT32 addr; | |
| UINT32 mask; | |
| } FWP_V4_ADDR_AND_MASK; | |
| #define FWP_V6_ADDR_SIZE 16 | |
| typedef struct FWP_V6_ADDR_AND_MASK_ { | |
| UINT8 addr[FWP_V6_ADDR_SIZE]; | |
| UINT8 prefixLength; | |
| } FWP_V6_ADDR_AND_MASK; | |
| typedef struct _FWP_TOKEN_INFORMATION { | |
| ULONG sidCount; | |
| PSID_AND_ATTRIBUTES sids; | |
| ULONG restrictedSidCount; | |
| PSID_AND_ATTRIBUTES restrictedSids; | |
| } FWP_TOKEN_INFORMATION; | |
| typedef struct FWP_VALUE0_ { | |
| FWP_DATA_TYPE type; | |
| __C89_NAMELESS union { | |
| LPVOID EMPTY; // case(FWP_EMPTY) | |
| UINT8 uint8; | |
| UINT16 uint16; | |
| UINT32 uint32; | |
| UINT64 *uint64; | |
| INT8 int8; | |
| INT16 int16; | |
| INT32 int32; | |
| INT64 *int64; | |
| float float32; | |
| double *double64; | |
| FWP_BYTE_ARRAY16 *byteArray16; | |
| FWP_BYTE_BLOB *byteBlob; | |
| SID *sid; | |
| FWP_BYTE_BLOB *sd; | |
| FWP_TOKEN_INFORMATION *tokenInformation; | |
| FWP_BYTE_BLOB *tokenAccessInformation; | |
| LPWSTR unicodeString; | |
| FWP_BYTE_ARRAY6 *byteArray6; | |
| }; | |
| } FWP_VALUE0; | |
| typedef struct FWP_RANGE0_ { | |
| FWP_VALUE0 valueLow; | |
| FWP_VALUE0 valueHigh; | |
| } FWP_RANGE0; | |
| typedef struct FWP_CONDITION_VALUE0_ { | |
| FWP_DATA_TYPE type; | |
| __C89_NAMELESS union { | |
| UINT8 uint8; | |
| UINT16 uint16; | |
| UINT32 uint32; | |
| UINT64 *uint64; | |
| INT8 int8; | |
| INT16 int16; | |
| INT32 int32; | |
| INT64 *int64; | |
| float float32; | |
| double *double64; | |
| FWP_BYTE_ARRAY16 *byteArray16; | |
| FWP_BYTE_BLOB *byteBlob; | |
| SID *sid; | |
| FWP_BYTE_BLOB *sd; | |
| FWP_BYTE_BLOB *tokenInformation; | |
| FWP_BYTE_BLOB *tokenAccessInformation; | |
| LPWSTR unicodeString; | |
| FWP_BYTE_ARRAY6 *byteArray6; | |
| FWP_V4_ADDR_AND_MASK *v4AddrMask; | |
| FWP_V6_ADDR_AND_MASK *v6AddrMask; | |
| FWP_RANGE0 *rangeValue; | |
| }; | |
| } FWP_CONDITION_VALUE0; | |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ | |
| #if (_WIN32_WINNT >= 0x0601) | |
| typedef enum FWP_NE_FAMILY_ { | |
| FWP_AF_INET = FWP_IP_VERSION_V4, | |
| FWP_AF_INET6 = FWP_IP_VERSION_V6, | |
| FWP_AF_ETHER = FWP_IP_VERSION_NONE, | |
| FWP_AF_NONE | |
| } FWP_AF; | |
| typedef enum FWP_ETHER_ENCAP_METHOD_ { | |
| FWP_ETHER_ENCAP_METHOD_ETHER_V2 = 0, | |
| FWP_ETHER_ENCAP_METHOD_SNAP = 1, | |
| FWP_ETHER_ENCAP_METHOD_SNAP_W_OUI_ZERO = 3 | |
| } FWP_ETHER_ENCAP_METHOD; | |
| #endif /*(_WIN32_WINNT >= 0x0601)*/ | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /*_INC_FWTYPES*/ |