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