| /*** Autogenerated by WIDL 4.12.1 from include/iketypes.idl - Do not edit ***/ | 
 |  | 
 | #ifdef _WIN32 | 
 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | 
 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | 
 | #endif | 
 | #include <rpc.h> | 
 | #include <rpcndr.h> | 
 | #endif | 
 |  | 
 | #ifndef COM_NO_WINDOWS_H | 
 | #include <windows.h> | 
 | #include <ole2.h> | 
 | #endif | 
 |  | 
 | #ifndef __iketypes_h__ | 
 | #define __iketypes_h__ | 
 |  | 
 | /* Forward declarations */ | 
 |  | 
 | /* Headers for imported files */ | 
 |  | 
 | #include <fwptypes.h> | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | /** | 
 |  * This file is part of the mingw-w64 runtime package. | 
 |  * No warranty is given; refer to the file DISCLAIMER within this package. | 
 |  */ | 
 |  | 
 | #include <winapifamily.h> | 
 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) | 
 |  | 
 | #define IKEEXT_ERROR_CODE_COUNT (ERROR_IPSEC_IKE_NEG_STATUS_END - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN) | 
 |  | 
 | /* Please keep in sync with winerror.h defines.  */ | 
 |  | 
 | #define IKEEXT_CERT_FLAG_ENABLE_ACCOUNT_MAPPING          (0x1) | 
 | #define IKEEXT_CERT_FLAG_DISABLE_REQUEST_PAYLOAD         (0x2) | 
 | #define IKEEXT_CERT_FLAG_USE_NAP_CERTIFICATE             (0x4) | 
 | #define IKEEXT_CERT_FLAG_INTERMEDIATE_CA                 (0x8) | 
 | #define IKEEXT_CERT_FLAG_IGNORE_INIT_CERT_MAP_FAILURE    (0x10) | 
 | #define IKEEXT_CERT_FLAG_PREFER_NAP_CERTIFICATE_OUTBOUND (0x20) | 
 | #if (NTDDI_VERSION >= NTDDI_WIN8) | 
 | #define IKEEXT_CERT_FLAG_SELECT_NAP_CERTIFICATE          (0x40) | 
 | #define IKEEXT_CERT_FLAG_VERIFY_NAP_CERTIFICATE          (0x80) | 
 | #define IKEEXT_CERT_FLAG_FOLLOW_RENEWAL_CERTIFICATE      (0x100) | 
 | #endif | 
 |  | 
 | #define IKEEXT_CERT_AUTH_FLAG_SSL_ONE_WAY            (0x1) | 
 | #define IKEEXT_CERT_AUTH_FLAG_DISABLE_CRL_CHECK      (0x2) | 
 | #define IKEEXT_CERT_AUTH_ENABLE_CRL_CHECK_STRONG     (0x4) | 
 | #define IKEEXT_CERT_AUTH_DISABLE_SSL_CERT_VALIDATION (0x8) | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | #define IKEEXT_CERT_AUTH_ALLOW_HTTP_CERT_LOOKUP      (0x10) | 
 | #define IKEEXT_CERT_AUTH_URL_CONTAINS_BUNDLE         (0x20) | 
 | #endif | 
 |  | 
 | #define IKEEXT_KERB_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION (0x1) | 
 | #define IKEEXT_KERB_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS   (0x2) | 
 | #if (NTDDI_VERSION >= NTDDI_WIN8) | 
 | #define IKEEXT_KERB_AUTH_FORCE_PROXY_ON_INITIATOR           (0x4) | 
 | #endif | 
 |  | 
 | #define IKEEXT_RESERVED_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION (0x1) | 
 |  | 
 | #define IKEEXT_NTLM_V2_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS (0x1) | 
 |  | 
 | #define IKEEXT_POLICY_FLAG_DISABLE_DIAGNOSTICS (0x00000001) | 
 | #define IKEEXT_POLICY_FLAG_NO_MACHINE_LUID_VERIFY (0x00000002) | 
 | #define IKEEXT_POLICY_FLAG_NO_IMPERSONATION_LUID_VERIFY (0x00000004) | 
 | #define IKEEXT_POLICY_FLAG_ENABLE_OPTIONAL_DH (0x00000008) | 
 |  | 
 | #define IKEEXT_CERT_CREDENTIAL_FLAG_NAP_CERT (0x1) | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | #define IKEEXT_PSK_FLAG_LOCAL_AUTH_ONLY  (0x1) | 
 | #define IKEEXT_PSK_FLAG_REMOTE_AUTH_ONLY (0x2) | 
 |  | 
 | #define IKEEXT_EAP_FLAG_LOCAL_AUTH_ONLY   (0x1) | 
 | #define IKEEXT_EAP_FLAG_REMOTE_AUTH_ONLY  (0x2) | 
 | #endif | 
 |  | 
 | #ifndef __IPSEC_V4_UDP_ENCAPSULATION0_FWD_DECLARED | 
 | #define __IPSEC_V4_UDP_ENCAPSULATION0_FWD_DECLARED | 
 | typedef struct IPSEC_V4_UDP_ENCAPSULATION0_ IPSEC_V4_UDP_ENCAPSULATION0; | 
 | #endif | 
 |  | 
 | typedef UINT64 IKEEXT_COOKIE; | 
 |  | 
 | typedef enum IKEEXT_EM_SA_STATE_ { | 
 |     IKEEXT_EM_SA_STATE_NONE = 0, | 
 |     IKEEXT_EM_SA_STATE_SENT_ATTS = 1, | 
 |     IKEEXT_EM_SA_STATE_SSPI_SENT = 2, | 
 |     IKEEXT_EM_SA_STATE_AUTH_COMPLETE = 3, | 
 |     IKEEXT_EM_SA_STATE_FINAL = 4, | 
 |     IKEEXT_EM_SA_STATE_COMPLETE = 5, | 
 |     IKEEXT_EM_SA_STATE_MAX = 6 | 
 | } IKEEXT_EM_SA_STATE; | 
 |  | 
 | typedef enum IKEEXT_SA_ROLE_ { | 
 |     IKEEXT_SA_ROLE_INITIATOR = 0, | 
 |     IKEEXT_SA_ROLE_RESPONDER = 1, | 
 |     IKEEXT_SA_ROLE_MAX = 2 | 
 | } IKEEXT_SA_ROLE; | 
 |  | 
 | typedef enum IKEEXT_AUTHENTICATION_METHOD_TYPE_ { | 
 |     IKEEXT_PRESHARED_KEY = 0, | 
 |     IKEEXT_CERTIFICATE = 1, | 
 |     IKEEXT_KERBEROS = 2, | 
 |     IKEEXT_ANONYMOUS = 3, | 
 |     IKEEXT_SSL = 4, | 
 |     IKEEXT_NTLM_V2 = 5, | 
 |     IKEEXT_IPV6_CGA = 6, | 
 |     IKEEXT_CERTIFICATE_ECDSA_P256 = 7, | 
 |     IKEEXT_CERTIFICATE_ECDSA_P384 = 8, | 
 |     IKEEXT_SSL_ECDSA_P256 = 9, | 
 |     IKEEXT_SSL_ECDSA_P384 = 10, | 
 |     IKEEXT_EAP = 11, | 
 |     IKEEXT_RESERVED = 12, | 
 |     IKEEXT_AUTHENTICATION_METHOD_TYPE_MAX = 13 | 
 | } IKEEXT_AUTHENTICATION_METHOD_TYPE; | 
 |  | 
 | typedef enum IKEEXT_KEY_MODULE_TYPE_ { | 
 |     IKEEXT_KEY_MODULE_IKE = 0, | 
 |     IKEEXT_KEY_MODULE_AUTHIP = 1, | 
 |     IKEEXT_KEY_MODULE_IKEV2 = 2, | 
 |     IKEEXT_KEY_MODULE_MAX = 3 | 
 | } IKEEXT_KEY_MODULE_TYPE; | 
 |  | 
 | typedef enum IKEEXT_MM_SA_STATE_ { | 
 |     IKEEXT_MM_SA_STATE_NONE = 0, | 
 |     IKEEXT_MM_SA_STATE_SA_SENT = 1, | 
 |     IKEEXT_MM_SA_STATE_SSPI_SENT = 2, | 
 |     IKEEXT_MM_SA_STATE_FINAL = 3, | 
 |     IKEEXT_MM_SA_STATE_FINAL_SENT = 4, | 
 |     IKEEXT_MM_SA_STATE_COMPLETE = 5, | 
 |     IKEEXT_MM_SA_STATE_MAX = 6 | 
 | } IKEEXT_MM_SA_STATE; | 
 |  | 
 | typedef enum IKEEXT_QM_SA_STATE_ { | 
 |     IKEEXT_QM_SA_STATE_NONE = 0, | 
 |     IKEEXT_QM_SA_STATE_INITIAL = 1, | 
 |     IKEEXT_QM_SA_STATE_FINAL = 2, | 
 |     IKEEXT_QM_SA_STATE_COMPLETE = 3, | 
 |     IKEEXT_QM_SA_STATE_MAX = 4 | 
 | } IKEEXT_QM_SA_STATE; | 
 |  | 
 | typedef enum IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE_ { | 
 |     IKEEXT_IMPERSONATION_NONE = 0, | 
 |     IKEEXT_IMPERSONATION_SOCKET_PRINCIPAL = 1, | 
 |     IKEEXT_IMPERSONATION_MAX = 2 | 
 | } IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE; | 
 |  | 
 | typedef enum IKEEXT_CERT_CONFIG_TYPE_ { | 
 |     IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST = 0, | 
 |     IKEEXT_CERT_CONFIG_ENTERPRISE_STORE = 1, | 
 |     IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE = 2, | 
 |     IKEEXT_CERT_CONFIG_UNSPECIFIED = 3, | 
 |     IKEEXT_CERT_CONFIG_TYPE_MAX = 4 | 
 | } IKEEXT_CERT_CONFIG_TYPE; | 
 |  | 
 | typedef enum IKEEXT_CIPHER_TYPE_ { | 
 |     IKEEXT_CIPHER_DES = 0, | 
 |     IKEEXT_CIPHER_3DES = 1, | 
 |     IKEEXT_CIPHER_AES_128 = 2, | 
 |     IKEEXT_CIPHER_AES_192 = 3, | 
 |     IKEEXT_CIPHER_AES_256 = 4, | 
 |     IKEEXT_CIPHER_TYPE_MAX = 5 | 
 | } IKEEXT_CIPHER_TYPE; | 
 |  | 
 | typedef enum IKEEXT_INTEGRITY_TYPE_ { | 
 |     IKEEXT_INTEGRITY_MD5 = 0, | 
 |     IKEEXT_INTEGRITY_SHA1 = 1, | 
 |     IKEEXT_INTEGRITY_SHA_256 = 2, | 
 |     IKEEXT_INTEGRITY_SHA_384 = 3, | 
 |     IKEEXT_INTEGRITY_TYPE_MAX = 4 | 
 | } IKEEXT_INTEGRITY_TYPE; | 
 |  | 
 | typedef enum IKEEXT_DH_GROUP_ { | 
 |     IKEEXT_DH_GROUP_NONE = 0, | 
 |     IKEEXT_DH_GROUP_1 = 1, | 
 |     IKEEXT_DH_GROUP_2 = 2, | 
 |     IKEEXT_DH_GROUP_14 = 3, | 
 |     IKEEXT_DH_GROUP_2048 = IKEEXT_DH_GROUP_14, | 
 |     IKEEXT_DH_ECP_256 = 4, | 
 |     IKEEXT_DH_ECP_384 = 5, | 
 |     IKEEXT_DH_GROUP_24 = 6, | 
 |     IKEEXT_DH_GROUP_MAX = 7 | 
 | } IKEEXT_DH_GROUP; | 
 |  | 
 | typedef struct IKEEXT_CERT_ROOT_CONFIG0_ { | 
 |     FWP_BYTE_BLOB certData; | 
 |     UINT32 flags; | 
 | } IKEEXT_CERT_ROOT_CONFIG0; | 
 |  | 
 | typedef struct IKEEXT_KERBEROS_AUTHENTICATION0__ { | 
 |     UINT32 flags; | 
 | } IKEEXT_KERBEROS_AUTHENTICATION0; | 
 |  | 
 | typedef struct IKEEXT_NTLM_V2_AUTHENTICATION0__ { | 
 |     UINT32 flags; | 
 | } IKEEXT_NTLM_V2_AUTHENTICATION0; | 
 |  | 
 | typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION0__ { | 
 |     FWP_BYTE_BLOB presharedKey; | 
 | } IKEEXT_PRESHARED_KEY_AUTHENTICATION0; | 
 |  | 
 | typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION1__ { | 
 |     FWP_BYTE_BLOB presharedKey; | 
 |     UINT32 flags; | 
 | } IKEEXT_PRESHARED_KEY_AUTHENTICATION1; | 
 |  | 
 | typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION0_ { | 
 |     IKEEXT_CERT_CONFIG_TYPE inboundConfigType; | 
 |     __C89_NAMELESS union { | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 inboundRootArraySize; | 
 |             IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray; | 
 |         } __C89_NAMELESSSTRUCTNAME; | 
 |         IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig; | 
 |         IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig; | 
 |     } __C89_NAMELESSUNIONNAME1; | 
 |     IKEEXT_CERT_CONFIG_TYPE outboundConfigType; | 
 |     __C89_NAMELESS union { | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 outboundRootArraySize; | 
 |             IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray; | 
 |         } __C89_NAMELESSSTRUCTNAME; | 
 |         IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig; | 
 |         IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig; | 
 |     } __C89_NAMELESSUNIONNAME2; | 
 |     UINT32 flags; | 
 | } IKEEXT_CERTIFICATE_AUTHENTICATION0; | 
 |  | 
 | #if NTDDI_VERSION >= NTDDI_WIN7 | 
 | typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION1_ { | 
 |     IKEEXT_CERT_CONFIG_TYPE inboundConfigType; | 
 |     __C89_NAMELESS union { | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 inboundRootArraySize; | 
 |             IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray; | 
 |         } __C89_NAMELESSSTRUCTNAME; | 
 |         IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig; | 
 |         IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig; | 
 |     } __C89_NAMELESSUNIONNAME1; | 
 |     IKEEXT_CERT_CONFIG_TYPE outboundConfigType; | 
 |     __C89_NAMELESS union { | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 outboundRootArraySize; | 
 |             IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray; | 
 |         } __C89_NAMELESSSTRUCTNAME; | 
 |         IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig; | 
 |         IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig; | 
 |     } __C89_NAMELESSUNIONNAME2; | 
 |     UINT32 flags; | 
 |     FWP_BYTE_BLOB localCertLocationUrl; | 
 | } IKEEXT_CERTIFICATE_AUTHENTICATION1; | 
 | #endif | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN8) | 
 | typedef enum IKEEXT_CERT_CRITERIA_NAME_TYPE_ { | 
 |     IKEEXT_CERT_CRITERIA_DNS = 0, | 
 |     IKEEXT_CERT_CRITERIA_UPN = 1, | 
 |     IKEEXT_CERT_CRITERIA_RFC822 = 2, | 
 |     IKEEXT_CERT_CRITERIA_CN = 3, | 
 |     IKEEXT_CERT_CRITERIA_OU = 4, | 
 |     IKEEXT_CERT_CRITERIA_O = 5, | 
 |     IKEEXT_CERT_CRITERIA_DC = 6, | 
 |     IKEEXT_CERT_CRITERIA_NAME_TYPE_MAX = 7 | 
 | } IKEEXT_CERT_CRITERIA_NAME_TYPE; | 
 |  | 
 | typedef struct IKEEXT_CERT_EKUS0_ { | 
 |     ULONG numEku; | 
 |     LPSTR *eku; | 
 | } IKEEXT_CERT_EKUS0; | 
 |  | 
 | typedef struct IKEEXT_CERT_NAME0_ { | 
 |     IKEEXT_CERT_CRITERIA_NAME_TYPE nameType; | 
 |     LPWSTR certName; | 
 | } IKEEXT_CERT_NAME0; | 
 |  | 
 | typedef struct IKEEXT_CERTIFICATE_CRITERIA0_ { | 
 |     FWP_BYTE_BLOB certData; | 
 |     FWP_BYTE_BLOB certHash; | 
 |     IKEEXT_CERT_EKUS0 *eku; | 
 |     IKEEXT_CERT_NAME0 *name; | 
 |     UINT32 flags; | 
 | } IKEEXT_CERTIFICATE_CRITERIA0; | 
 |  | 
 | typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION2_ { | 
 |     IKEEXT_CERT_CONFIG_TYPE inboundConfigType; | 
 |     __C89_NAMELESS union { | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 inboundRootArraySize; | 
 |             IKEEXT_CERTIFICATE_CRITERIA0 *inboundRootCriteria; | 
 |         } __C89_NAMELESSSTRUCTNAME1; | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 inboundEnterpriseStoreArraySize; | 
 |             IKEEXT_CERTIFICATE_CRITERIA0 *inboundEnterpriseStoreCriteria; | 
 |         } __C89_NAMELESSSTRUCTNAME2; | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 inboundRootStoreArraySize; | 
 |             IKEEXT_CERTIFICATE_CRITERIA0 *inboundTrustedRootStoreCriteria; | 
 |         } __C89_NAMELESSSTRUCTNAME3; | 
 |     } __C89_NAMELESSUNIONNAME1; | 
 |     IKEEXT_CERT_CONFIG_TYPE outboundConfigType; | 
 |     __C89_NAMELESS union { | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 outboundRootArraySize; | 
 |             IKEEXT_CERTIFICATE_CRITERIA0 *outboundRootCriteria; | 
 |         } __C89_NAMELESSSTRUCTNAME1; | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 outboundEnterpriseStoreArraySize; | 
 |             IKEEXT_CERTIFICATE_CRITERIA0 *outboundEnterpriseStoreCriteria; | 
 |         } __C89_NAMELESSSTRUCTNAME2; | 
 |         __C89_NAMELESS struct { | 
 |             UINT32 outboundRootStoreArraySize; | 
 |             IKEEXT_CERTIFICATE_CRITERIA0 *outboundTrustedRootStoreCriteria; | 
 |         } __C89_NAMELESSSTRUCTNAME3; | 
 |     } __C89_NAMELESSUNIONNAME2; | 
 |     UINT32 flags; | 
 |     FWP_BYTE_BLOB localCertLocationUrl; | 
 | } IKEEXT_CERTIFICATE_AUTHENTICATION2; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_IPV6_CGA_AUTHENTICATION0_ { | 
 |     wchar_t *keyContainerName; | 
 |     wchar_t *cspName; | 
 |     UINT32 cspType; | 
 |     FWP_BYTE_ARRAY16 cgaModifier; | 
 |     BYTE cgaCollisionCount; | 
 | } IKEEXT_IPV6_CGA_AUTHENTICATION0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN8) | 
 | typedef struct IKEEXT_KERBEROS_AUTHENTICATION1__ { | 
 |     UINT32 flags; | 
 |     wchar_t *proxyServer; | 
 | } IKEEXT_KERBEROS_AUTHENTICATION1; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_RESERVED_AUTHENTICATION0__ { | 
 |     UINT32 flags; | 
 | } IKEEXT_RESERVED_AUTHENTICATION0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_EAP_AUTHENTICATION0__ { | 
 |     UINT32 flags; | 
 | } IKEEXT_EAP_AUTHENTICATION0; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_AUTHENTICATION_METHOD0_ { | 
 |     IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; | 
 |     __C89_NAMELESS union { | 
 |         IKEEXT_PRESHARED_KEY_AUTHENTICATION0 presharedKeyAuthentication; | 
 |         IKEEXT_CERTIFICATE_AUTHENTICATION0 certificateAuthentication; | 
 |         IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication; | 
 |         IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; | 
 |         IKEEXT_CERTIFICATE_AUTHENTICATION0 sslAuthentication; | 
 |         IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 | } IKEEXT_AUTHENTICATION_METHOD0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_AUTHENTICATION_METHOD1_ { | 
 |     IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; | 
 |     __C89_NAMELESS union { | 
 |         IKEEXT_PRESHARED_KEY_AUTHENTICATION1 presharedKeyAuthentication; | 
 |         IKEEXT_CERTIFICATE_AUTHENTICATION1 certificateAuthentication; | 
 |         IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication; | 
 |         IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; | 
 |         IKEEXT_CERTIFICATE_AUTHENTICATION1 sslAuthentication; | 
 |         IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; | 
 |         IKEEXT_EAP_AUTHENTICATION0 eapAuthentication; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 | } IKEEXT_AUTHENTICATION_METHOD1; | 
 | #endif | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN8) | 
 | typedef struct IKEEXT_AUTHENTICATION_METHOD2_ { | 
 |     IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; | 
 |     __C89_NAMELESS union { | 
 |         IKEEXT_PRESHARED_KEY_AUTHENTICATION1 presharedKeyAuthentication; | 
 |         IKEEXT_CERTIFICATE_AUTHENTICATION2 certificateAuthentication; | 
 |         IKEEXT_KERBEROS_AUTHENTICATION1 kerberosAuthentication; | 
 |         IKEEXT_RESERVED_AUTHENTICATION0 reservedAuthentication; | 
 |         IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication; | 
 |         IKEEXT_CERTIFICATE_AUTHENTICATION2 sslAuthentication; | 
 |         IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication; | 
 |         IKEEXT_EAP_AUTHENTICATION0 eapAuthentication; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 | } IKEEXT_AUTHENTICATION_METHOD2; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_CIPHER_ALGORITHM0_ { | 
 |     IKEEXT_CIPHER_TYPE algoIdentifier; | 
 |     UINT32 keyLen; | 
 |     UINT32 rounds; | 
 | } IKEEXT_CIPHER_ALGORITHM0; | 
 |  | 
 | typedef struct IKEEXT_INTEGRITY_ALGORITHM0_ { | 
 |     IKEEXT_INTEGRITY_TYPE algoIdentifier; | 
 | } IKEEXT_INTEGRITY_ALGORITHM0; | 
 |  | 
 | typedef struct IKEEXT_PROPOSAL0_ { | 
 |     IKEEXT_CIPHER_ALGORITHM0 cipherAlgorithm; | 
 |     IKEEXT_INTEGRITY_ALGORITHM0 integrityAlgorithm; | 
 |     UINT32 maxLifetimeSeconds; | 
 |     IKEEXT_DH_GROUP dhGroup; | 
 |     UINT32 quickModeLimit; | 
 | } IKEEXT_PROPOSAL0; | 
 |  | 
 | typedef struct IKEEXT_POLICY0_ { | 
 |     UINT32 softExpirationTime; | 
 |     UINT32 numAuthenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; | 
 |     UINT32 numIkeProposals; | 
 |     IKEEXT_PROPOSAL0 *ikeProposals; | 
 |     UINT32 flags; | 
 |     UINT32 maxDynamicFilters; | 
 | } IKEEXT_POLICY0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_POLICY1_ { | 
 |     UINT32 softExpirationTime; | 
 |     UINT32 numAuthenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_METHOD1 *authenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; | 
 |     UINT32 numIkeProposals; | 
 |     IKEEXT_PROPOSAL0 *ikeProposals; | 
 |     UINT32 flags; | 
 |     UINT32 maxDynamicFilters; | 
 |     UINT32 retransmitDurationSecs; | 
 | } IKEEXT_POLICY1; | 
 | #endif | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN8) | 
 | typedef struct IKEEXT_POLICY2_ { | 
 |     UINT32 softExpirationTime; | 
 |     UINT32 numAuthenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_METHOD2 *authenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; | 
 |     UINT32 numIkeProposals; | 
 |     IKEEXT_PROPOSAL0 *ikeProposals; | 
 |     UINT32 flags; | 
 |     UINT32 maxDynamicFilters; | 
 |     UINT32 retransmitDurationSecs; | 
 | } IKEEXT_POLICY2; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_EM_POLICY0_ { | 
 |     UINT32 numAuthenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; | 
 | } IKEEXT_EM_POLICY0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_EM_POLICY1_ { | 
 |     UINT32 numAuthenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_METHOD1 *authenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; | 
 | } IKEEXT_EM_POLICY1; | 
 | #endif | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN8) | 
 | typedef struct IKEEXT_EM_POLICY2_ { | 
 |     UINT32 numAuthenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_METHOD2 *authenticationMethods; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType; | 
 | } IKEEXT_EM_POLICY2; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0_ { | 
 |     UINT32 currentActiveMainModes; | 
 |     UINT32 totalMainModesStarted; | 
 |     UINT32 totalSuccessfulMainModes; | 
 |     UINT32 totalFailedMainModes; | 
 |     UINT32 totalResponderMainModes; | 
 |     UINT32 currentNewResponderMainModes; | 
 |     UINT32 currentActiveQuickModes; | 
 |     UINT32 totalQuickModesStarted; | 
 |     UINT32 totalSuccessfulQuickModes; | 
 |     UINT32 totalFailedQuickModes; | 
 |     UINT32 totalAcquires; | 
 |     UINT32 totalReinitAcquires; | 
 |     UINT32 currentActiveExtendedModes; | 
 |     UINT32 totalExtendedModesStarted; | 
 |     UINT32 totalSuccessfulExtendedModes; | 
 |     UINT32 totalFailedExtendedModes; | 
 |     UINT32 totalImpersonationExtendedModes; | 
 |     UINT32 totalImpersonationMainModes; | 
 | } IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1_ { | 
 |     UINT32 currentActiveMainModes; | 
 |     UINT32 totalMainModesStarted; | 
 |     UINT32 totalSuccessfulMainModes; | 
 |     UINT32 totalFailedMainModes; | 
 |     UINT32 totalResponderMainModes; | 
 |     UINT32 currentNewResponderMainModes; | 
 |     UINT32 currentActiveQuickModes; | 
 |     UINT32 totalQuickModesStarted; | 
 |     UINT32 totalSuccessfulQuickModes; | 
 |     UINT32 totalFailedQuickModes; | 
 |     UINT32 totalAcquires; | 
 |     UINT32 totalReinitAcquires; | 
 |     UINT32 currentActiveExtendedModes; | 
 |     UINT32 totalExtendedModesStarted; | 
 |     UINT32 totalSuccessfulExtendedModes; | 
 |     UINT32 totalFailedExtendedModes; | 
 |     UINT32 totalImpersonationExtendedModes; | 
 |     UINT32 totalImpersonationMainModes; | 
 | } IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_KEYMODULE_STATISTICS0_ { | 
 |     IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics; | 
 |     IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics; | 
 |     UINT32 errorFrequencyTable[97]; | 
 |     UINT32 mainModeNegotiationTime; | 
 |     UINT32 quickModeNegotiationTime; | 
 |     UINT32 extendedModeNegotiationTime; | 
 | } IKEEXT_KEYMODULE_STATISTICS0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_KEYMODULE_STATISTICS1_ { | 
 |     IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 v4Statistics; | 
 |     IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 v6Statistics; | 
 |     UINT32 errorFrequencyTable[97]; | 
 |     UINT32 mainModeNegotiationTime; | 
 |     UINT32 quickModeNegotiationTime; | 
 |     UINT32 extendedModeNegotiationTime; | 
 | } IKEEXT_KEYMODULE_STATISTICS1; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0_ { | 
 |     UINT32 totalSocketReceiveFailures; | 
 |     UINT32 totalSocketSendFailures; | 
 | } IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1_ { | 
 |     UINT32 totalSocketReceiveFailures; | 
 |     UINT32 totalSocketSendFailures; | 
 | } IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_COMMON_STATISTICS0_ { | 
 |     IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics; | 
 |     IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics; | 
 |     UINT32 totalPacketsReceived; | 
 |     UINT32 totalInvalidPacketsReceived; | 
 |     UINT32 currentQueuedWorkitems; | 
 | } IKEEXT_COMMON_STATISTICS0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_COMMON_STATISTICS1_ { | 
 |     IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 v4Statistics; | 
 |     IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 v6Statistics; | 
 |     UINT32 totalPacketsReceived; | 
 |     UINT32 totalInvalidPacketsReceived; | 
 |     UINT32 currentQueuedWorkitems; | 
 | } IKEEXT_COMMON_STATISTICS1; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_STATISTICS0_ { | 
 |     IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics; | 
 |     IKEEXT_KEYMODULE_STATISTICS0 authipStatistics; | 
 |     IKEEXT_COMMON_STATISTICS0 commonStatistics; | 
 | } IKEEXT_STATISTICS0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_STATISTICS1_ { | 
 |     IKEEXT_KEYMODULE_STATISTICS1 ikeStatistics; | 
 |     IKEEXT_KEYMODULE_STATISTICS1 authipStatistics; | 
 |     IKEEXT_KEYMODULE_STATISTICS1 ikeV2Statistics; | 
 |     IKEEXT_COMMON_STATISTICS1 commonStatistics; | 
 | } IKEEXT_STATISTICS1; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_TRAFFIC0_ { | 
 |     FWP_IP_VERSION ipVersion; | 
 |     __C89_NAMELESS union { | 
 |         UINT32 localV4Address; | 
 |         UINT8 localV6Address[16]; | 
 |     } __C89_NAMELESSUNIONNAME1; | 
 |     __C89_NAMELESS union { | 
 |         UINT32 remoteV4Address; | 
 |         UINT8 remoteV6Address[16]; | 
 |     } __C89_NAMELESSUNIONNAME2; | 
 |     UINT64 authIpFilterId; | 
 | } IKEEXT_TRAFFIC0; | 
 |  | 
 | typedef struct IKEEXT_COOKIE_PAIR0_ { | 
 |     IKEEXT_COOKIE initiator; | 
 |     IKEEXT_COOKIE responder; | 
 | } IKEEXT_COOKIE_PAIR0; | 
 |  | 
 | typedef struct IKEEXT_CERTIFICATE_CREDENTIAL0_ { | 
 |     FWP_BYTE_BLOB subjectName; | 
 |     FWP_BYTE_BLOB certHash; | 
 |     UINT32 flags; | 
 | } IKEEXT_CERTIFICATE_CREDENTIAL0; | 
 |  | 
 | typedef struct IKEEXT_NAME_CREDENTIAL0_ { | 
 |     wchar_t *principalName; | 
 | } IKEEXT_NAME_CREDENTIAL0; | 
 | typedef struct IKEEXT_CREDENTIAL0_ { | 
 |     IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; | 
 |     __C89_NAMELESS union { | 
 |         IKEEXT_PRESHARED_KEY_AUTHENTICATION0 *presharedKey; | 
 |         IKEEXT_CERTIFICATE_CREDENTIAL0 *certificate; | 
 |         IKEEXT_NAME_CREDENTIAL0 *name; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 | } IKEEXT_CREDENTIAL0; | 
 |  | 
 | typedef struct IKEEXT_CREDENTIAL_PAIR0_ { | 
 |     IKEEXT_CREDENTIAL0 localCredentials; | 
 |     IKEEXT_CREDENTIAL0 peerCredentials; | 
 | } IKEEXT_CREDENTIAL_PAIR0; | 
 |  | 
 | typedef struct IKEEXT_CREDENTIALS0_ { | 
 |     UINT32 numCredentials; | 
 |     IKEEXT_CREDENTIAL_PAIR0 *credentials; | 
 | } IKEEXT_CREDENTIALS0; | 
 |  | 
 | typedef struct IKEEXT_SA_DETAILS0_ { | 
 |     UINT64 saId; | 
 |     IKEEXT_KEY_MODULE_TYPE keyModuleType; | 
 |     FWP_IP_VERSION ipVersion; | 
 |     __C89_NAMELESS union { | 
 |         IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 |     IKEEXT_TRAFFIC0 ikeTraffic; | 
 |     IKEEXT_PROPOSAL0 ikeProposal; | 
 |     IKEEXT_COOKIE_PAIR0 cookiePair; | 
 |     IKEEXT_CREDENTIALS0 ikeCredentials; | 
 |     GUID ikePolicyKey; | 
 |     UINT64 virtualIfTunnelId; | 
 | } IKEEXT_SA_DETAILS0; | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN7) | 
 | typedef struct IKEEXT_CERTIFICATE_CREDENTIAL1_ { | 
 |     FWP_BYTE_BLOB subjectName; | 
 |     FWP_BYTE_BLOB certHash; | 
 |     UINT32 flags; | 
 |     FWP_BYTE_BLOB certificate; | 
 | } IKEEXT_CERTIFICATE_CREDENTIAL1; | 
 |  | 
 | typedef struct IKEEXT_CREDENTIAL1_ { | 
 |     IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; | 
 |     __C89_NAMELESS union { | 
 |         IKEEXT_PRESHARED_KEY_AUTHENTICATION1 *presharedKey; | 
 |         IKEEXT_CERTIFICATE_CREDENTIAL1 *certificate; | 
 |         IKEEXT_NAME_CREDENTIAL0 *name; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 | } IKEEXT_CREDENTIAL1; | 
 |  | 
 | typedef struct IKEEXT_CREDENTIAL_PAIR1_ { | 
 |     IKEEXT_CREDENTIAL1 localCredentials; | 
 |     IKEEXT_CREDENTIAL1 peerCredentials; | 
 | } IKEEXT_CREDENTIAL_PAIR1; | 
 |  | 
 | typedef struct IKEEXT_CREDENTIALS1_ { | 
 |     UINT32 numCredentials; | 
 |     IKEEXT_CREDENTIAL_PAIR1 *credentials; | 
 | } IKEEXT_CREDENTIALS1; | 
 |  | 
 | typedef struct IKEEXT_SA_DETAILS1_ { | 
 |     UINT64 saId; | 
 |     IKEEXT_KEY_MODULE_TYPE keyModuleType; | 
 |     FWP_IP_VERSION ipVersion; | 
 |     __C89_NAMELESS union { | 
 |         IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 |     IKEEXT_TRAFFIC0 ikeTraffic; | 
 |     IKEEXT_PROPOSAL0 ikeProposal; | 
 |     IKEEXT_COOKIE_PAIR0 cookiePair; | 
 |     IKEEXT_CREDENTIALS1 ikeCredentials; | 
 |     GUID ikePolicyKey; | 
 |     UINT64 virtualIfTunnelId; | 
 |     FWP_BYTE_BLOB correlationKey; | 
 | } IKEEXT_SA_DETAILS1; | 
 | #endif | 
 |  | 
 | #if (NTDDI_VERSION >= NTDDI_WIN8) | 
 | typedef struct IKEEXT_CREDENTIAL2_ { | 
 |     IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType; | 
 |     IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType; | 
 |     __C89_NAMELESS union { | 
 |         IKEEXT_PRESHARED_KEY_AUTHENTICATION1 *presharedKey; | 
 |         IKEEXT_CERTIFICATE_CREDENTIAL1 *certificate; | 
 |         IKEEXT_NAME_CREDENTIAL0 *name; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 | } IKEEXT_CREDENTIAL2; | 
 |  | 
 | typedef struct IKEEXT_CREDENTIAL_PAIR2_ { | 
 |     IKEEXT_CREDENTIAL2 localCredentials; | 
 |     IKEEXT_CREDENTIAL2 peerCredentials; | 
 | } IKEEXT_CREDENTIAL_PAIR2; | 
 |  | 
 | typedef struct IKEEXT_CREDENTIALS2_ { | 
 |     UINT32 numCredentials; | 
 |     IKEEXT_CREDENTIAL_PAIR2 *credentials; | 
 | } IKEEXT_CREDENTIALS2; | 
 |  | 
 | typedef struct IKEEXT_SA_DETAILS2_ { | 
 |     UINT64 saId; | 
 |     IKEEXT_KEY_MODULE_TYPE keyModuleType; | 
 |     FWP_IP_VERSION ipVersion; | 
 |     __C89_NAMELESS union { | 
 |         IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation; | 
 |     } __C89_NAMELESSUNIONNAME; | 
 |     IKEEXT_TRAFFIC0 ikeTraffic; | 
 |     IKEEXT_PROPOSAL0 ikeProposal; | 
 |     IKEEXT_COOKIE_PAIR0 cookiePair; | 
 |     IKEEXT_CREDENTIALS2 ikeCredentials; | 
 |     GUID ikePolicyKey; | 
 |     UINT64 virtualIfTunnelId; | 
 |     FWP_BYTE_BLOB correlationKey; | 
 | } IKEEXT_SA_DETAILS2; | 
 | #endif | 
 |  | 
 | typedef struct IKEEXT_SA_ENUM_TEMPLATE0_ { | 
 |     FWP_CONDITION_VALUE0 localSubNet; | 
 |     FWP_CONDITION_VALUE0 remoteSubNet; | 
 |     FWP_BYTE_BLOB localMainModeCertHash; | 
 | } IKEEXT_SA_ENUM_TEMPLATE0; | 
 |  | 
 | #endif /* WINAPI_PARTITION_DESKTOP.  */ | 
 | /* Begin additional prototypes for all interfaces */ | 
 |  | 
 |  | 
 | /* End additional prototypes */ | 
 |  | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif | 
 |  | 
 | #endif /* __iketypes_h__ */ |