1cpp_quote("/**") 2cpp_quote(" * This file is part of the mingw-w64 runtime package.") 3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") 4cpp_quote(" */") 5cpp_quote("") 6cpp_quote("#include <winapifamily.h>") 7cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 8cpp_quote("") 9 10#include "winerror.h" 11import "fwptypes.idl"; 12 13 14cpp_quote("#define IKEEXT_ERROR_CODE_COUNT (ERROR_IPSEC_IKE_NEG_STATUS_END - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN)") 15cpp_quote("") 16cpp_quote("/* Please keep in sync with winerror.h defines. */") 17#define IKEEXT_ERROR_CODE_COUNT 97 18 19cpp_quote("") 20 21cpp_quote("#define IKEEXT_CERT_FLAG_ENABLE_ACCOUNT_MAPPING (0x1)") 22cpp_quote("#define IKEEXT_CERT_FLAG_DISABLE_REQUEST_PAYLOAD (0x2)") 23cpp_quote("#define IKEEXT_CERT_FLAG_USE_NAP_CERTIFICATE (0x4)") 24cpp_quote("#define IKEEXT_CERT_FLAG_INTERMEDIATE_CA (0x8)") 25cpp_quote("#define IKEEXT_CERT_FLAG_IGNORE_INIT_CERT_MAP_FAILURE (0x10)") 26cpp_quote("#define IKEEXT_CERT_FLAG_PREFER_NAP_CERTIFICATE_OUTBOUND (0x20)") 27cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") 28cpp_quote("#define IKEEXT_CERT_FLAG_SELECT_NAP_CERTIFICATE (0x40)") 29cpp_quote("#define IKEEXT_CERT_FLAG_VERIFY_NAP_CERTIFICATE (0x80)") 30cpp_quote("#define IKEEXT_CERT_FLAG_FOLLOW_RENEWAL_CERTIFICATE (0x100)") 31cpp_quote("#endif") 32cpp_quote("") 33 34cpp_quote("#define IKEEXT_CERT_AUTH_FLAG_SSL_ONE_WAY (0x1)") 35cpp_quote("#define IKEEXT_CERT_AUTH_FLAG_DISABLE_CRL_CHECK (0x2)") 36cpp_quote("#define IKEEXT_CERT_AUTH_ENABLE_CRL_CHECK_STRONG (0x4)") 37cpp_quote("#define IKEEXT_CERT_AUTH_DISABLE_SSL_CERT_VALIDATION (0x8)") 38cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 39cpp_quote("#define IKEEXT_CERT_AUTH_ALLOW_HTTP_CERT_LOOKUP (0x10)") 40cpp_quote("#define IKEEXT_CERT_AUTH_URL_CONTAINS_BUNDLE (0x20)") 41cpp_quote("#endif") 42cpp_quote("") 43 44cpp_quote("#define IKEEXT_KERB_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION (0x1)") 45cpp_quote("#define IKEEXT_KERB_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS (0x2)") 46cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") 47cpp_quote("#define IKEEXT_KERB_AUTH_FORCE_PROXY_ON_INITIATOR (0x4)") 48cpp_quote("#endif") 49cpp_quote("") 50 51cpp_quote("#define IKEEXT_RESERVED_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION (0x1)") 52cpp_quote("") 53 54cpp_quote("#define IKEEXT_NTLM_V2_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS (0x1)") 55cpp_quote("") 56 57cpp_quote("#define IKEEXT_POLICY_FLAG_DISABLE_DIAGNOSTICS (0x00000001)") 58cpp_quote("#define IKEEXT_POLICY_FLAG_NO_MACHINE_LUID_VERIFY (0x00000002)") 59cpp_quote("#define IKEEXT_POLICY_FLAG_NO_IMPERSONATION_LUID_VERIFY (0x00000004)") 60cpp_quote("#define IKEEXT_POLICY_FLAG_ENABLE_OPTIONAL_DH (0x00000008)") 61 62cpp_quote("") 63 64cpp_quote("#define IKEEXT_CERT_CREDENTIAL_FLAG_NAP_CERT (0x1)") 65cpp_quote("") 66 67cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 68cpp_quote("#define IKEEXT_PSK_FLAG_LOCAL_AUTH_ONLY (0x1)") 69cpp_quote("#define IKEEXT_PSK_FLAG_REMOTE_AUTH_ONLY (0x2)") 70cpp_quote("") 71cpp_quote("#define IKEEXT_EAP_FLAG_LOCAL_AUTH_ONLY (0x1)") 72cpp_quote("#define IKEEXT_EAP_FLAG_REMOTE_AUTH_ONLY (0x2)") 73cpp_quote("#endif") 74cpp_quote("") 75 76cpp_quote("#ifndef __IPSEC_V4_UDP_ENCAPSULATION0_FWD_DECLARED") 77cpp_quote("#define __IPSEC_V4_UDP_ENCAPSULATION0_FWD_DECLARED") 78typedef struct IPSEC_V4_UDP_ENCAPSULATION0_ IPSEC_V4_UDP_ENCAPSULATION0; 79cpp_quote("#endif") 80cpp_quote("") 81 82typedef UINT64 IKEEXT_COOKIE; 83 84cpp_quote("") 85typedef [v1_enum] enum IKEEXT_EM_SA_STATE_ { 86 IKEEXT_EM_SA_STATE_NONE, 87 IKEEXT_EM_SA_STATE_SENT_ATTS, 88 IKEEXT_EM_SA_STATE_SSPI_SENT, 89 IKEEXT_EM_SA_STATE_AUTH_COMPLETE, 90 IKEEXT_EM_SA_STATE_FINAL, 91 IKEEXT_EM_SA_STATE_COMPLETE, 92 IKEEXT_EM_SA_STATE_MAX 93} IKEEXT_EM_SA_STATE; 94 95cpp_quote("") 96 97typedef [v1_enum] enum IKEEXT_SA_ROLE_ { 98 IKEEXT_SA_ROLE_INITIATOR, 99 IKEEXT_SA_ROLE_RESPONDER, 100 IKEEXT_SA_ROLE_MAX 101} IKEEXT_SA_ROLE; 102 103cpp_quote("") 104 105typedef [v1_enum] enum IKEEXT_AUTHENTICATION_METHOD_TYPE_ { 106 IKEEXT_PRESHARED_KEY, 107 IKEEXT_CERTIFICATE, 108 IKEEXT_KERBEROS, 109 IKEEXT_ANONYMOUS, 110 IKEEXT_SSL, 111 IKEEXT_NTLM_V2, 112 IKEEXT_IPV6_CGA, 113 IKEEXT_CERTIFICATE_ECDSA_P256, 114 IKEEXT_CERTIFICATE_ECDSA_P384, 115 IKEEXT_SSL_ECDSA_P256, 116 IKEEXT_SSL_ECDSA_P384, 117 IKEEXT_EAP, 118 IKEEXT_RESERVED, 119 IKEEXT_AUTHENTICATION_METHOD_TYPE_MAX 120} IKEEXT_AUTHENTICATION_METHOD_TYPE; 121 122cpp_quote("") 123 124typedef [v1_enum] enum IKEEXT_KEY_MODULE_TYPE_ { 125 IKEEXT_KEY_MODULE_IKE, 126 IKEEXT_KEY_MODULE_AUTHIP, 127 IKEEXT_KEY_MODULE_IKEV2, 128 IKEEXT_KEY_MODULE_MAX 129} IKEEXT_KEY_MODULE_TYPE; 130 131cpp_quote("") 132 133typedef [v1_enum] enum IKEEXT_MM_SA_STATE_ { 134 IKEEXT_MM_SA_STATE_NONE, 135 IKEEXT_MM_SA_STATE_SA_SENT, 136 IKEEXT_MM_SA_STATE_SSPI_SENT, 137 IKEEXT_MM_SA_STATE_FINAL, 138 IKEEXT_MM_SA_STATE_FINAL_SENT, 139 IKEEXT_MM_SA_STATE_COMPLETE, 140 IKEEXT_MM_SA_STATE_MAX 141} IKEEXT_MM_SA_STATE; 142 143cpp_quote("") 144 145typedef [v1_enum] enum IKEEXT_QM_SA_STATE_ { 146 IKEEXT_QM_SA_STATE_NONE, 147 IKEEXT_QM_SA_STATE_INITIAL, 148 IKEEXT_QM_SA_STATE_FINAL, 149 IKEEXT_QM_SA_STATE_COMPLETE, 150 IKEEXT_QM_SA_STATE_MAX 151} IKEEXT_QM_SA_STATE; 152 153cpp_quote("") 154 155typedef [v1_enum] enum IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE_ { 156 IKEEXT_IMPERSONATION_NONE, 157 IKEEXT_IMPERSONATION_SOCKET_PRINCIPAL, 158 IKEEXT_IMPERSONATION_MAX 159} IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE; 160 161cpp_quote("") 162 163typedef [v1_enum] enum IKEEXT_CERT_CONFIG_TYPE_ { 164 IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST, 165 IKEEXT_CERT_CONFIG_ENTERPRISE_STORE, 166 IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE, 167 IKEEXT_CERT_CONFIG_UNSPECIFIED, 168 IKEEXT_CERT_CONFIG_TYPE_MAX 169} IKEEXT_CERT_CONFIG_TYPE; 170 171cpp_quote("") 172 173typedef [v1_enum] enum IKEEXT_CIPHER_TYPE_ { 174 IKEEXT_CIPHER_DES, 175 IKEEXT_CIPHER_3DES, 176 IKEEXT_CIPHER_AES_128, 177 IKEEXT_CIPHER_AES_192, 178 IKEEXT_CIPHER_AES_256, 179 IKEEXT_CIPHER_TYPE_MAX 180} IKEEXT_CIPHER_TYPE; 181 182cpp_quote("") 183 184typedef [v1_enum] enum IKEEXT_INTEGRITY_TYPE_ { 185 IKEEXT_INTEGRITY_MD5, 186 IKEEXT_INTEGRITY_SHA1, 187 IKEEXT_INTEGRITY_SHA_256, 188 IKEEXT_INTEGRITY_SHA_384, 189 IKEEXT_INTEGRITY_TYPE_MAX 190} IKEEXT_INTEGRITY_TYPE; 191 192cpp_quote("") 193 194typedef [v1_enum] enum IKEEXT_DH_GROUP_ { 195 IKEEXT_DH_GROUP_NONE, 196 IKEEXT_DH_GROUP_1, 197 IKEEXT_DH_GROUP_2, 198 IKEEXT_DH_GROUP_14, 199 IKEEXT_DH_GROUP_2048 = IKEEXT_DH_GROUP_14, 200 IKEEXT_DH_ECP_256, 201 IKEEXT_DH_ECP_384, 202 IKEEXT_DH_GROUP_24, 203 IKEEXT_DH_GROUP_MAX 204} IKEEXT_DH_GROUP; 205 206cpp_quote("") 207 208typedef struct IKEEXT_CERT_ROOT_CONFIG0_ { 209 FWP_BYTE_BLOB certData; 210 UINT32 flags; 211} IKEEXT_CERT_ROOT_CONFIG0; 212 213cpp_quote("") 214 215typedef struct IKEEXT_KERBEROS_AUTHENTICATION0__ { 216 UINT32 flags; 217} IKEEXT_KERBEROS_AUTHENTICATION0; 218 219cpp_quote("") 220 221typedef struct IKEEXT_NTLM_V2_AUTHENTICATION0__ { 222 UINT32 flags; 223} IKEEXT_NTLM_V2_AUTHENTICATION0; 224 225cpp_quote("") 226 227typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION0__ { 228 FWP_BYTE_BLOB presharedKey; 229} IKEEXT_PRESHARED_KEY_AUTHENTICATION0; 230 231cpp_quote("") 232 233typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION1__ { 234 FWP_BYTE_BLOB presharedKey; 235 UINT32 flags; 236} IKEEXT_PRESHARED_KEY_AUTHENTICATION1; 237cpp_quote("") 238 239typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION0_ { 240 IKEEXT_CERT_CONFIG_TYPE inboundConfigType; 241 [switch_type(IKEEXT_CERT_CONFIG_TYPE), switch_is(inboundConfigType)] 242 union { 243 [case(IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST)] 244 struct { 245 UINT32 inboundRootArraySize; 246 [size_is(inboundRootArraySize), unique] 247 IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray; 248 }; 249 [case(IKEEXT_CERT_CONFIG_ENTERPRISE_STORE)] 250 [unique] IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig; 251 [case(IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE)] 252 [unique] IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig; 253 }; 254 IKEEXT_CERT_CONFIG_TYPE outboundConfigType; 255 [switch_type(IKEEXT_CERT_CONFIG_TYPE), switch_is(outboundConfigType)] 256 union { 257 [case(IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST)] 258 struct { 259 UINT32 outboundRootArraySize; 260 [size_is(outboundRootArraySize), unique] 261 IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray; 262 }; 263 [case(IKEEXT_CERT_CONFIG_ENTERPRISE_STORE)] 264 [unique] IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig; 265 [case(IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE)] 266 [unique] IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig; 267 }; 268 UINT32 flags; 269} IKEEXT_CERTIFICATE_AUTHENTICATION0; 270cpp_quote("") 271 272cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN7") 273typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION1_ { 274 IKEEXT_CERT_CONFIG_TYPE inboundConfigType; 275 [switch_type(IKEEXT_CERT_CONFIG_TYPE), switch_is(inboundConfigType)] 276 union { 277 [case(IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST)] 278 struct { 279 UINT32 inboundRootArraySize; 280 [size_is(inboundRootArraySize), unique] 281 IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray; 282 }; 283 [case(IKEEXT_CERT_CONFIG_ENTERPRISE_STORE)] 284 [unique] IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig; 285 [case(IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE)] 286 [unique] IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig; 287 [case(IKEEXT_CERT_CONFIG_UNSPECIFIED)]; 288 }; 289 IKEEXT_CERT_CONFIG_TYPE outboundConfigType; 290 [switch_type(IKEEXT_CERT_CONFIG_TYPE), switch_is(outboundConfigType)] 291 union { 292 [case(IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST)] 293 struct { 294 UINT32 outboundRootArraySize; 295 [size_is(outboundRootArraySize), unique] 296 IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray; 297 }; 298 [case(IKEEXT_CERT_CONFIG_ENTERPRISE_STORE)] 299 [unique] IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig; 300 [case(IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE)] 301 [unique] IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig; 302 [case(IKEEXT_CERT_CONFIG_UNSPECIFIED)]; 303 }; 304 UINT32 flags; 305 FWP_BYTE_BLOB localCertLocationUrl; 306} IKEEXT_CERTIFICATE_AUTHENTICATION1; 307cpp_quote("#endif") 308cpp_quote("") 309 310cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") 311typedef enum IKEEXT_CERT_CRITERIA_NAME_TYPE_ { 312 IKEEXT_CERT_CRITERIA_DNS, 313 IKEEXT_CERT_CRITERIA_UPN, 314 IKEEXT_CERT_CRITERIA_RFC822, 315 IKEEXT_CERT_CRITERIA_CN, 316 IKEEXT_CERT_CRITERIA_OU, 317 IKEEXT_CERT_CRITERIA_O, 318 IKEEXT_CERT_CRITERIA_DC, 319 IKEEXT_CERT_CRITERIA_NAME_TYPE_MAX 320} IKEEXT_CERT_CRITERIA_NAME_TYPE; 321 322cpp_quote("") 323 324typedef struct IKEEXT_CERT_EKUS0_ { 325 ULONG numEku; 326 [string, size_is(numEku), ref] LPSTR *eku; 327} IKEEXT_CERT_EKUS0; 328 329cpp_quote("") 330 331typedef struct IKEEXT_CERT_NAME0_ { 332 IKEEXT_CERT_CRITERIA_NAME_TYPE nameType; 333 [string, ref] LPWSTR certName; 334} IKEEXT_CERT_NAME0; 335 336cpp_quote("") 337 338typedef struct IKEEXT_CERTIFICATE_CRITERIA0_ { 339 FWP_BYTE_BLOB certData; 340 FWP_BYTE_BLOB certHash; 341 [unique] IKEEXT_CERT_EKUS0 *eku; 342 [unique] IKEEXT_CERT_NAME0 *name; 343 UINT32 flags; 344} IKEEXT_CERTIFICATE_CRITERIA0; 345 346cpp_quote("") 347 348typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION2_ { 349 IKEEXT_CERT_CONFIG_TYPE inboundConfigType; 350 [switch_type(IKEEXT_CERT_CONFIG_TYPE), switch_is(inboundConfigType)] 351 union { 352 [case(IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST)] 353 struct { 354 UINT32 inboundRootArraySize; 355 [size_is(inboundRootArraySize), unique] 356 IKEEXT_CERTIFICATE_CRITERIA0 *inboundRootCriteria; 357 }; 358 [case(IKEEXT_CERT_CONFIG_ENTERPRISE_STORE)] 359 struct { 360 UINT32 inboundEnterpriseStoreArraySize; 361 [size_is(inboundEnterpriseStoreArraySize), unique] 362 IKEEXT_CERTIFICATE_CRITERIA0 *inboundEnterpriseStoreCriteria; 363 }; 364 [case(IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE)] 365 struct { 366 UINT32 inboundRootStoreArraySize; 367 [size_is(inboundRootStoreArraySize), unique] 368 IKEEXT_CERTIFICATE_CRITERIA0 *inboundTrustedRootStoreCriteria; 369 }; 370 [case(IKEEXT_CERT_CONFIG_UNSPECIFIED)]; 371 }; 372 IKEEXT_CERT_CONFIG_TYPE outboundConfigType; 373 [switch_type(IKEEXT_CERT_CONFIG_TYPE), switch_is(outboundConfigType)] 374 union { 375 [case(IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST)] 376 struct { 377 UINT32 outboundRootArraySize; 378 [size_is(outboundRootArraySize), unique] 379 IKEEXT_CERTIFICATE_CRITERIA0 *outboundRootCriteria; 380 }; 381 [case(IKEEXT_CERT_CONFIG_ENTERPRISE_STORE)] 382 struct { 383 UINT32 outboundEnterpriseStoreArraySize; 384 [size_is(outboundEnterpriseStoreArraySize), unique] 385 IKEEXT_CERTIFICATE_CRITERIA0 *outboundEnterpriseStoreCriteria; 386 }; 387 [case(IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE)] 388 struct { 389 UINT32 outboundRootStoreArraySize; 390 [size_is(outboundRootStoreArraySize), unique] 391 IKEEXT_CERTIFICATE_CRITERIA0 *outboundTrustedRootStoreCriteria; 392 }; 393 [case(IKEEXT_CERT_CONFIG_UNSPECIFIED)]; 394 }; 395 UINT32 flags; 396 FWP_BYTE_BLOB localCertLocationUrl; 397} IKEEXT_CERTIFICATE_AUTHENTICATION2; 398cpp_quote("#endif") 399cpp_quote("") 400 401typedef struct IKEEXT_IPV6_CGA_AUTHENTICATION0_ { 402 [string, ref] wchar_t *keyContainerName; 403 [string, unique] wchar_t *cspName; 404 UINT32 cspType; 405 FWP_BYTE_ARRAY16 cgaModifier; 406 BYTE cgaCollisionCount; 407} IKEEXT_IPV6_CGA_AUTHENTICATION0; 408 409cpp_quote("") 410 411cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") 412typedef struct IKEEXT_KERBEROS_AUTHENTICATION1__ { 413 UINT32 flags; 414 [string, unique] wchar_t *proxyServer; 415} IKEEXT_KERBEROS_AUTHENTICATION1; 416cpp_quote("#endif") 417cpp_quote("") 418 419typedef struct IKEEXT_RESERVED_AUTHENTICATION0__ { 420 UINT32 flags; 421} IKEEXT_RESERVED_AUTHENTICATION0; 422 423cpp_quote("") 424 425cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 426typedef struct IKEEXT_EAP_AUTHENTICATION0__ { 427 UINT32 flags; 428} IKEEXT_EAP_AUTHENTICATION0; 429cpp_quote("#endif") 430cpp_quote("") 431 432typedef struct IKEEXT_AUTHENTICATION_METHOD0_ { 433 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 434 [switch_type(IKEEXT_AUTHENTICATION_METHOD_TYPE), 435 switch_is(authenticationMethodType)] 436 union { 437 [case(IKEEXT_PRESHARED_KEY)] 438 IKEEXT_PRESHARED_KEY_AUTHENTICATION0 presharedKeyAuthentication; 439 [case(IKEEXT_CERTIFICATE, 440 IKEEXT_CERTIFICATE_ECDSA_P256, 441 IKEEXT_CERTIFICATE_ECDSA_P384)] 442 IKEEXT_CERTIFICATE_AUTHENTICATION0 certificateAuthentication; 443 [case(IKEEXT_KERBEROS)] 444 IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication; 445 [case(IKEEXT_NTLM_V2)] 446 IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; 447 [case(IKEEXT_ANONYMOUS)]; 448 [case(IKEEXT_SSL, 449 IKEEXT_SSL_ECDSA_P256, 450 IKEEXT_SSL_ECDSA_P384)] 451 IKEEXT_CERTIFICATE_AUTHENTICATION0 sslAuthentication; 452 [case(IKEEXT_IPV6_CGA)] 453 IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; 454 }; 455} IKEEXT_AUTHENTICATION_METHOD0; 456 457cpp_quote("") 458 459cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 460typedef struct IKEEXT_AUTHENTICATION_METHOD1_ { 461 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 462 [switch_type(IKEEXT_AUTHENTICATION_METHOD_TYPE), 463 switch_is(authenticationMethodType)] union { 464 [case(IKEEXT_PRESHARED_KEY)] 465 IKEEXT_PRESHARED_KEY_AUTHENTICATION1 presharedKeyAuthentication; 466 [case(IKEEXT_CERTIFICATE, 467 IKEEXT_CERTIFICATE_ECDSA_P256, 468 IKEEXT_CERTIFICATE_ECDSA_P384)] 469 IKEEXT_CERTIFICATE_AUTHENTICATION1 certificateAuthentication; 470 [case(IKEEXT_KERBEROS)] 471 IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication; 472 [case(IKEEXT_NTLM_V2)] 473 IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; 474 [case(IKEEXT_ANONYMOUS)]; 475 [case(IKEEXT_SSL, 476 IKEEXT_SSL_ECDSA_P256, 477 IKEEXT_SSL_ECDSA_P384)] 478 IKEEXT_CERTIFICATE_AUTHENTICATION1 sslAuthentication; 479 [case(IKEEXT_IPV6_CGA)] 480 IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; 481 [case(IKEEXT_EAP)] 482 IKEEXT_EAP_AUTHENTICATION0 eapAuthentication; 483 }; 484} IKEEXT_AUTHENTICATION_METHOD1; 485cpp_quote("#endif") 486cpp_quote("") 487 488cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") 489typedef struct IKEEXT_AUTHENTICATION_METHOD2_ { 490 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 491 [switch_type(IKEEXT_AUTHENTICATION_METHOD_TYPE), 492 switch_is(authenticationMethodType)] union { 493 [case(IKEEXT_PRESHARED_KEY)] 494 IKEEXT_PRESHARED_KEY_AUTHENTICATION1 presharedKeyAuthentication; 495 [case(IKEEXT_CERTIFICATE, 496 IKEEXT_CERTIFICATE_ECDSA_P256, 497 IKEEXT_CERTIFICATE_ECDSA_P384)] 498 IKEEXT_CERTIFICATE_AUTHENTICATION2 certificateAuthentication; 499 [case(IKEEXT_KERBEROS)] 500 IKEEXT_KERBEROS_AUTHENTICATION1 kerberosAuthentication; 501 [case(IKEEXT_RESERVED)] 502 IKEEXT_RESERVED_AUTHENTICATION0 reservedAuthentication; 503 [case(IKEEXT_NTLM_V2)] 504 IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; 505 [case(IKEEXT_ANONYMOUS)]; 506 [case(IKEEXT_SSL, 507 IKEEXT_SSL_ECDSA_P256, 508 IKEEXT_SSL_ECDSA_P384)] 509 IKEEXT_CERTIFICATE_AUTHENTICATION2 sslAuthentication; 510 [case(IKEEXT_IPV6_CGA)] 511 IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; 512 [case(IKEEXT_EAP)] 513 IKEEXT_EAP_AUTHENTICATION0 eapAuthentication; 514 }; 515} IKEEXT_AUTHENTICATION_METHOD2; 516cpp_quote("#endif") 517cpp_quote("") 518 519typedef struct IKEEXT_CIPHER_ALGORITHM0_ { 520 IKEEXT_CIPHER_TYPE algoIdentifier; 521 UINT32 keyLen; 522 UINT32 rounds; 523} IKEEXT_CIPHER_ALGORITHM0; 524 525cpp_quote("") 526 527typedef struct IKEEXT_INTEGRITY_ALGORITHM0_ { 528 IKEEXT_INTEGRITY_TYPE algoIdentifier; 529} IKEEXT_INTEGRITY_ALGORITHM0; 530 531cpp_quote("") 532 533typedef struct IKEEXT_PROPOSAL0_ { 534 IKEEXT_CIPHER_ALGORITHM0 cipherAlgorithm; 535 IKEEXT_INTEGRITY_ALGORITHM0 integrityAlgorithm; 536 UINT32 maxLifetimeSeconds; 537 IKEEXT_DH_GROUP dhGroup; 538 UINT32 quickModeLimit; 539} IKEEXT_PROPOSAL0; 540 541cpp_quote("") 542 543typedef struct IKEEXT_POLICY0_ { 544 UINT32 softExpirationTime; 545 UINT32 numAuthenticationMethods; 546 [size_is(numAuthenticationMethods), ref] 547 IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods; 548 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 549 UINT32 numIkeProposals; 550 [size_is(numIkeProposals), ref] IKEEXT_PROPOSAL0 *ikeProposals; 551 UINT32 flags; 552 UINT32 maxDynamicFilters; 553} IKEEXT_POLICY0; 554 555cpp_quote("") 556 557cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 558typedef struct IKEEXT_POLICY1_ { 559 UINT32 softExpirationTime; 560 UINT32 numAuthenticationMethods; 561 [size_is(numAuthenticationMethods), ref] 562 IKEEXT_AUTHENTICATION_METHOD1 *authenticationMethods; 563 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 564 UINT32 numIkeProposals; 565 [size_is(numIkeProposals), ref] IKEEXT_PROPOSAL0 *ikeProposals; 566 UINT32 flags; 567 UINT32 maxDynamicFilters; 568 UINT32 retransmitDurationSecs; 569} IKEEXT_POLICY1; 570cpp_quote("#endif") 571 572cpp_quote("") 573 574cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") 575typedef struct IKEEXT_POLICY2_ { 576 UINT32 softExpirationTime; 577 UINT32 numAuthenticationMethods; 578 [size_is(numAuthenticationMethods), ref] 579 IKEEXT_AUTHENTICATION_METHOD2 *authenticationMethods; 580 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 581 UINT32 numIkeProposals; 582 [size_is(numIkeProposals), ref] IKEEXT_PROPOSAL0 *ikeProposals; 583 UINT32 flags; 584 UINT32 maxDynamicFilters; 585 UINT32 retransmitDurationSecs; 586} IKEEXT_POLICY2; 587cpp_quote("#endif") 588cpp_quote("") 589 590typedef struct IKEEXT_EM_POLICY0_ { 591 UINT32 numAuthenticationMethods; 592 [size_is(numAuthenticationMethods), ref] 593 IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods; 594 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 595} IKEEXT_EM_POLICY0; 596 597cpp_quote("") 598 599cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 600typedef struct IKEEXT_EM_POLICY1_ { 601 UINT32 numAuthenticationMethods; 602 [size_is(numAuthenticationMethods), ref] 603 IKEEXT_AUTHENTICATION_METHOD1 *authenticationMethods; 604 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 605} IKEEXT_EM_POLICY1; 606cpp_quote("#endif") 607 608cpp_quote("") 609 610cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") 611typedef struct IKEEXT_EM_POLICY2_ { 612 UINT32 numAuthenticationMethods; 613 [size_is(numAuthenticationMethods), ref] 614 IKEEXT_AUTHENTICATION_METHOD2 *authenticationMethods; 615 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 616} IKEEXT_EM_POLICY2; 617cpp_quote("#endif") 618 619cpp_quote("") 620 621typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0_ { 622 UINT32 currentActiveMainModes; 623 UINT32 totalMainModesStarted; 624 UINT32 totalSuccessfulMainModes; 625 UINT32 totalFailedMainModes; 626 UINT32 totalResponderMainModes; 627 UINT32 currentNewResponderMainModes; 628 UINT32 currentActiveQuickModes; 629 UINT32 totalQuickModesStarted; 630 UINT32 totalSuccessfulQuickModes; 631 UINT32 totalFailedQuickModes; 632 UINT32 totalAcquires; 633 UINT32 totalReinitAcquires; 634 UINT32 currentActiveExtendedModes; 635 UINT32 totalExtendedModesStarted; 636 UINT32 totalSuccessfulExtendedModes; 637 UINT32 totalFailedExtendedModes; 638 UINT32 totalImpersonationExtendedModes; 639 UINT32 totalImpersonationMainModes; 640} IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0; 641 642cpp_quote("") 643 644cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 645typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1_ { 646 UINT32 currentActiveMainModes; 647 UINT32 totalMainModesStarted; 648 UINT32 totalSuccessfulMainModes; 649 UINT32 totalFailedMainModes; 650 UINT32 totalResponderMainModes; 651 UINT32 currentNewResponderMainModes; 652 UINT32 currentActiveQuickModes; 653 UINT32 totalQuickModesStarted; 654 UINT32 totalSuccessfulQuickModes; 655 UINT32 totalFailedQuickModes; 656 UINT32 totalAcquires; 657 UINT32 totalReinitAcquires; 658 UINT32 currentActiveExtendedModes; 659 UINT32 totalExtendedModesStarted; 660 UINT32 totalSuccessfulExtendedModes; 661 UINT32 totalFailedExtendedModes; 662 UINT32 totalImpersonationExtendedModes; 663 UINT32 totalImpersonationMainModes; 664} IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1; 665cpp_quote("#endif") 666 667cpp_quote("") 668 669typedef struct IKEEXT_KEYMODULE_STATISTICS0_ { 670 IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics; 671 IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics; 672 UINT32 errorFrequencyTable[IKEEXT_ERROR_CODE_COUNT]; 673 UINT32 mainModeNegotiationTime; 674 UINT32 quickModeNegotiationTime; 675 UINT32 extendedModeNegotiationTime; 676} IKEEXT_KEYMODULE_STATISTICS0; 677 678cpp_quote("") 679 680cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 681typedef struct IKEEXT_KEYMODULE_STATISTICS1_ { 682 IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 v4Statistics; 683 IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 v6Statistics; 684 UINT32 errorFrequencyTable[IKEEXT_ERROR_CODE_COUNT]; 685 UINT32 mainModeNegotiationTime; 686 UINT32 quickModeNegotiationTime; 687 UINT32 extendedModeNegotiationTime; 688} IKEEXT_KEYMODULE_STATISTICS1; 689cpp_quote("#endif") 690 691cpp_quote("") 692 693typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0_ { 694 UINT32 totalSocketReceiveFailures; 695 UINT32 totalSocketSendFailures; 696} IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0; 697 698cpp_quote("") 699 700cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 701typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1_ { 702 UINT32 totalSocketReceiveFailures; 703 UINT32 totalSocketSendFailures; 704} IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1; 705cpp_quote("#endif") 706 707cpp_quote("") 708 709typedef struct IKEEXT_COMMON_STATISTICS0_ { 710 IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics; 711 IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics; 712 UINT32 totalPacketsReceived; 713 UINT32 totalInvalidPacketsReceived; 714 UINT32 currentQueuedWorkitems; 715} IKEEXT_COMMON_STATISTICS0; 716 717cpp_quote("") 718cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 719typedef struct IKEEXT_COMMON_STATISTICS1_ { 720 IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 v4Statistics; 721 IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 v6Statistics; 722 UINT32 totalPacketsReceived; 723 UINT32 totalInvalidPacketsReceived; 724 UINT32 currentQueuedWorkitems; 725} IKEEXT_COMMON_STATISTICS1; 726cpp_quote("#endif") 727 728cpp_quote("") 729typedef struct IKEEXT_STATISTICS0_ { 730 IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics; 731 IKEEXT_KEYMODULE_STATISTICS0 authipStatistics; 732 IKEEXT_COMMON_STATISTICS0 commonStatistics; 733} IKEEXT_STATISTICS0; 734 735cpp_quote("") 736cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 737typedef struct IKEEXT_STATISTICS1_ { 738 IKEEXT_KEYMODULE_STATISTICS1 ikeStatistics; 739 IKEEXT_KEYMODULE_STATISTICS1 authipStatistics; 740 IKEEXT_KEYMODULE_STATISTICS1 ikeV2Statistics; 741 IKEEXT_COMMON_STATISTICS1 commonStatistics; 742} IKEEXT_STATISTICS1; 743cpp_quote("#endif") 744 745cpp_quote("") 746 747typedef struct IKEEXT_TRAFFIC0_ { 748 FWP_IP_VERSION ipVersion; 749 [switch_type(FWP_IP_VERSION), switch_is(ipVersion)] union { 750 [case(FWP_IP_VERSION_V4)] 751 UINT32 localV4Address; 752 [case(FWP_IP_VERSION_V6)] 753 UINT8 localV6Address[16]; 754 }; 755 [switch_type(FWP_IP_VERSION), switch_is(ipVersion)] union { 756 [case(FWP_IP_VERSION_V4)] 757 UINT32 remoteV4Address; 758 [case(FWP_IP_VERSION_V6)] 759 UINT8 remoteV6Address[16]; 760 }; 761 UINT64 authIpFilterId; 762} IKEEXT_TRAFFIC0; 763 764cpp_quote("") 765 766typedef struct IKEEXT_COOKIE_PAIR0_ { 767 IKEEXT_COOKIE initiator; 768 IKEEXT_COOKIE responder; 769} IKEEXT_COOKIE_PAIR0; 770 771cpp_quote("") 772 773typedef struct IKEEXT_CERTIFICATE_CREDENTIAL0_ { 774 FWP_BYTE_BLOB subjectName; 775 FWP_BYTE_BLOB certHash; 776 UINT32 flags; 777} IKEEXT_CERTIFICATE_CREDENTIAL0; 778 779cpp_quote("") 780 781typedef struct IKEEXT_NAME_CREDENTIAL0_ { 782 [string, ref] wchar_t *principalName; 783} IKEEXT_NAME_CREDENTIAL0; 784 785typedef struct IKEEXT_CREDENTIAL0_ { 786 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 787 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; 788 [switch_type(IKEEXT_AUTHENTICATION_METHOD_TYPE), 789 switch_is(authenticationMethodType)] union { 790 [case(IKEEXT_PRESHARED_KEY)] 791 [unique] IKEEXT_PRESHARED_KEY_AUTHENTICATION0 *presharedKey; 792 [case(IKEEXT_CERTIFICATE, 793 IKEEXT_CERTIFICATE_ECDSA_P256, 794 IKEEXT_CERTIFICATE_ECDSA_P384, 795 IKEEXT_SSL, 796 IKEEXT_SSL_ECDSA_P256, 797 IKEEXT_SSL_ECDSA_P384, 798 IKEEXT_IPV6_CGA 799 )] 800 [unique] IKEEXT_CERTIFICATE_CREDENTIAL0 *certificate; 801 [case(IKEEXT_KERBEROS, 802 IKEEXT_EAP, 803 IKEEXT_NTLM_V2)] 804 [unique] IKEEXT_NAME_CREDENTIAL0 *name; 805 [case(IKEEXT_ANONYMOUS)]; 806 }; 807} IKEEXT_CREDENTIAL0; 808 809cpp_quote("") 810 811typedef struct IKEEXT_CREDENTIAL_PAIR0_ { 812 IKEEXT_CREDENTIAL0 localCredentials; 813 IKEEXT_CREDENTIAL0 peerCredentials; 814} IKEEXT_CREDENTIAL_PAIR0; 815 816cpp_quote("") 817 818typedef struct IKEEXT_CREDENTIALS0_ { 819 UINT32 numCredentials; 820 [size_is(numCredentials), ref] IKEEXT_CREDENTIAL_PAIR0 *credentials; 821} IKEEXT_CREDENTIALS0; 822 823cpp_quote("") 824 825typedef struct IKEEXT_SA_DETAILS0_ { 826 UINT64 saId; 827 IKEEXT_KEY_MODULE_TYPE keyModuleType; 828 FWP_IP_VERSION ipVersion; 829 [switch_type(FWP_IP_VERSION), switch_is(ipVersion)] union { 830 [case(FWP_IP_VERSION_V4)] 831 [unique] IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; 832 [case(FWP_IP_VERSION_V6)]; 833 }; 834 IKEEXT_TRAFFIC0 ikeTraffic; 835 IKEEXT_PROPOSAL0 ikeProposal; 836 IKEEXT_COOKIE_PAIR0 cookiePair; 837 IKEEXT_CREDENTIALS0 ikeCredentials; 838 GUID ikePolicyKey; 839 UINT64 virtualIfTunnelId; 840} IKEEXT_SA_DETAILS0; 841 842cpp_quote("") 843cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") 844typedef struct IKEEXT_CERTIFICATE_CREDENTIAL1_ { 845 FWP_BYTE_BLOB subjectName; 846 FWP_BYTE_BLOB certHash; 847 UINT32 flags; 848 FWP_BYTE_BLOB certificate; 849} IKEEXT_CERTIFICATE_CREDENTIAL1; 850 851cpp_quote("") 852 853typedef struct IKEEXT_CREDENTIAL1_ { 854 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 855 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; 856 [switch_type(IKEEXT_AUTHENTICATION_METHOD_TYPE), 857 switch_is(authenticationMethodType)] union { 858 [case(IKEEXT_PRESHARED_KEY)] 859 [unique] IKEEXT_PRESHARED_KEY_AUTHENTICATION1 *presharedKey; 860 [case(IKEEXT_CERTIFICATE, 861 IKEEXT_CERTIFICATE_ECDSA_P256, 862 IKEEXT_CERTIFICATE_ECDSA_P384, 863 IKEEXT_SSL, 864 IKEEXT_SSL_ECDSA_P256, 865 IKEEXT_SSL_ECDSA_P384, 866 IKEEXT_IPV6_CGA 867 )] 868 [unique] IKEEXT_CERTIFICATE_CREDENTIAL1 *certificate; 869 [case(IKEEXT_KERBEROS, 870 IKEEXT_EAP, 871 IKEEXT_NTLM_V2)] 872 [unique] IKEEXT_NAME_CREDENTIAL0 *name; 873 [case(IKEEXT_ANONYMOUS)]; 874 }; 875} IKEEXT_CREDENTIAL1; 876 877cpp_quote("") 878 879typedef struct IKEEXT_CREDENTIAL_PAIR1_ { 880 IKEEXT_CREDENTIAL1 localCredentials; 881 IKEEXT_CREDENTIAL1 peerCredentials; 882} IKEEXT_CREDENTIAL_PAIR1; 883 884cpp_quote("") 885 886typedef struct IKEEXT_CREDENTIALS1_ { 887 UINT32 numCredentials; 888 [size_is(numCredentials), ref] IKEEXT_CREDENTIAL_PAIR1 *credentials; 889} IKEEXT_CREDENTIALS1; 890 891cpp_quote("") 892 893typedef struct IKEEXT_SA_DETAILS1_ { 894 UINT64 saId; 895 IKEEXT_KEY_MODULE_TYPE keyModuleType; 896 FWP_IP_VERSION ipVersion; 897 [switch_type(FWP_IP_VERSION), switch_is(ipVersion)] union { 898 [case(FWP_IP_VERSION_V4)] 899 [unique] IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; 900 [case(FWP_IP_VERSION_V6)]; 901 }; 902 IKEEXT_TRAFFIC0 ikeTraffic; 903 IKEEXT_PROPOSAL0 ikeProposal; 904 IKEEXT_COOKIE_PAIR0 cookiePair; 905 IKEEXT_CREDENTIALS1 ikeCredentials; 906 GUID ikePolicyKey; 907 UINT64 virtualIfTunnelId; 908 FWP_BYTE_BLOB correlationKey; 909} IKEEXT_SA_DETAILS1; 910cpp_quote("#endif") 911 912cpp_quote("") 913 914cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") 915typedef struct IKEEXT_CREDENTIAL2_ { 916 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 917 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; 918 [switch_type(IKEEXT_AUTHENTICATION_METHOD_TYPE), 919 switch_is(authenticationMethodType)] union 920 { 921 [case(IKEEXT_PRESHARED_KEY)] 922 [unique] IKEEXT_PRESHARED_KEY_AUTHENTICATION1 *presharedKey; 923 [case(IKEEXT_CERTIFICATE, 924 IKEEXT_CERTIFICATE_ECDSA_P256, 925 IKEEXT_CERTIFICATE_ECDSA_P384, 926 IKEEXT_SSL, 927 IKEEXT_SSL_ECDSA_P256, 928 IKEEXT_SSL_ECDSA_P384, 929 IKEEXT_IPV6_CGA 930 )] 931 [unique] IKEEXT_CERTIFICATE_CREDENTIAL1 *certificate; 932 [case(IKEEXT_KERBEROS, 933 IKEEXT_EAP, 934 IKEEXT_NTLM_V2, 935 IKEEXT_RESERVED)] 936 [unique] IKEEXT_NAME_CREDENTIAL0 *name; 937 [case(IKEEXT_ANONYMOUS)]; 938 }; 939} IKEEXT_CREDENTIAL2; 940 941cpp_quote("") 942 943typedef struct IKEEXT_CREDENTIAL_PAIR2_ { 944 IKEEXT_CREDENTIAL2 localCredentials; 945 IKEEXT_CREDENTIAL2 peerCredentials; 946} IKEEXT_CREDENTIAL_PAIR2; 947 948cpp_quote("") 949 950typedef struct IKEEXT_CREDENTIALS2_ { 951 UINT32 numCredentials; 952 [size_is(numCredentials), ref] IKEEXT_CREDENTIAL_PAIR2 *credentials; 953} IKEEXT_CREDENTIALS2; 954 955cpp_quote("") 956 957typedef struct IKEEXT_SA_DETAILS2_ { 958 UINT64 saId; 959 IKEEXT_KEY_MODULE_TYPE keyModuleType; 960 FWP_IP_VERSION ipVersion; 961 [switch_type(FWP_IP_VERSION), switch_is(ipVersion)] union { 962 [case(FWP_IP_VERSION_V4)] 963 [unique] IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; 964 [case(FWP_IP_VERSION_V6)]; 965 }; 966 IKEEXT_TRAFFIC0 ikeTraffic; 967 IKEEXT_PROPOSAL0 ikeProposal; 968 IKEEXT_COOKIE_PAIR0 cookiePair; 969 IKEEXT_CREDENTIALS2 ikeCredentials; 970 GUID ikePolicyKey; 971 UINT64 virtualIfTunnelId; 972 FWP_BYTE_BLOB correlationKey; 973} IKEEXT_SA_DETAILS2; 974cpp_quote("#endif") 975 976cpp_quote("") 977 978typedef struct IKEEXT_SA_ENUM_TEMPLATE0_ { 979 FWP_CONDITION_VALUE0 localSubNet; 980 FWP_CONDITION_VALUE0 remoteSubNet; 981 FWP_BYTE_BLOB localMainModeCertHash; 982} IKEEXT_SA_ENUM_TEMPLATE0; 983 984cpp_quote("") 985cpp_quote("#endif /* WINAPI_PARTITION_DESKTOP. */") 986