1 /*** Autogenerated by WIDL 4.12.1 from include/fwptypes.idl - Do not edit ***/ 2 3 #ifdef _WIN32 4 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 #endif 7 #include <rpc.h> 8 #include <rpcndr.h> 9 #endif 10 11 #ifndef COM_NO_WINDOWS_H 12 #include <windows.h> 13 #include <ole2.h> 14 #endif 15 16 #ifndef __fwptypes_h__ 17 #define __fwptypes_h__ 18 19 /* Forward declarations */ 20 21 /* Headers for imported files */ 22 23 #include <wtypes.h> 24 25 #ifdef __cplusplus 26 extern "C" { 27 #endif 28 29 /** 30 * This file is part of the mingw-w64 runtime package. 31 * No warranty is given; refer to the file DISCLAIMER within this package. 32 */ 33 34 #include <winapifamily.h> 35 36 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 37 38 #define FWP_BYTE_ARRAY6_SIZE 6 39 #define FWP_V6_ADDR_SIZE (16) 40 #define FWP_ACTRL_MATCH_FILTER (1) 41 42 #define FWP_OPTION_VALUE_ALLOW_MULTICAST_STATE (0) 43 #define FWP_OPTION_VALUE_DENY_MULTICAST_STATE (1) 44 #define FWP_OPTION_VALUE_ALLOW_GLOBAL_MULTICAST_STATE (2) 45 46 #define FWP_OPTION_VALUE_DISABLE_LOOSE_SOURCE (0) 47 #define FWP_OPTION_VALUE_ENABLE_LOOSE_SOURCE (1) 48 49 #if (NTDDI_VERSION >= NTDDI_WIN8) 50 #define FWP_OPTION_VALUE_DISABLE_LOCAL_ONLY_MAPPING (0) 51 #define FWP_OPTION_VALUE_ENABLE_LOCAL_ONLY_MAPPING (1) 52 #endif 53 54 #define FWP_ACTION_FLAG_TERMINATING (0x00001000) 55 #define FWP_ACTION_FLAG_NON_TERMINATING (0x00002000) 56 #define FWP_ACTION_FLAG_CALLOUT (0x00004000) 57 58 #define FWP_ACTION_BLOCK (0x1 | FWP_ACTION_FLAG_TERMINATING) 59 #define FWP_ACTION_PERMIT (0x2 | FWP_ACTION_FLAG_TERMINATING) 60 #define FWP_ACTION_CALLOUT_TERMINATING (0x3 | FWP_ACTION_FLAG_CALLOUT | FWP_ACTION_FLAG_TERMINATING) 61 #define FWP_ACTION_CALLOUT_INSPECTION (0x4 | FWP_ACTION_FLAG_CALLOUT | FWP_ACTION_FLAG_NON_TERMINATING) 62 #define FWP_ACTION_CALLOUT_UNKNOWN (0x5 | FWP_ACTION_FLAG_CALLOUT) 63 #define FWP_ACTION_CONTINUE (0x6 | FWP_ACTION_FLAG_NON_TERMINATING) 64 #define FWP_ACTION_NONE (0x7) 65 #define FWP_ACTION_NONE_NO_MATCH (0x8) 66 67 #define FWP_CONDITION_FLAG_IS_LOOPBACK (0x00000001) 68 #define FWP_CONDITION_FLAG_IS_IPSEC_SECURED (0x00000002) 69 #define FWP_CONDITION_FLAG_IS_REAUTHORIZE (0x00000004) 70 #define FWP_CONDITION_FLAG_IS_WILDCARD_BIND (0x00000008) 71 #define FWP_CONDITION_FLAG_IS_RAW_ENDPOINT (0x00000010) 72 #define FWP_CONDITION_FLAG_IS_FRAGMENT (0x00000020) 73 #define FWP_CONDITION_FLAG_IS_FRAGMENT_GROUP (0x00000040) 74 #define FWP_CONDITION_FLAG_IS_IPSEC_NATT_RECLASSIFY (0x00000080) 75 #define FWP_CONDITION_FLAG_REQUIRES_ALE_CLASSIFY (0x00000100) 76 #define FWP_CONDITION_FLAG_IS_IMPLICIT_BIND (0x00000200) 77 #if (NTDDI_VERSION >= NTDDI_WIN6SP1) 78 #define FWP_CONDITION_FLAG_IS_REASSEMBLED (0x00000400) 79 #if (NTDDI_VERSION >= NTDDI_WIN7) 80 #define FWP_CONDITION_FLAG_IS_NAME_APP_SPECIFIED (0x00004000) 81 #define FWP_CONDITION_FLAG_IS_PROMISCUOUS (0x00008000) 82 #define FWP_CONDITION_FLAG_IS_AUTH_FW (0x00010000) 83 #define FWP_CONDITION_FLAG_IS_RECLASSIFY (0x00020000) 84 #define FWP_CONDITION_FLAG_IS_OUTBOUND_PASS_THRU (0x00040000) 85 #define FWP_CONDITION_FLAG_IS_INBOUND_PASS_THRU (0x00080000) 86 #define FWP_CONDITION_FLAG_IS_CONNECTION_REDIRECTED (0x00100000) 87 #if (NTDDI_VERSION >= NTDDI_WIN8) 88 #define FWP_CONDITION_FLAG_IS_PROXY_CONNECTION (0x00200000) 89 #define FWP_CONDITION_FLAG_IS_APPCONTAINER_LOOPBACK (0x00400000) 90 #define FWP_CONDITION_FLAG_IS_NON_APPCONTAINER_LOOPBACK (0x00800000) 91 #define FWP_CONDITION_FLAG_IS_RESERVED (0x01000000) 92 #define FWP_CONDITION_FLAG_IS_HONORING_POLICY_AUTHORIZE (0x02000000) 93 #endif 94 95 #define FWP_CONDITION_REAUTHORIZE_REASON_POLICY_CHANGE (0x00000001) 96 #define FWP_CONDITION_REAUTHORIZE_REASON_NEW_ARRIVAL_INTERFACE (0x00000002) 97 #define FWP_CONDITION_REAUTHORIZE_REASON_NEW_NEXTHOP_INTERFACE (0x00000004) 98 #define FWP_CONDITION_REAUTHORIZE_REASON_PROFILE_CROSSING (0x00000008) 99 #define FWP_CONDITION_REAUTHORIZE_REASON_CLASSIFY_COMPLETION (0x00000010) 100 #define FWP_CONDITION_REAUTHORIZE_REASON_IPSEC_PROPERTIES_CHANGED (0x00000020) 101 #define FWP_CONDITION_REAUTHORIZE_REASON_MID_STREAM_INSPECTION (0x00000040) 102 #define FWP_CONDITION_REAUTHORIZE_REASON_SOCKET_PROPERTY_CHANGED (0x00000080) 103 #define FWP_CONDITION_REAUTHORIZE_REASON_NEW_INBOUND_MCAST_BCAST_PACKET (0x00000100) 104 105 #define FWP_CONDITION_SOCKET_PROPERTY_FLAG_IS_SYSTEM_PORT_RPC (0x00000001) 106 #define FWP_CONDITION_SOCKET_PROPERTY_FLAG_ALLOW_EDGE_TRAFFIC (0x00000002) 107 #define FWP_CONDITION_SOCKET_PROPERTY_FLAG_DENY_EDGE_TRAFFIC (0x00000004) 108 109 #if (NTDDI_VERSION >= NTDDI_WIN8) 110 #define FWP_CONDITION_L2_IS_NATIVE_ETHERNET (0x00000001) 111 #define FWP_CONDITION_L2_IS_WIFI (0x00000002) 112 #define FWP_CONDITION_L2_IS_MOBILE_BROADBAND (0x00000004) 113 #define FWP_CONDITION_L2_IS_WIFI_DIRECT_DATA (0x00000008) 114 #define FWP_CONDITION_L2_IS_VM2VM (0x00000010) 115 #define FWP_CONDITION_L2_IS_MALFORMED_PACKET (0x00000020) 116 #define FWP_CONDITION_L2_IS_IP_FRAGMENT_GROUP (0x00000040) 117 #define FWP_CONDITION_L2_IF_CONNECTOR_PRESENT (0x00000080) 118 #endif 119 #endif 120 #endif 121 122 #define FWP_FILTER_ENUM_FLAG_BEST_TERMINATING_MATCH (0x00000001) 123 #define FWP_FILTER_ENUM_FLAG_SORTED (0x00000002) 124 #define FWP_FILTER_ENUM_FLAG_BOOTTIME_ONLY (0x00000004) 125 #define FWP_FILTER_ENUM_FLAG_INCLUDE_BOOTTIME (0x00000008) 126 #define FWP_FILTER_ENUM_FLAG_INCLUDE_DISABLED (0x00000010) 127 128 #define FWP_FILTER_ENUM_VALID_FLAGS (FWP_FILTER_ENUM_FLAG_BEST_TERMINATING_MATCH | FWP_FILTER_ENUM_FLAG_SORTED) 129 #if (NTDDI_VERSION >= NTDDI_WIN8) 130 #define FWP_FILTER_ENUM_FLAG_RESERVED1 (0x00000020) 131 #endif 132 133 #define FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW (0x00000001) 134 #define FWP_CALLOUT_FLAG_ALLOW_OFFLOAD (0x00000002) 135 #if (NTDDI_VERSION >= NTDDI_WIN7) 136 #define FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY (0x00000004) 137 #define FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION (0x00000008) 138 #define FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY (0x00000010) 139 #if (NTDDI_VERSION >= NTDDI_WIN8) 140 #define FWP_CALLOUT_FLAG_RESERVED1 (0x00000020) 141 #define FWP_CALLOUT_FLAG_ALLOW_RSC (0x00000040) 142 #define FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY (0x00000080) 143 #endif 144 #endif 145 #ifdef __midl 146 typedef struct _LUID { 147 DWORD LowPart; 148 LONG HighPart; 149 } LUID; 150 typedef struct _LUID *PLUID; 151 #endif 152 153 typedef UINT32 FWP_ACTION_TYPE; 154 155 156 typedef enum FWP_DIRECTION_ { 157 FWP_DIRECTION_OUTBOUND = 0, 158 FWP_DIRECTION_INBOUND = 1, 159 FWP_DIRECTION_MAX = 2 160 } FWP_DIRECTION; 161 162 typedef enum FWP_IP_VERSION_ { 163 FWP_IP_VERSION_V4 = 0, 164 FWP_IP_VERSION_V6 = 1, 165 FWP_IP_VERSION_NONE = 2, 166 FWP_IP_VERSION_MAX = 3 167 } FWP_IP_VERSION; 168 169 typedef enum FWP_NE_FAMILY_ { 170 FWP_AF_INET = FWP_IP_VERSION_V4, 171 FWP_AF_INET6 = FWP_IP_VERSION_V6, 172 FWP_AF_ETHER = FWP_IP_VERSION_NONE, 173 FWP_AF_NONE = 3 174 } FWP_AF; 175 176 typedef enum FWP_ETHER_ENCAP_METHOD_ { 177 FWP_ETHER_ENCAP_METHOD_ETHER_V2 = 0, 178 FWP_ETHER_ENCAP_METHOD_SNAP = 1, 179 FWP_ETHER_ENCAP_METHOD_SNAP_W_OUI_ZERO = 3 180 } FWP_ETHER_ENCAP_METHOD; 181 182 typedef enum FWP_DATA_TYPE_ { 183 FWP_EMPTY = 0, 184 FWP_UINT8 = 1, 185 FWP_UINT16 = 2, 186 FWP_UINT32 = 3, 187 FWP_UINT64 = 4, 188 FWP_INT8 = 5, 189 FWP_INT16 = 6, 190 FWP_INT32 = 7, 191 FWP_INT64 = 8, 192 FWP_FLOAT = 9, 193 FWP_DOUBLE = 10, 194 FWP_BYTE_ARRAY16_TYPE = 11, 195 FWP_BYTE_BLOB_TYPE = 12, 196 FWP_SID = 13, 197 FWP_SECURITY_DESCRIPTOR_TYPE = 14, 198 FWP_TOKEN_INFORMATION_TYPE = 15, 199 FWP_TOKEN_ACCESS_INFORMATION_TYPE = 16, 200 FWP_UNICODE_STRING_TYPE = 17, 201 FWP_BYTE_ARRAY6_TYPE = 18, 202 FWP_SINGLE_DATA_TYPE_MAX = 0xff, 203 FWP_V4_ADDR_MASK = 0x100, 204 FWP_V6_ADDR_MASK = 0x101, 205 FWP_RANGE_TYPE = 0x102, 206 FWP_DATA_TYPE_MAX = 0x103 207 } FWP_DATA_TYPE; 208 209 typedef enum FWP_MATCH_TYPE_ { 210 FWP_MATCH_EQUAL = 0, 211 FWP_MATCH_GREATER = 1, 212 FWP_MATCH_LESS = 2, 213 FWP_MATCH_GREATER_OR_EQUAL = 3, 214 FWP_MATCH_LESS_OR_EQUAL = 4, 215 FWP_MATCH_RANGE = 5, 216 FWP_MATCH_FLAGS_ALL_SET = 6, 217 FWP_MATCH_FLAGS_ANY_SET = 7, 218 FWP_MATCH_FLAGS_NONE_SET = 8, 219 FWP_MATCH_EQUAL_CASE_INSENSITIVE = 9, 220 FWP_MATCH_NOT_EQUAL = 10, 221 FWP_MATCH_TYPE_MAX = 11 222 } FWP_MATCH_TYPE; 223 224 #if (NTDDI_VERSION >= NTDDI_WIN8) 225 typedef enum FWP_VSWITCH_NETWORK_TYPE_ { 226 FWP_VSWITCH_NETWORK_TYPE_UNKNOWN = 0, 227 FWP_VSWITCH_NETWORK_TYPE_PRIVATE = 1, 228 FWP_VSWITCH_NETWORK_TYPE_INTERNAL = 2, 229 FWP_VSWITCH_NETWORK_TYPE_EXTERNAL = 3 230 } FWP_VSWITCH_NETWORK_TYPE; 231 #endif 232 233 typedef enum FWP_CLASSIFY_OPTION_TYPE_ { 234 FWP_CLASSIFY_OPTION_MULTICAST_STATE = 0, 235 FWP_CLASSIFY_OPTION_LOOSE_SOURCE_MAPPING = 1, 236 FWP_CLASSIFY_OPTION_UNICAST_LIFETIME = 2, 237 FWP_CLASSIFY_OPTION_MCAST_BCAST_LIFETIME = 3, 238 FWP_CLASSIFY_OPTION_SECURE_SOCKET_SECURITY_FLAGS = 4, 239 FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_MM_POLICY_KEY = 5, 240 FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_QM_POLICY_KEY = 6, 241 FWP_CLASSIFY_OPTION_LOCAL_ONLY_MAPPING = 7, 242 FWP_CLASSIFY_OPTION_MAX = 8 243 } FWP_CLASSIFY_OPTION_TYPE; 244 245 typedef enum FWP_FILTER_ENUM_TYPE_ { 246 FWP_FILTER_ENUM_FULLY_CONTAINED = 0, 247 FWP_FILTER_ENUM_OVERLAPPING = 1, 248 FWP_FILTER_ENUM_TYPE_MAX = 2 249 } FWP_FILTER_ENUM_TYPE; 250 251 typedef struct FWP_BYTE_ARRAY6_ { 252 UINT8 byteArray6[6]; 253 } FWP_BYTE_ARRAY6; 254 255 typedef struct FWP_BYTE_ARRAY16_ { 256 UINT8 byteArray16[16]; 257 } FWP_BYTE_ARRAY16; 258 259 typedef struct FWP_BYTE_BLOB_ { 260 UINT32 size; 261 UINT8 *data; 262 } FWP_BYTE_BLOB; 263 264 typedef struct FWP_TOKEN_INFORMATION_ { 265 ULONG sidCount; 266 PSID_AND_ATTRIBUTES sids; 267 ULONG restrictedSidCount; 268 PSID_AND_ATTRIBUTES restrictedSids; 269 } FWP_TOKEN_INFORMATION; 270 271 typedef struct FWP_VALUE0_ { 272 FWP_DATA_TYPE type; 273 __C89_NAMELESS union { 274 UINT8 uint8; 275 UINT16 uint16; 276 UINT32 uint32; 277 UINT64 *uint64; 278 INT8 int8; 279 INT16 int16; 280 INT32 int32; 281 INT64 *int64; 282 float float32; 283 double *double64; 284 FWP_BYTE_ARRAY16 *byteArray16; 285 FWP_BYTE_BLOB *byteBlob; 286 SID *sid; 287 FWP_BYTE_BLOB *sd; 288 FWP_TOKEN_INFORMATION *tokenInformation; 289 FWP_BYTE_BLOB *tokenAccessInformation; 290 LPWSTR unicodeString; 291 FWP_BYTE_ARRAY6 *byteArray6; 292 } __C89_NAMELESSUNIONNAME; 293 } FWP_VALUE0; 294 295 typedef struct FWP_V4_ADDR_AND_MASK_ { 296 UINT32 addr; 297 UINT32 mask; 298 } FWP_V4_ADDR_AND_MASK; 299 300 typedef struct FWP_V6_ADDR_AND_MASK_ { 301 UINT8 addr[16]; 302 UINT8 prefixLength; 303 } FWP_V6_ADDR_AND_MASK; 304 305 typedef struct FWP_RANGE0_ { 306 FWP_VALUE0 valueLow; 307 FWP_VALUE0 valueHigh; 308 } FWP_RANGE0; 309 310 typedef struct FWP_CONDITION_VALUE0_ { 311 FWP_DATA_TYPE type; 312 __C89_NAMELESS union { 313 UINT8 uint8; 314 UINT16 uint16; 315 UINT32 uint32; 316 UINT64 *uint64; 317 INT8 int8; 318 INT16 int16; 319 INT32 int32; 320 INT64 *int64; 321 float float32; 322 double *double64; 323 FWP_BYTE_ARRAY16 *byteArray16; 324 FWP_BYTE_BLOB *byteBlob; 325 SID *sid; 326 FWP_BYTE_BLOB *sd; 327 FWP_TOKEN_INFORMATION *tokenInformation; 328 FWP_BYTE_BLOB *tokenAccessInformation; 329 LPWSTR unicodeString; 330 FWP_BYTE_ARRAY6 *byteArray6; 331 FWP_V4_ADDR_AND_MASK *v4AddrMask; 332 FWP_V6_ADDR_AND_MASK *v6AddrMask; 333 FWP_RANGE0 *rangeValue; 334 } __C89_NAMELESSUNIONNAME; 335 } FWP_CONDITION_VALUE0; 336 337 #endif /* WINAPI_PARTITION_DESKTOP. */ 338 /* Begin additional prototypes for all interfaces */ 339 340 341 /* End additional prototypes */ 342 343 #ifdef __cplusplus 344 } 345 #endif 346 347 #endif /* __fwptypes_h__ */ 348