1 /*** Autogenerated by WIDL 4.12.1 from include/iketypes.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 __iketypes_h__ 17 #define __iketypes_h__ 18 19 /* Forward declarations */ 20 21 /* Headers for imported files */ 22 23 #include <fwptypes.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 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 36 37 #define IKEEXT_ERROR_CODE_COUNT (ERROR_IPSEC_IKE_NEG_STATUS_END - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN) 38 39 /* Please keep in sync with winerror.h defines. */ 40 41 #define IKEEXT_CERT_FLAG_ENABLE_ACCOUNT_MAPPING (0x1) 42 #define IKEEXT_CERT_FLAG_DISABLE_REQUEST_PAYLOAD (0x2) 43 #define IKEEXT_CERT_FLAG_USE_NAP_CERTIFICATE (0x4) 44 #define IKEEXT_CERT_FLAG_INTERMEDIATE_CA (0x8) 45 #define IKEEXT_CERT_FLAG_IGNORE_INIT_CERT_MAP_FAILURE (0x10) 46 #define IKEEXT_CERT_FLAG_PREFER_NAP_CERTIFICATE_OUTBOUND (0x20) 47 #if (NTDDI_VERSION >= NTDDI_WIN8) 48 #define IKEEXT_CERT_FLAG_SELECT_NAP_CERTIFICATE (0x40) 49 #define IKEEXT_CERT_FLAG_VERIFY_NAP_CERTIFICATE (0x80) 50 #define IKEEXT_CERT_FLAG_FOLLOW_RENEWAL_CERTIFICATE (0x100) 51 #endif 52 53 #define IKEEXT_CERT_AUTH_FLAG_SSL_ONE_WAY (0x1) 54 #define IKEEXT_CERT_AUTH_FLAG_DISABLE_CRL_CHECK (0x2) 55 #define IKEEXT_CERT_AUTH_ENABLE_CRL_CHECK_STRONG (0x4) 56 #define IKEEXT_CERT_AUTH_DISABLE_SSL_CERT_VALIDATION (0x8) 57 #if (NTDDI_VERSION >= NTDDI_WIN7) 58 #define IKEEXT_CERT_AUTH_ALLOW_HTTP_CERT_LOOKUP (0x10) 59 #define IKEEXT_CERT_AUTH_URL_CONTAINS_BUNDLE (0x20) 60 #endif 61 62 #define IKEEXT_KERB_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION (0x1) 63 #define IKEEXT_KERB_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS (0x2) 64 #if (NTDDI_VERSION >= NTDDI_WIN8) 65 #define IKEEXT_KERB_AUTH_FORCE_PROXY_ON_INITIATOR (0x4) 66 #endif 67 68 #define IKEEXT_RESERVED_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION (0x1) 69 70 #define IKEEXT_NTLM_V2_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS (0x1) 71 72 #define IKEEXT_POLICY_FLAG_DISABLE_DIAGNOSTICS (0x00000001) 73 #define IKEEXT_POLICY_FLAG_NO_MACHINE_LUID_VERIFY (0x00000002) 74 #define IKEEXT_POLICY_FLAG_NO_IMPERSONATION_LUID_VERIFY (0x00000004) 75 #define IKEEXT_POLICY_FLAG_ENABLE_OPTIONAL_DH (0x00000008) 76 77 #define IKEEXT_CERT_CREDENTIAL_FLAG_NAP_CERT (0x1) 78 79 #if (NTDDI_VERSION >= NTDDI_WIN7) 80 #define IKEEXT_PSK_FLAG_LOCAL_AUTH_ONLY (0x1) 81 #define IKEEXT_PSK_FLAG_REMOTE_AUTH_ONLY (0x2) 82 83 #define IKEEXT_EAP_FLAG_LOCAL_AUTH_ONLY (0x1) 84 #define IKEEXT_EAP_FLAG_REMOTE_AUTH_ONLY (0x2) 85 #endif 86 87 #ifndef __IPSEC_V4_UDP_ENCAPSULATION0_FWD_DECLARED 88 #define __IPSEC_V4_UDP_ENCAPSULATION0_FWD_DECLARED 89 typedef struct IPSEC_V4_UDP_ENCAPSULATION0_ IPSEC_V4_UDP_ENCAPSULATION0; 90 #endif 91 92 typedef UINT64 IKEEXT_COOKIE; 93 94 typedef enum IKEEXT_EM_SA_STATE_ { 95 IKEEXT_EM_SA_STATE_NONE = 0, 96 IKEEXT_EM_SA_STATE_SENT_ATTS = 1, 97 IKEEXT_EM_SA_STATE_SSPI_SENT = 2, 98 IKEEXT_EM_SA_STATE_AUTH_COMPLETE = 3, 99 IKEEXT_EM_SA_STATE_FINAL = 4, 100 IKEEXT_EM_SA_STATE_COMPLETE = 5, 101 IKEEXT_EM_SA_STATE_MAX = 6 102 } IKEEXT_EM_SA_STATE; 103 104 typedef enum IKEEXT_SA_ROLE_ { 105 IKEEXT_SA_ROLE_INITIATOR = 0, 106 IKEEXT_SA_ROLE_RESPONDER = 1, 107 IKEEXT_SA_ROLE_MAX = 2 108 } IKEEXT_SA_ROLE; 109 110 typedef enum IKEEXT_AUTHENTICATION_METHOD_TYPE_ { 111 IKEEXT_PRESHARED_KEY = 0, 112 IKEEXT_CERTIFICATE = 1, 113 IKEEXT_KERBEROS = 2, 114 IKEEXT_ANONYMOUS = 3, 115 IKEEXT_SSL = 4, 116 IKEEXT_NTLM_V2 = 5, 117 IKEEXT_IPV6_CGA = 6, 118 IKEEXT_CERTIFICATE_ECDSA_P256 = 7, 119 IKEEXT_CERTIFICATE_ECDSA_P384 = 8, 120 IKEEXT_SSL_ECDSA_P256 = 9, 121 IKEEXT_SSL_ECDSA_P384 = 10, 122 IKEEXT_EAP = 11, 123 IKEEXT_RESERVED = 12, 124 IKEEXT_AUTHENTICATION_METHOD_TYPE_MAX = 13 125 } IKEEXT_AUTHENTICATION_METHOD_TYPE; 126 127 typedef enum IKEEXT_KEY_MODULE_TYPE_ { 128 IKEEXT_KEY_MODULE_IKE = 0, 129 IKEEXT_KEY_MODULE_AUTHIP = 1, 130 IKEEXT_KEY_MODULE_IKEV2 = 2, 131 IKEEXT_KEY_MODULE_MAX = 3 132 } IKEEXT_KEY_MODULE_TYPE; 133 134 typedef enum IKEEXT_MM_SA_STATE_ { 135 IKEEXT_MM_SA_STATE_NONE = 0, 136 IKEEXT_MM_SA_STATE_SA_SENT = 1, 137 IKEEXT_MM_SA_STATE_SSPI_SENT = 2, 138 IKEEXT_MM_SA_STATE_FINAL = 3, 139 IKEEXT_MM_SA_STATE_FINAL_SENT = 4, 140 IKEEXT_MM_SA_STATE_COMPLETE = 5, 141 IKEEXT_MM_SA_STATE_MAX = 6 142 } IKEEXT_MM_SA_STATE; 143 144 typedef enum IKEEXT_QM_SA_STATE_ { 145 IKEEXT_QM_SA_STATE_NONE = 0, 146 IKEEXT_QM_SA_STATE_INITIAL = 1, 147 IKEEXT_QM_SA_STATE_FINAL = 2, 148 IKEEXT_QM_SA_STATE_COMPLETE = 3, 149 IKEEXT_QM_SA_STATE_MAX = 4 150 } IKEEXT_QM_SA_STATE; 151 152 typedef enum IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE_ { 153 IKEEXT_IMPERSONATION_NONE = 0, 154 IKEEXT_IMPERSONATION_SOCKET_PRINCIPAL = 1, 155 IKEEXT_IMPERSONATION_MAX = 2 156 } IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE; 157 158 typedef enum IKEEXT_CERT_CONFIG_TYPE_ { 159 IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST = 0, 160 IKEEXT_CERT_CONFIG_ENTERPRISE_STORE = 1, 161 IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE = 2, 162 IKEEXT_CERT_CONFIG_UNSPECIFIED = 3, 163 IKEEXT_CERT_CONFIG_TYPE_MAX = 4 164 } IKEEXT_CERT_CONFIG_TYPE; 165 166 typedef enum IKEEXT_CIPHER_TYPE_ { 167 IKEEXT_CIPHER_DES = 0, 168 IKEEXT_CIPHER_3DES = 1, 169 IKEEXT_CIPHER_AES_128 = 2, 170 IKEEXT_CIPHER_AES_192 = 3, 171 IKEEXT_CIPHER_AES_256 = 4, 172 IKEEXT_CIPHER_TYPE_MAX = 5 173 } IKEEXT_CIPHER_TYPE; 174 175 typedef enum IKEEXT_INTEGRITY_TYPE_ { 176 IKEEXT_INTEGRITY_MD5 = 0, 177 IKEEXT_INTEGRITY_SHA1 = 1, 178 IKEEXT_INTEGRITY_SHA_256 = 2, 179 IKEEXT_INTEGRITY_SHA_384 = 3, 180 IKEEXT_INTEGRITY_TYPE_MAX = 4 181 } IKEEXT_INTEGRITY_TYPE; 182 183 typedef enum IKEEXT_DH_GROUP_ { 184 IKEEXT_DH_GROUP_NONE = 0, 185 IKEEXT_DH_GROUP_1 = 1, 186 IKEEXT_DH_GROUP_2 = 2, 187 IKEEXT_DH_GROUP_14 = 3, 188 IKEEXT_DH_GROUP_2048 = IKEEXT_DH_GROUP_14, 189 IKEEXT_DH_ECP_256 = 4, 190 IKEEXT_DH_ECP_384 = 5, 191 IKEEXT_DH_GROUP_24 = 6, 192 IKEEXT_DH_GROUP_MAX = 7 193 } IKEEXT_DH_GROUP; 194 195 typedef struct IKEEXT_CERT_ROOT_CONFIG0_ { 196 FWP_BYTE_BLOB certData; 197 UINT32 flags; 198 } IKEEXT_CERT_ROOT_CONFIG0; 199 200 typedef struct IKEEXT_KERBEROS_AUTHENTICATION0__ { 201 UINT32 flags; 202 } IKEEXT_KERBEROS_AUTHENTICATION0; 203 204 typedef struct IKEEXT_NTLM_V2_AUTHENTICATION0__ { 205 UINT32 flags; 206 } IKEEXT_NTLM_V2_AUTHENTICATION0; 207 208 typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION0__ { 209 FWP_BYTE_BLOB presharedKey; 210 } IKEEXT_PRESHARED_KEY_AUTHENTICATION0; 211 212 typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION1__ { 213 FWP_BYTE_BLOB presharedKey; 214 UINT32 flags; 215 } IKEEXT_PRESHARED_KEY_AUTHENTICATION1; 216 217 typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION0_ { 218 IKEEXT_CERT_CONFIG_TYPE inboundConfigType; 219 __C89_NAMELESS union { 220 __C89_NAMELESS struct { 221 UINT32 inboundRootArraySize; 222 IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray; 223 } __C89_NAMELESSSTRUCTNAME; 224 IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig; 225 IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig; 226 } __C89_NAMELESSUNIONNAME1; 227 IKEEXT_CERT_CONFIG_TYPE outboundConfigType; 228 __C89_NAMELESS union { 229 __C89_NAMELESS struct { 230 UINT32 outboundRootArraySize; 231 IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray; 232 } __C89_NAMELESSSTRUCTNAME; 233 IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig; 234 IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig; 235 } __C89_NAMELESSUNIONNAME2; 236 UINT32 flags; 237 } IKEEXT_CERTIFICATE_AUTHENTICATION0; 238 239 #if NTDDI_VERSION >= NTDDI_WIN7 240 typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION1_ { 241 IKEEXT_CERT_CONFIG_TYPE inboundConfigType; 242 __C89_NAMELESS union { 243 __C89_NAMELESS struct { 244 UINT32 inboundRootArraySize; 245 IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray; 246 } __C89_NAMELESSSTRUCTNAME; 247 IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig; 248 IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig; 249 } __C89_NAMELESSUNIONNAME1; 250 IKEEXT_CERT_CONFIG_TYPE outboundConfigType; 251 __C89_NAMELESS union { 252 __C89_NAMELESS struct { 253 UINT32 outboundRootArraySize; 254 IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray; 255 } __C89_NAMELESSSTRUCTNAME; 256 IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig; 257 IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig; 258 } __C89_NAMELESSUNIONNAME2; 259 UINT32 flags; 260 FWP_BYTE_BLOB localCertLocationUrl; 261 } IKEEXT_CERTIFICATE_AUTHENTICATION1; 262 #endif 263 264 #if (NTDDI_VERSION >= NTDDI_WIN8) 265 typedef enum IKEEXT_CERT_CRITERIA_NAME_TYPE_ { 266 IKEEXT_CERT_CRITERIA_DNS = 0, 267 IKEEXT_CERT_CRITERIA_UPN = 1, 268 IKEEXT_CERT_CRITERIA_RFC822 = 2, 269 IKEEXT_CERT_CRITERIA_CN = 3, 270 IKEEXT_CERT_CRITERIA_OU = 4, 271 IKEEXT_CERT_CRITERIA_O = 5, 272 IKEEXT_CERT_CRITERIA_DC = 6, 273 IKEEXT_CERT_CRITERIA_NAME_TYPE_MAX = 7 274 } IKEEXT_CERT_CRITERIA_NAME_TYPE; 275 276 typedef struct IKEEXT_CERT_EKUS0_ { 277 ULONG numEku; 278 LPSTR *eku; 279 } IKEEXT_CERT_EKUS0; 280 281 typedef struct IKEEXT_CERT_NAME0_ { 282 IKEEXT_CERT_CRITERIA_NAME_TYPE nameType; 283 LPWSTR certName; 284 } IKEEXT_CERT_NAME0; 285 286 typedef struct IKEEXT_CERTIFICATE_CRITERIA0_ { 287 FWP_BYTE_BLOB certData; 288 FWP_BYTE_BLOB certHash; 289 IKEEXT_CERT_EKUS0 *eku; 290 IKEEXT_CERT_NAME0 *name; 291 UINT32 flags; 292 } IKEEXT_CERTIFICATE_CRITERIA0; 293 294 typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION2_ { 295 IKEEXT_CERT_CONFIG_TYPE inboundConfigType; 296 __C89_NAMELESS union { 297 __C89_NAMELESS struct { 298 UINT32 inboundRootArraySize; 299 IKEEXT_CERTIFICATE_CRITERIA0 *inboundRootCriteria; 300 } __C89_NAMELESSSTRUCTNAME1; 301 __C89_NAMELESS struct { 302 UINT32 inboundEnterpriseStoreArraySize; 303 IKEEXT_CERTIFICATE_CRITERIA0 *inboundEnterpriseStoreCriteria; 304 } __C89_NAMELESSSTRUCTNAME2; 305 __C89_NAMELESS struct { 306 UINT32 inboundRootStoreArraySize; 307 IKEEXT_CERTIFICATE_CRITERIA0 *inboundTrustedRootStoreCriteria; 308 } __C89_NAMELESSSTRUCTNAME3; 309 } __C89_NAMELESSUNIONNAME1; 310 IKEEXT_CERT_CONFIG_TYPE outboundConfigType; 311 __C89_NAMELESS union { 312 __C89_NAMELESS struct { 313 UINT32 outboundRootArraySize; 314 IKEEXT_CERTIFICATE_CRITERIA0 *outboundRootCriteria; 315 } __C89_NAMELESSSTRUCTNAME1; 316 __C89_NAMELESS struct { 317 UINT32 outboundEnterpriseStoreArraySize; 318 IKEEXT_CERTIFICATE_CRITERIA0 *outboundEnterpriseStoreCriteria; 319 } __C89_NAMELESSSTRUCTNAME2; 320 __C89_NAMELESS struct { 321 UINT32 outboundRootStoreArraySize; 322 IKEEXT_CERTIFICATE_CRITERIA0 *outboundTrustedRootStoreCriteria; 323 } __C89_NAMELESSSTRUCTNAME3; 324 } __C89_NAMELESSUNIONNAME2; 325 UINT32 flags; 326 FWP_BYTE_BLOB localCertLocationUrl; 327 } IKEEXT_CERTIFICATE_AUTHENTICATION2; 328 #endif 329 330 typedef struct IKEEXT_IPV6_CGA_AUTHENTICATION0_ { 331 wchar_t *keyContainerName; 332 wchar_t *cspName; 333 UINT32 cspType; 334 FWP_BYTE_ARRAY16 cgaModifier; 335 BYTE cgaCollisionCount; 336 } IKEEXT_IPV6_CGA_AUTHENTICATION0; 337 338 #if (NTDDI_VERSION >= NTDDI_WIN8) 339 typedef struct IKEEXT_KERBEROS_AUTHENTICATION1__ { 340 UINT32 flags; 341 wchar_t *proxyServer; 342 } IKEEXT_KERBEROS_AUTHENTICATION1; 343 #endif 344 345 typedef struct IKEEXT_RESERVED_AUTHENTICATION0__ { 346 UINT32 flags; 347 } IKEEXT_RESERVED_AUTHENTICATION0; 348 349 #if (NTDDI_VERSION >= NTDDI_WIN7) 350 typedef struct IKEEXT_EAP_AUTHENTICATION0__ { 351 UINT32 flags; 352 } IKEEXT_EAP_AUTHENTICATION0; 353 #endif 354 355 typedef struct IKEEXT_AUTHENTICATION_METHOD0_ { 356 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 357 __C89_NAMELESS union { 358 IKEEXT_PRESHARED_KEY_AUTHENTICATION0 presharedKeyAuthentication; 359 IKEEXT_CERTIFICATE_AUTHENTICATION0 certificateAuthentication; 360 IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication; 361 IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; 362 IKEEXT_CERTIFICATE_AUTHENTICATION0 sslAuthentication; 363 IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; 364 } __C89_NAMELESSUNIONNAME; 365 } IKEEXT_AUTHENTICATION_METHOD0; 366 367 #if (NTDDI_VERSION >= NTDDI_WIN7) 368 typedef struct IKEEXT_AUTHENTICATION_METHOD1_ { 369 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 370 __C89_NAMELESS union { 371 IKEEXT_PRESHARED_KEY_AUTHENTICATION1 presharedKeyAuthentication; 372 IKEEXT_CERTIFICATE_AUTHENTICATION1 certificateAuthentication; 373 IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication; 374 IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; 375 IKEEXT_CERTIFICATE_AUTHENTICATION1 sslAuthentication; 376 IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; 377 IKEEXT_EAP_AUTHENTICATION0 eapAuthentication; 378 } __C89_NAMELESSUNIONNAME; 379 } IKEEXT_AUTHENTICATION_METHOD1; 380 #endif 381 382 #if (NTDDI_VERSION >= NTDDI_WIN8) 383 typedef struct IKEEXT_AUTHENTICATION_METHOD2_ { 384 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 385 __C89_NAMELESS union { 386 IKEEXT_PRESHARED_KEY_AUTHENTICATION1 presharedKeyAuthentication; 387 IKEEXT_CERTIFICATE_AUTHENTICATION2 certificateAuthentication; 388 IKEEXT_KERBEROS_AUTHENTICATION1 kerberosAuthentication; 389 IKEEXT_RESERVED_AUTHENTICATION0 reservedAuthentication; 390 IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; 391 IKEEXT_CERTIFICATE_AUTHENTICATION2 sslAuthentication; 392 IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; 393 IKEEXT_EAP_AUTHENTICATION0 eapAuthentication; 394 } __C89_NAMELESSUNIONNAME; 395 } IKEEXT_AUTHENTICATION_METHOD2; 396 #endif 397 398 typedef struct IKEEXT_CIPHER_ALGORITHM0_ { 399 IKEEXT_CIPHER_TYPE algoIdentifier; 400 UINT32 keyLen; 401 UINT32 rounds; 402 } IKEEXT_CIPHER_ALGORITHM0; 403 404 typedef struct IKEEXT_INTEGRITY_ALGORITHM0_ { 405 IKEEXT_INTEGRITY_TYPE algoIdentifier; 406 } IKEEXT_INTEGRITY_ALGORITHM0; 407 408 typedef struct IKEEXT_PROPOSAL0_ { 409 IKEEXT_CIPHER_ALGORITHM0 cipherAlgorithm; 410 IKEEXT_INTEGRITY_ALGORITHM0 integrityAlgorithm; 411 UINT32 maxLifetimeSeconds; 412 IKEEXT_DH_GROUP dhGroup; 413 UINT32 quickModeLimit; 414 } IKEEXT_PROPOSAL0; 415 416 typedef struct IKEEXT_POLICY0_ { 417 UINT32 softExpirationTime; 418 UINT32 numAuthenticationMethods; 419 IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods; 420 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 421 UINT32 numIkeProposals; 422 IKEEXT_PROPOSAL0 *ikeProposals; 423 UINT32 flags; 424 UINT32 maxDynamicFilters; 425 } IKEEXT_POLICY0; 426 427 #if (NTDDI_VERSION >= NTDDI_WIN7) 428 typedef struct IKEEXT_POLICY1_ { 429 UINT32 softExpirationTime; 430 UINT32 numAuthenticationMethods; 431 IKEEXT_AUTHENTICATION_METHOD1 *authenticationMethods; 432 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 433 UINT32 numIkeProposals; 434 IKEEXT_PROPOSAL0 *ikeProposals; 435 UINT32 flags; 436 UINT32 maxDynamicFilters; 437 UINT32 retransmitDurationSecs; 438 } IKEEXT_POLICY1; 439 #endif 440 441 #if (NTDDI_VERSION >= NTDDI_WIN8) 442 typedef struct IKEEXT_POLICY2_ { 443 UINT32 softExpirationTime; 444 UINT32 numAuthenticationMethods; 445 IKEEXT_AUTHENTICATION_METHOD2 *authenticationMethods; 446 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 447 UINT32 numIkeProposals; 448 IKEEXT_PROPOSAL0 *ikeProposals; 449 UINT32 flags; 450 UINT32 maxDynamicFilters; 451 UINT32 retransmitDurationSecs; 452 } IKEEXT_POLICY2; 453 #endif 454 455 typedef struct IKEEXT_EM_POLICY0_ { 456 UINT32 numAuthenticationMethods; 457 IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods; 458 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 459 } IKEEXT_EM_POLICY0; 460 461 #if (NTDDI_VERSION >= NTDDI_WIN7) 462 typedef struct IKEEXT_EM_POLICY1_ { 463 UINT32 numAuthenticationMethods; 464 IKEEXT_AUTHENTICATION_METHOD1 *authenticationMethods; 465 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 466 } IKEEXT_EM_POLICY1; 467 #endif 468 469 #if (NTDDI_VERSION >= NTDDI_WIN8) 470 typedef struct IKEEXT_EM_POLICY2_ { 471 UINT32 numAuthenticationMethods; 472 IKEEXT_AUTHENTICATION_METHOD2 *authenticationMethods; 473 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; 474 } IKEEXT_EM_POLICY2; 475 #endif 476 477 typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0_ { 478 UINT32 currentActiveMainModes; 479 UINT32 totalMainModesStarted; 480 UINT32 totalSuccessfulMainModes; 481 UINT32 totalFailedMainModes; 482 UINT32 totalResponderMainModes; 483 UINT32 currentNewResponderMainModes; 484 UINT32 currentActiveQuickModes; 485 UINT32 totalQuickModesStarted; 486 UINT32 totalSuccessfulQuickModes; 487 UINT32 totalFailedQuickModes; 488 UINT32 totalAcquires; 489 UINT32 totalReinitAcquires; 490 UINT32 currentActiveExtendedModes; 491 UINT32 totalExtendedModesStarted; 492 UINT32 totalSuccessfulExtendedModes; 493 UINT32 totalFailedExtendedModes; 494 UINT32 totalImpersonationExtendedModes; 495 UINT32 totalImpersonationMainModes; 496 } IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0; 497 498 #if (NTDDI_VERSION >= NTDDI_WIN7) 499 typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1_ { 500 UINT32 currentActiveMainModes; 501 UINT32 totalMainModesStarted; 502 UINT32 totalSuccessfulMainModes; 503 UINT32 totalFailedMainModes; 504 UINT32 totalResponderMainModes; 505 UINT32 currentNewResponderMainModes; 506 UINT32 currentActiveQuickModes; 507 UINT32 totalQuickModesStarted; 508 UINT32 totalSuccessfulQuickModes; 509 UINT32 totalFailedQuickModes; 510 UINT32 totalAcquires; 511 UINT32 totalReinitAcquires; 512 UINT32 currentActiveExtendedModes; 513 UINT32 totalExtendedModesStarted; 514 UINT32 totalSuccessfulExtendedModes; 515 UINT32 totalFailedExtendedModes; 516 UINT32 totalImpersonationExtendedModes; 517 UINT32 totalImpersonationMainModes; 518 } IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1; 519 #endif 520 521 typedef struct IKEEXT_KEYMODULE_STATISTICS0_ { 522 IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics; 523 IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics; 524 UINT32 errorFrequencyTable[97]; 525 UINT32 mainModeNegotiationTime; 526 UINT32 quickModeNegotiationTime; 527 UINT32 extendedModeNegotiationTime; 528 } IKEEXT_KEYMODULE_STATISTICS0; 529 530 #if (NTDDI_VERSION >= NTDDI_WIN7) 531 typedef struct IKEEXT_KEYMODULE_STATISTICS1_ { 532 IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 v4Statistics; 533 IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 v6Statistics; 534 UINT32 errorFrequencyTable[97]; 535 UINT32 mainModeNegotiationTime; 536 UINT32 quickModeNegotiationTime; 537 UINT32 extendedModeNegotiationTime; 538 } IKEEXT_KEYMODULE_STATISTICS1; 539 #endif 540 541 typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0_ { 542 UINT32 totalSocketReceiveFailures; 543 UINT32 totalSocketSendFailures; 544 } IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0; 545 546 #if (NTDDI_VERSION >= NTDDI_WIN7) 547 typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1_ { 548 UINT32 totalSocketReceiveFailures; 549 UINT32 totalSocketSendFailures; 550 } IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1; 551 #endif 552 553 typedef struct IKEEXT_COMMON_STATISTICS0_ { 554 IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics; 555 IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics; 556 UINT32 totalPacketsReceived; 557 UINT32 totalInvalidPacketsReceived; 558 UINT32 currentQueuedWorkitems; 559 } IKEEXT_COMMON_STATISTICS0; 560 561 #if (NTDDI_VERSION >= NTDDI_WIN7) 562 typedef struct IKEEXT_COMMON_STATISTICS1_ { 563 IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 v4Statistics; 564 IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 v6Statistics; 565 UINT32 totalPacketsReceived; 566 UINT32 totalInvalidPacketsReceived; 567 UINT32 currentQueuedWorkitems; 568 } IKEEXT_COMMON_STATISTICS1; 569 #endif 570 571 typedef struct IKEEXT_STATISTICS0_ { 572 IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics; 573 IKEEXT_KEYMODULE_STATISTICS0 authipStatistics; 574 IKEEXT_COMMON_STATISTICS0 commonStatistics; 575 } IKEEXT_STATISTICS0; 576 577 #if (NTDDI_VERSION >= NTDDI_WIN7) 578 typedef struct IKEEXT_STATISTICS1_ { 579 IKEEXT_KEYMODULE_STATISTICS1 ikeStatistics; 580 IKEEXT_KEYMODULE_STATISTICS1 authipStatistics; 581 IKEEXT_KEYMODULE_STATISTICS1 ikeV2Statistics; 582 IKEEXT_COMMON_STATISTICS1 commonStatistics; 583 } IKEEXT_STATISTICS1; 584 #endif 585 586 typedef struct IKEEXT_TRAFFIC0_ { 587 FWP_IP_VERSION ipVersion; 588 __C89_NAMELESS union { 589 UINT32 localV4Address; 590 UINT8 localV6Address[16]; 591 } __C89_NAMELESSUNIONNAME1; 592 __C89_NAMELESS union { 593 UINT32 remoteV4Address; 594 UINT8 remoteV6Address[16]; 595 } __C89_NAMELESSUNIONNAME2; 596 UINT64 authIpFilterId; 597 } IKEEXT_TRAFFIC0; 598 599 typedef struct IKEEXT_COOKIE_PAIR0_ { 600 IKEEXT_COOKIE initiator; 601 IKEEXT_COOKIE responder; 602 } IKEEXT_COOKIE_PAIR0; 603 604 typedef struct IKEEXT_CERTIFICATE_CREDENTIAL0_ { 605 FWP_BYTE_BLOB subjectName; 606 FWP_BYTE_BLOB certHash; 607 UINT32 flags; 608 } IKEEXT_CERTIFICATE_CREDENTIAL0; 609 610 typedef struct IKEEXT_NAME_CREDENTIAL0_ { 611 wchar_t *principalName; 612 } IKEEXT_NAME_CREDENTIAL0; 613 typedef struct IKEEXT_CREDENTIAL0_ { 614 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 615 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; 616 __C89_NAMELESS union { 617 IKEEXT_PRESHARED_KEY_AUTHENTICATION0 *presharedKey; 618 IKEEXT_CERTIFICATE_CREDENTIAL0 *certificate; 619 IKEEXT_NAME_CREDENTIAL0 *name; 620 } __C89_NAMELESSUNIONNAME; 621 } IKEEXT_CREDENTIAL0; 622 623 typedef struct IKEEXT_CREDENTIAL_PAIR0_ { 624 IKEEXT_CREDENTIAL0 localCredentials; 625 IKEEXT_CREDENTIAL0 peerCredentials; 626 } IKEEXT_CREDENTIAL_PAIR0; 627 628 typedef struct IKEEXT_CREDENTIALS0_ { 629 UINT32 numCredentials; 630 IKEEXT_CREDENTIAL_PAIR0 *credentials; 631 } IKEEXT_CREDENTIALS0; 632 633 typedef struct IKEEXT_SA_DETAILS0_ { 634 UINT64 saId; 635 IKEEXT_KEY_MODULE_TYPE keyModuleType; 636 FWP_IP_VERSION ipVersion; 637 __C89_NAMELESS union { 638 IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; 639 } __C89_NAMELESSUNIONNAME; 640 IKEEXT_TRAFFIC0 ikeTraffic; 641 IKEEXT_PROPOSAL0 ikeProposal; 642 IKEEXT_COOKIE_PAIR0 cookiePair; 643 IKEEXT_CREDENTIALS0 ikeCredentials; 644 GUID ikePolicyKey; 645 UINT64 virtualIfTunnelId; 646 } IKEEXT_SA_DETAILS0; 647 648 #if (NTDDI_VERSION >= NTDDI_WIN7) 649 typedef struct IKEEXT_CERTIFICATE_CREDENTIAL1_ { 650 FWP_BYTE_BLOB subjectName; 651 FWP_BYTE_BLOB certHash; 652 UINT32 flags; 653 FWP_BYTE_BLOB certificate; 654 } IKEEXT_CERTIFICATE_CREDENTIAL1; 655 656 typedef struct IKEEXT_CREDENTIAL1_ { 657 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 658 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; 659 __C89_NAMELESS union { 660 IKEEXT_PRESHARED_KEY_AUTHENTICATION1 *presharedKey; 661 IKEEXT_CERTIFICATE_CREDENTIAL1 *certificate; 662 IKEEXT_NAME_CREDENTIAL0 *name; 663 } __C89_NAMELESSUNIONNAME; 664 } IKEEXT_CREDENTIAL1; 665 666 typedef struct IKEEXT_CREDENTIAL_PAIR1_ { 667 IKEEXT_CREDENTIAL1 localCredentials; 668 IKEEXT_CREDENTIAL1 peerCredentials; 669 } IKEEXT_CREDENTIAL_PAIR1; 670 671 typedef struct IKEEXT_CREDENTIALS1_ { 672 UINT32 numCredentials; 673 IKEEXT_CREDENTIAL_PAIR1 *credentials; 674 } IKEEXT_CREDENTIALS1; 675 676 typedef struct IKEEXT_SA_DETAILS1_ { 677 UINT64 saId; 678 IKEEXT_KEY_MODULE_TYPE keyModuleType; 679 FWP_IP_VERSION ipVersion; 680 __C89_NAMELESS union { 681 IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; 682 } __C89_NAMELESSUNIONNAME; 683 IKEEXT_TRAFFIC0 ikeTraffic; 684 IKEEXT_PROPOSAL0 ikeProposal; 685 IKEEXT_COOKIE_PAIR0 cookiePair; 686 IKEEXT_CREDENTIALS1 ikeCredentials; 687 GUID ikePolicyKey; 688 UINT64 virtualIfTunnelId; 689 FWP_BYTE_BLOB correlationKey; 690 } IKEEXT_SA_DETAILS1; 691 #endif 692 693 #if (NTDDI_VERSION >= NTDDI_WIN8) 694 typedef struct IKEEXT_CREDENTIAL2_ { 695 IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; 696 IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; 697 __C89_NAMELESS union { 698 IKEEXT_PRESHARED_KEY_AUTHENTICATION1 *presharedKey; 699 IKEEXT_CERTIFICATE_CREDENTIAL1 *certificate; 700 IKEEXT_NAME_CREDENTIAL0 *name; 701 } __C89_NAMELESSUNIONNAME; 702 } IKEEXT_CREDENTIAL2; 703 704 typedef struct IKEEXT_CREDENTIAL_PAIR2_ { 705 IKEEXT_CREDENTIAL2 localCredentials; 706 IKEEXT_CREDENTIAL2 peerCredentials; 707 } IKEEXT_CREDENTIAL_PAIR2; 708 709 typedef struct IKEEXT_CREDENTIALS2_ { 710 UINT32 numCredentials; 711 IKEEXT_CREDENTIAL_PAIR2 *credentials; 712 } IKEEXT_CREDENTIALS2; 713 714 typedef struct IKEEXT_SA_DETAILS2_ { 715 UINT64 saId; 716 IKEEXT_KEY_MODULE_TYPE keyModuleType; 717 FWP_IP_VERSION ipVersion; 718 __C89_NAMELESS union { 719 IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; 720 } __C89_NAMELESSUNIONNAME; 721 IKEEXT_TRAFFIC0 ikeTraffic; 722 IKEEXT_PROPOSAL0 ikeProposal; 723 IKEEXT_COOKIE_PAIR0 cookiePair; 724 IKEEXT_CREDENTIALS2 ikeCredentials; 725 GUID ikePolicyKey; 726 UINT64 virtualIfTunnelId; 727 FWP_BYTE_BLOB correlationKey; 728 } IKEEXT_SA_DETAILS2; 729 #endif 730 731 typedef struct IKEEXT_SA_ENUM_TEMPLATE0_ { 732 FWP_CONDITION_VALUE0 localSubNet; 733 FWP_CONDITION_VALUE0 remoteSubNet; 734 FWP_BYTE_BLOB localMainModeCertHash; 735 } IKEEXT_SA_ENUM_TEMPLATE0; 736 737 #endif /* WINAPI_PARTITION_DESKTOP. */ 738 /* Begin additional prototypes for all interfaces */ 739 740 741 /* End additional prototypes */ 742 743 #ifdef __cplusplus 744 } 745 #endif 746 747 #endif /* __iketypes_h__ */ 748