1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_FWPMTYPES 7 #define _INC_FWPMTYPES 8 #include <fwptypes.h> 9 #include <ipsectypes.h> 10 #include <iketypes.h> 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 #if (_WIN32_WINNT >= 0x0600) 16 17 typedef enum FWPM_PROVIDER_CONTEXT_TYPE_ { 18 FWPM_IPSEC_KEYING_CONTEXT, 19 FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT, 20 FWPM_IPSEC_IKE_QM_TUNNEL_CONTEXT, 21 FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT, 22 FWPM_IPSEC_AUTHIP_QM_TUNNEL_CONTEXT, 23 FWPM_IPSEC_IKE_MM_CONTEXT, 24 FWPM_IPSEC_AUTHIP_MM_CONTEXT, 25 FWPM_CLASSIFY_OPTIONS_CONTEXT, 26 FWPM_GENERAL_CONTEXT, 27 FWPM_IPSEC_IKEV2_QM_TUNNEL_CONTEXT, 28 FWPM_IPSEC_IKEV2_MM_CONTEXT, 29 FWPM_DOSP_CONTEXT, 30 FWPM_PROVIDER_CONTEXT_TYPE_MAX 31 } FWPM_PROVIDER_CONTEXT_TYPE; 32 33 typedef enum FWPM_NET_EVENT_TYPE_ { 34 FWPM_NET_EVENT_TYPE_IKEEXT_MM_FAILURE, 35 FWPM_NET_EVENT_TYPE_IKEEXT_QM_FAILURE, 36 FWPM_NET_EVENT_TYPE_IKEEXT_EM_FAILURE, 37 FWPM_NET_EVENT_TYPE_CLASSIFY_DROP, 38 FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP, 39 FWPM_NET_EVENT_TYPE_IPSEC_DOSP_DROP, 40 FWPM_NET_EVENT_TYPE_MAX 41 } FWPM_NET_EVENT_TYPE; 42 43 typedef struct FWPM_ACTION0_ { 44 FWP_ACTION_TYPE type; 45 __C89_NAMELESS union { 46 GUID filterType; 47 GUID calloutKey; 48 }; 49 } FWPM_ACTION0; 50 51 typedef struct FWPM_DISPLAY_DATA0_ { 52 wchar_t *name; 53 wchar_t *description; 54 } FWPM_DISPLAY_DATA0; 55 56 typedef struct FWPM_SESSION0_ { 57 GUID sessionKey; 58 FWPM_DISPLAY_DATA0 displayData; 59 UINT32 flags; 60 UINT32 txnWaitTimeoutInMSec; 61 DWORD processId; 62 SID *sid; 63 wchar_t *username; 64 WINBOOL kernelMode; 65 } FWPM_SESSION0; 66 67 typedef struct FWPM_CALLOUT_ENUM_TEMPLATE0_ { 68 GUID *providerKey; 69 GUID layerKey; 70 } FWPM_CALLOUT_ENUM_TEMPLATE0; 71 72 typedef struct FWPM_CALLOUT_SUBSCRIPTION0_ { 73 FWPM_CALLOUT_ENUM_TEMPLATE0 *enumTemplate; 74 UINT32 flags; 75 GUID sessionKey; 76 } FWPM_CALLOUT_SUBSCRIPTION0; 77 78 typedef enum FWPM_CHANGE_TYPE_ { 79 FWPM_CHANGE_ADD = 1, 80 FWPM_CHANGE_DELETE, 81 FWPM_CHANGE_TYPE_MAX 82 } FWPM_CHANGE_TYPE; 83 84 typedef struct FWPM_CALLOUT_CHANGE0_ { 85 FWPM_CHANGE_TYPE changeType; 86 GUID calloutKey; 87 UINT32 calloutId; 88 } FWPM_CALLOUT_CHANGE0; 89 90 typedef struct FWPM_CALLOUT0_ { 91 GUID calloutKey; 92 FWPM_DISPLAY_DATA0 displayData; 93 UINT32 flags; 94 GUID *providerKey; 95 FWP_BYTE_BLOB providerData; 96 GUID applicableLayer; 97 UINT32 calloutId; 98 } FWPM_CALLOUT0; 99 100 typedef struct FWPM_CLASSIFY_OPTION0_ { 101 FWP_CLASSIFY_OPTION_TYPE type; 102 FWP_VALUE0 value; 103 } FWPM_CLASSIFY_OPTION0; 104 105 typedef struct FWPM_CLASSIFY_OPTIONS0_ { 106 UINT32 numOptions; 107 FWPM_CLASSIFY_OPTION0 *options; 108 } FWPM_CLASSIFY_OPTIONS0; 109 110 typedef enum FWPM_ENGINE_OPTION_ { 111 FWPM_ENGINE_COLLECT_NET_EVENTS, 112 FWPM_ENGINE_NET_EVENT_MATCH_ANY_KEYWORDS, 113 FWPM_ENGINE_NAME_CACHE, 114 FWPM_ENGINE_OPTION_MAX 115 } FWPM_ENGINE_OPTION; 116 117 typedef enum FWPM_FIELD_TYPE_ { 118 FWPM_FIELD_RAW_DATA, 119 FWPM_FIELD_IP_ADDRESS, 120 FWPM_FIELD_FLAGS, 121 FWPM_FIELD_TYPE_MAX 122 } FWPM_FIELD_TYPE; 123 124 typedef struct FWPM_FIELD0_ { 125 GUID *fieldKey; 126 FWPM_FIELD_TYPE type; 127 FWP_DATA_TYPE dataType; 128 } FWPM_FIELD0; 129 130 typedef struct FWPM_FILTER_CHANGE0_ { 131 FWPM_CHANGE_TYPE changeType; 132 GUID filterKey; 133 UINT64 filterId; 134 } FWPM_FILTER_CHANGE0; 135 136 typedef struct FWPM_FILTER_CONDITION0_ { 137 GUID fieldKey; 138 FWP_MATCH_TYPE matchType; 139 FWP_CONDITION_VALUE0 conditionValue; 140 } FWPM_FILTER_CONDITION0; 141 142 typedef struct FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0_ { 143 GUID *providerKey; 144 FWPM_PROVIDER_CONTEXT_TYPE providerContextType; 145 } FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0; 146 147 typedef struct FWPM_FILTER_ENUM_TEMPLATE0_ { 148 GUID *providerKey; 149 GUID layerKey; 150 FWP_FILTER_ENUM_TYPE enumType; 151 UINT32 flags; 152 FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *providerContextTemplate; 153 UINT32 numFilterConditions; 154 FWPM_FILTER_CONDITION0 *filterCondition; 155 UINT32 actionMask; 156 GUID *calloutKey; 157 } FWPM_FILTER_ENUM_TEMPLATE0; 158 159 typedef struct FWPM_FILTER_SUBSCRIPTION0_ { 160 FWPM_FILTER_ENUM_TEMPLATE0 *enumTemplate; 161 UINT32 flags; 162 GUID sessionKey; 163 } FWPM_FILTER_SUBSCRIPTION0; 164 165 typedef struct FWPM_FILTER0_ { 166 GUID filterKey; 167 FWPM_DISPLAY_DATA0 displayData; 168 UINT32 flags; 169 GUID *providerKey; 170 FWP_BYTE_BLOB providerData; 171 GUID layerKey; 172 GUID subLayerKey; 173 FWP_VALUE0 weight; 174 UINT32 numFilterConditions; 175 FWPM_FILTER_CONDITION0 *filterCondition; 176 FWPM_ACTION0 action; 177 __C89_NAMELESS union { 178 UINT64 rawContext; 179 GUID providerContextKey; 180 }; 181 GUID *reserved; 182 UINT64 filterId; 183 FWP_VALUE0 effectiveWeight; 184 } FWPM_FILTER0; 185 186 typedef struct FWPM_LAYER_ENUM_TEMPLATE0_ { 187 UINT64 reserved; 188 } FWPM_LAYER_ENUM_TEMPLATE0; 189 190 typedef struct FWPM_LAYER0_ { 191 GUID layerKey; 192 FWPM_DISPLAY_DATA0 displayData; 193 UINT32 flags; 194 UINT32 numFields; 195 FWPM_FIELD0 *field; 196 GUID defaultSubLayerKey; 197 UINT16 layerId; 198 } FWPM_LAYER0; 199 200 typedef struct FWPM_NET_EVENT_CLASSIFY_DROP0_ { 201 UINT64 filterId; 202 UINT16 layerId; 203 } FWPM_NET_EVENT_CLASSIFY_DROP0; 204 205 typedef struct FWPM_NET_EVENT_ENUM_TEMPLATE0_ { 206 FILETIME startTime; 207 FILETIME endTime; 208 UINT32 numFilterConditions; 209 FWPM_FILTER_CONDITION0 *filterCondition; 210 } FWPM_NET_EVENT_ENUM_TEMPLATE0; 211 212 typedef struct FWPM_NET_EVENT_HEADER0_ { 213 FILETIME timeStamp; 214 UINT32 flags; 215 FWP_IP_VERSION ipVersion; 216 UINT8 ipProtocol; 217 __C89_NAMELESS union { 218 UINT32 localAddrV4; 219 FWP_BYTE_ARRAY16 localAddrV6; 220 }; 221 __C89_NAMELESS union { 222 UINT32 remoteAddrV4; 223 FWP_BYTE_ARRAY16 remoteAddrV6; 224 }; 225 UINT16 localPort; 226 UINT16 remotePort; 227 UINT32 scopeId; 228 FWP_BYTE_BLOB appId; 229 SID *userId; 230 } FWPM_NET_EVENT_HEADER0; 231 232 #define IKEEXT_CERT_HASH_LEN 20 233 234 typedef struct FWPM_NET_EVENT_IKEEXT_UM_FAILURE0_ { 235 UINT32 failureErrorCode; 236 IPSEC_FAILURE_POINT failurePoint; 237 UINT32 flags; 238 IKEEXT_EM_SA_STATE emState; 239 IKEEXT_SA_ROLE saRole; 240 IKEEXT_AUTHENTICATION_METHOD_TYPE emAuthMethod; 241 UINT8 endCertHash[IKEEXT_CERT_HASH_LEN]; 242 UINT64 mmId; 243 UINT64 qmFilterId; 244 } FWPM_NET_EVENT_IKEEXT_UM_FAILURE0; 245 246 typedef struct FWPM_NET_EVENT_IKEEXT_MM_FAILURE0_ { 247 UINT32 failureErrorCode; 248 IPSEC_FAILURE_POINT failurePoint; 249 UINT32 flags; 250 IKEEXT_KEY_MODULE_TYPE keyingModuleType; 251 IKEEXT_MM_SA_STATE mmState; 252 IKEEXT_SA_ROLE saRole; 253 IKEEXT_AUTHENTICATION_METHOD_TYPE mmAuthMethod; 254 UINT8 endCertHash[IKEEXT_CERT_HASH_LEN]; 255 UINT64 mmId; 256 UINT64 mmFilterId; 257 } FWPM_NET_EVENT_IKEEXT_MM_FAILURE0; 258 259 typedef struct FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 { 260 UINT32 failureErrorCode; 261 IPSEC_FAILURE_POINT failurePoint; 262 IKEEXT_KEY_MODULE_TYPE keyingModuleType; 263 IKEEXT_QM_SA_STATE qmState; 264 IKEEXT_SA_ROLE saRole; 265 IPSEC_TRAFFIC_TYPE saTrafficType; 266 __C89_NAMELESS union { 267 FWP_CONDITION_VALUE0 localSubNet; 268 }; 269 __C89_NAMELESS union { 270 FWP_CONDITION_VALUE0 remoteSubNet; 271 }; 272 UINT64 qmFilterId; 273 } FWPM_NET_EVENT_IKEEXT_QM_FAILURE0; 274 275 typedef UINT32 IPSEC_SA_SPI; 276 277 typedef struct FWPM_NET_EVENT_IPSEC_KERNEL_DROP0_ { 278 INT32 failureStatus; 279 FWP_DIRECTION direction; 280 IPSEC_SA_SPI spi; 281 UINT64 filterId; 282 UINT16 layerId; 283 } FWPM_NET_EVENT_IPSEC_KERNEL_DROP0; 284 285 #if (_WIN32_WINNT >= 0x0601) 286 typedef struct FWPM_NET_EVENT_IPSEC_DOSP_DROP0_ { 287 FWP_IP_VERSION ipVersion; 288 __C89_NAMELESS union { 289 UINT32 publicHostV4Addr; 290 UINT8 publicHostV6Addr[16]; 291 }; 292 __C89_NAMELESS union { 293 UINT32 internalHostV4Addr; 294 UINT8 internalHostV6Addr[16]; 295 }; 296 INT32 failureStatus; 297 FWP_DIRECTION direction; 298 } FWPM_NET_EVENT_IPSEC_DOSP_DROP0; 299 #endif /*(_WIN32_WINNT >= 0x0601)*/ 300 301 typedef struct FWPM_NET_EVENT_IKEEXT_EM_FAILURE0_ { 302 UINT32 failureErrorCode; 303 IPSEC_FAILURE_POINT failurePoint; 304 UINT32 flags; 305 IKEEXT_EM_SA_STATE emState; 306 IKEEXT_SA_ROLE saRole; 307 IKEEXT_AUTHENTICATION_METHOD_TYPE emAuthMethod; 308 UINT8 endCertHash[IKEEXT_CERT_HASH_LEN]; 309 UINT64 mmId; 310 UINT64 qmFilterId; 311 } FWPM_NET_EVENT_IKEEXT_EM_FAILURE0; 312 313 typedef struct FWPM_NET_EVENT0_ { 314 FWPM_NET_EVENT_HEADER0 header; 315 FWPM_NET_EVENT_TYPE type; 316 __C89_NAMELESS union { 317 FWPM_NET_EVENT_IKEEXT_MM_FAILURE0 *ikeMmFailure; 318 FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 *ikeQmFailure; 319 FWPM_NET_EVENT_IKEEXT_EM_FAILURE0 *ikeEmFailure; 320 FWPM_NET_EVENT_CLASSIFY_DROP0 *classifyDrop; 321 FWPM_NET_EVENT_IPSEC_KERNEL_DROP0 *ipsecDrop; 322 #if (_WIN32_WINNT >= 0x0601) 323 FWPM_NET_EVENT_IPSEC_DOSP_DROP0 *idpDrop; 324 #endif /*(_WIN32_WINNT >= 0x0601)*/ 325 }; 326 } FWPM_NET_EVENT0; 327 328 typedef struct FWPM_PROVIDER_CHANGE0_ { 329 FWPM_CHANGE_TYPE changeType; 330 GUID providerKey; 331 } FWPM_PROVIDER_CHANGE0; 332 333 typedef struct FWPM_PROVIDER_CONTEXT_CHANGE0_ { 334 FWPM_CHANGE_TYPE changeType; 335 GUID providerContextKey; 336 UINT64 providerContextId; 337 } FWPM_PROVIDER_CONTEXT_CHANGE0; 338 339 typedef struct FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0_ { 340 FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *enumTemplate; 341 UINT32 flags; 342 GUID sessionKey; 343 } FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0; 344 345 typedef struct FWPM_PROVIDER_CONTEXT0_ { 346 GUID providerContextKey; 347 FWPM_DISPLAY_DATA0 displayData; 348 UINT32 flags; 349 GUID *providerKey; 350 FWP_BYTE_BLOB providerData; 351 FWPM_PROVIDER_CONTEXT_TYPE type; 352 __C89_NAMELESS union { 353 IPSEC_KEYING_POLICY0 *keyingPolicy; 354 IPSEC_TRANSPORT_POLICY0 *ikeQmTransportPolicy; 355 IPSEC_TUNNEL_POLICY0 *ikeQmTunnelPolicy; 356 IPSEC_TRANSPORT_POLICY0 *authipQmTransportPolicy; 357 IPSEC_TUNNEL_POLICY0 *authipQmTunnelPolicy; 358 IKEEXT_POLICY0 *ikeMmPolicy; 359 IKEEXT_POLICY0 *authIpMmPolicy; 360 FWP_BYTE_BLOB *dataBuffer; 361 FWPM_CLASSIFY_OPTIONS0 *classifyOptions; 362 }; 363 UINT64 providerContextId; 364 } FWPM_PROVIDER_CONTEXT0; 365 366 typedef struct FWPM_PROVIDER_ENUM_TEMPLATE0_ { 367 UINT64 reserved; 368 } FWPM_PROVIDER_ENUM_TEMPLATE0; 369 370 typedef struct FWPM_PROVIDER_SUBSCRIPTION0_ { 371 FWPM_PROVIDER_ENUM_TEMPLATE0 *enumTemplate; 372 UINT32 flags; 373 GUID sessionKey; 374 } FWPM_PROVIDER_SUBSCRIPTION0; 375 376 typedef struct FWPM_PROVIDER0_ { 377 GUID providerKey; 378 FWPM_DISPLAY_DATA0 displayData; 379 UINT32 flags; 380 FWP_BYTE_BLOB providerData; 381 wchar_t *serviceName; 382 } FWPM_PROVIDER0; 383 384 typedef struct FWPM_SESSION_ENUM_TEMPLATE0_ { 385 UINT64 reserved; 386 } FWPM_SESSION_ENUM_TEMPLATE0; 387 388 typedef struct FWPM_SUBLAYER_CHANGE0_ { 389 FWPM_CHANGE_TYPE changeType; 390 GUID subLayerKey; 391 } FWPM_SUBLAYER_CHANGE0; 392 393 typedef struct FWPM_SUBLAYER_ENUM_TEMPLATE0_ { 394 GUID *providerKey; 395 } FWPM_SUBLAYER_ENUM_TEMPLATE0; 396 397 typedef struct FWPM_SUBLAYER_SUBSCRIPTION0_ { 398 FWPM_SUBLAYER_ENUM_TEMPLATE0 *enumTemplate; 399 UINT32 flags; 400 GUID sessionKey; 401 } FWPM_SUBLAYER_SUBSCRIPTION0; 402 403 typedef struct FWPM_SUBLAYER0_ { 404 GUID subLayerKey; 405 FWPM_DISPLAY_DATA0 displayData; 406 UINT16 flags; 407 GUID *providerKey; 408 FWP_BYTE_BLOB providerData; 409 UINT16 weight; 410 } FWPM_SUBLAYER0; 411 412 #endif /*(_WIN32_WINNT >= 0x0600)*/ 413 414 #if (_WIN32_WINNT >= 0x0601) 415 416 typedef enum FWPM_SYSTEM_PORT_TYPE_ { 417 FWPM_SYSTEM_PORT_RPC_EPMAP, 418 FWPM_SYSTEM_PORT_TEREDO, 419 FWPM_SYSTEM_PORT_IPHTTPS_IN, 420 FWPM_SYSTEM_PORT_IPHTTPS_OUT, 421 FWPM_SYSTEM_PORT_TYPE_MAX 422 } FWPM_SYSTEM_PORT_TYPE; 423 424 typedef enum { 425 DlUnicast, 426 DlMulticast, 427 DlBroadcast 428 } DL_ADDRESS_TYPE, *PDL_ADDRESS_TYPE; 429 430 typedef struct FWPM_PROVIDER_CONTEXT1_ { 431 GUID providerContextKey; 432 FWPM_DISPLAY_DATA0 displayData; 433 UINT32 flags; 434 GUID *providerKey; 435 FWP_BYTE_BLOB providerData; 436 FWPM_PROVIDER_CONTEXT_TYPE type; 437 __C89_NAMELESS union { 438 IPSEC_KEYING_POLICY0 *keyingPolicy; 439 IPSEC_TRANSPORT_POLICY1 *ikeQmTransportPolicy; 440 IPSEC_TUNNEL_POLICY1 *ikeQmTunnelPolicy; 441 IPSEC_TRANSPORT_POLICY1 *authipQmTransportPolicy; 442 IPSEC_TUNNEL_POLICY1 *authipQmTunnelPolicy; 443 IKEEXT_POLICY1 *ikeMmPolicy; 444 IKEEXT_POLICY1 *authIpMmPolicy; 445 FWP_BYTE_BLOB *dataBuffer; 446 FWPM_CLASSIFY_OPTIONS0 *classifyOptions; 447 IPSEC_TUNNEL_POLICY1 *ikeV2QmTunnelPolicy; 448 IKEEXT_POLICY1 *ikeV2MmPolicy; 449 IPSEC_DOSP_OPTIONS0 *idpOptions; 450 }; 451 UINT64 providerContextId; 452 } FWPM_PROVIDER_CONTEXT1; 453 454 typedef struct FWPM_NET_EVENT_HEADER1_ { 455 FILETIME timeStamp; 456 UINT32 flags; 457 FWP_IP_VERSION ipVersion; 458 UINT8 ipProtocol; 459 __C89_NAMELESS union { 460 UINT32 localAddrV4; 461 FWP_BYTE_ARRAY16 localAddrV6; 462 }; 463 __C89_NAMELESS union { 464 UINT32 remoteAddrV4; 465 FWP_BYTE_ARRAY16 remoteAddrV6; 466 }; 467 UINT16 localPort; 468 UINT16 remotePort; 469 UINT32 scopeId; 470 FWP_BYTE_BLOB appId; 471 SID *userId; 472 __C89_NAMELESS union { 473 __C89_NAMELESS struct { 474 FWP_AF addressFamily; 475 __C89_NAMELESS union { 476 __C89_NAMELESS struct { 477 FWP_BYTE_ARRAY6 dstAddrEth; 478 FWP_BYTE_ARRAY6 srcAddrEth; 479 DL_ADDRESS_TYPE addrType; 480 FWP_ETHER_ENCAP_METHOD encapMethod; 481 UINT16 etherType; 482 UINT32 snapControl; 483 UINT32 snapOui; 484 UINT16 vlanTag; 485 UINT64 ifLuid; 486 }; 487 }; 488 }; 489 }; 490 } FWPM_NET_EVENT_HEADER1; 491 492 #define IKEEXT_CERT_HASH_LEN 20 493 494 typedef struct FWPM_NET_EVENT_IKEEXT_MM_FAILURE1_ { 495 UINT32 failureErrorCode; 496 IPSEC_FAILURE_POINT failurePoint; 497 UINT32 flags; 498 IKEEXT_KEY_MODULE_TYPE keyingModuleType; 499 IKEEXT_MM_SA_STATE mmState; 500 IKEEXT_SA_ROLE saRole; 501 IKEEXT_AUTHENTICATION_METHOD_TYPE mmAuthMethod; 502 UINT8 endCertHash[IKEEXT_CERT_HASH_LEN]; 503 UINT64 mmId; 504 UINT64 mmFilterId; 505 wchar_t *localPrincipalNameForAuth; 506 wchar_t *remotePrincipalNameForAuth; 507 UINT32 numLocalPrincipalGroupSids; 508 LPWSTR *localPrincipalGroupSids; 509 UINT32 numRemotePrincipalGroupSids; 510 LPWSTR *remotePrincipalGroupSids; 511 } FWPM_NET_EVENT_IKEEXT_MM_FAILURE1; 512 513 typedef struct FWPM_NET_EVENT_IKEEXT_EM_FAILURE1_ { 514 UINT32 failureErrorCode; 515 IPSEC_FAILURE_POINT failurePoint; 516 UINT32 flags; 517 IKEEXT_EM_SA_STATE emState; 518 IKEEXT_SA_ROLE saRole; 519 IKEEXT_AUTHENTICATION_METHOD_TYPE emAuthMethod; 520 UINT8 endCertHash[IKEEXT_CERT_HASH_LEN]; 521 UINT64 mmId; 522 UINT64 qmFilterId; 523 wchar_t *localPrincipalNameForAuth; 524 wchar_t *remotePrincipalNameForAuth; 525 UINT32 numLocalPrincipalGroupSids; 526 LPWSTR *localPrincipalGroupSids; 527 UINT32 numRemotePrincipalGroupSids; 528 LPWSTR *remotePrincipalGroupSids; 529 IPSEC_TRAFFIC_TYPE saTrafficType; 530 } FWPM_NET_EVENT_IKEEXT_EM_FAILURE1; 531 532 typedef struct FWPM_NET_EVENT_CLASSIFY_DROP1_ { 533 UINT64 filterId; 534 UINT16 layerId; 535 UINT32 reauthReason; 536 UINT32 originalProfile; 537 UINT32 currentProfile; 538 UINT32 msFwpDirection; 539 BOOL isLoopback; 540 } FWPM_NET_EVENT_CLASSIFY_DROP1; 541 542 typedef struct FWPM_NET_EVENT1_ { 543 FWPM_NET_EVENT_HEADER1 header; 544 FWPM_NET_EVENT_TYPE type; 545 __C89_NAMELESS union { 546 FWPM_NET_EVENT_IKEEXT_MM_FAILURE1 *ikeMmFailure; 547 FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 *ikeQmFailure; 548 FWPM_NET_EVENT_IKEEXT_EM_FAILURE1 *ikeEmFailure; 549 FWPM_NET_EVENT_CLASSIFY_DROP1 *classifyDrop; 550 FWPM_NET_EVENT_IPSEC_KERNEL_DROP0 *ipsecDrop; 551 FWPM_NET_EVENT_IPSEC_DOSP_DROP0 *idpDrop; 552 }; 553 } FWPM_NET_EVENT1; 554 555 typedef struct FWPM_NET_EVENT_SUBSCRIPTION0_ { 556 FWPM_NET_EVENT_ENUM_TEMPLATE0 *enumTemplate; 557 UINT32 flags; 558 GUID sessionKey; 559 } FWPM_NET_EVENT_SUBSCRIPTION0; 560 561 typedef struct FWPM_SYSTEM_PORTS_BY_TYPE0_ { 562 FWPM_SYSTEM_PORT_TYPE type; 563 UINT32 numPorts; 564 UINT16 *ports; 565 } FWPM_SYSTEM_PORTS_BY_TYPE0; 566 567 typedef struct FWPM_SYSTEM_PORTS0_ { 568 UINT32 numTypes; 569 FWPM_SYSTEM_PORTS_BY_TYPE0 *types; 570 } FWPM_SYSTEM_PORTS0; 571 572 #endif /*(_WIN32_WINNT >= 0x0601)*/ 573 #ifdef __cplusplus 574 } 575 #endif 576 577 #endif /*_INC_FWPMTYPES*/ 578