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