master
  1/*** Autogenerated by WIDL 10.4 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
 26extern "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
 89typedef struct IPSEC_V4_UDP_ENCAPSULATION0_ IPSEC_V4_UDP_ENCAPSULATION0;
 90#endif
 91
 92typedef UINT64 IKEEXT_COOKIE;
 93
 94typedef 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
104typedef 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
110typedef 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
127typedef 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
134typedef 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
144typedef 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
152typedef 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
158typedef 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
166typedef 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
175typedef 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
183typedef 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
195typedef struct IKEEXT_CERT_ROOT_CONFIG0_ {
196    FWP_BYTE_BLOB certData;
197    UINT32 flags;
198} IKEEXT_CERT_ROOT_CONFIG0;
199
200typedef struct IKEEXT_KERBEROS_AUTHENTICATION0__ {
201    UINT32 flags;
202} IKEEXT_KERBEROS_AUTHENTICATION0;
203
204typedef struct IKEEXT_NTLM_V2_AUTHENTICATION0__ {
205    UINT32 flags;
206} IKEEXT_NTLM_V2_AUTHENTICATION0;
207
208typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION0__ {
209    FWP_BYTE_BLOB presharedKey;
210} IKEEXT_PRESHARED_KEY_AUTHENTICATION0;
211
212typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION1__ {
213    FWP_BYTE_BLOB presharedKey;
214    UINT32 flags;
215} IKEEXT_PRESHARED_KEY_AUTHENTICATION1;
216
217typedef 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
240typedef 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)
265typedef 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
276typedef struct IKEEXT_CERT_EKUS0_ {
277    ULONG numEku;
278    LPSTR *eku;
279} IKEEXT_CERT_EKUS0;
280
281typedef struct IKEEXT_CERT_NAME0_ {
282    IKEEXT_CERT_CRITERIA_NAME_TYPE nameType;
283    LPWSTR certName;
284} IKEEXT_CERT_NAME0;
285
286typedef 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
294typedef 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
330typedef 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)
339typedef struct IKEEXT_KERBEROS_AUTHENTICATION1__ {
340    UINT32 flags;
341    wchar_t *proxyServer;
342} IKEEXT_KERBEROS_AUTHENTICATION1;
343#endif
344
345typedef struct IKEEXT_RESERVED_AUTHENTICATION0__ {
346    UINT32 flags;
347} IKEEXT_RESERVED_AUTHENTICATION0;
348
349#if (NTDDI_VERSION >= NTDDI_WIN7)
350typedef struct IKEEXT_EAP_AUTHENTICATION0__ {
351    UINT32 flags;
352} IKEEXT_EAP_AUTHENTICATION0;
353#endif
354
355typedef 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)
368typedef 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)
383typedef 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
398typedef struct IKEEXT_CIPHER_ALGORITHM0_ {
399    IKEEXT_CIPHER_TYPE algoIdentifier;
400    UINT32 keyLen;
401    UINT32 rounds;
402} IKEEXT_CIPHER_ALGORITHM0;
403
404typedef struct IKEEXT_INTEGRITY_ALGORITHM0_ {
405    IKEEXT_INTEGRITY_TYPE algoIdentifier;
406} IKEEXT_INTEGRITY_ALGORITHM0;
407
408typedef 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
416typedef 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)
428typedef 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)
442typedef 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
455typedef 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)
462typedef 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)
470typedef 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
477typedef 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)
499typedef 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
521typedef 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)
531typedef 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
541typedef 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)
547typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1_ {
548    UINT32 totalSocketReceiveFailures;
549    UINT32 totalSocketSendFailures;
550} IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1;
551#endif
552
553typedef 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)
562typedef 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
571typedef 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)
578typedef 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
586typedef 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
599typedef struct IKEEXT_COOKIE_PAIR0_ {
600    IKEEXT_COOKIE initiator;
601    IKEEXT_COOKIE responder;
602} IKEEXT_COOKIE_PAIR0;
603
604typedef struct IKEEXT_CERTIFICATE_CREDENTIAL0_ {
605    FWP_BYTE_BLOB subjectName;
606    FWP_BYTE_BLOB certHash;
607    UINT32 flags;
608} IKEEXT_CERTIFICATE_CREDENTIAL0;
609
610typedef struct IKEEXT_NAME_CREDENTIAL0_ {
611    wchar_t *principalName;
612} IKEEXT_NAME_CREDENTIAL0;
613typedef 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
623typedef struct IKEEXT_CREDENTIAL_PAIR0_ {
624    IKEEXT_CREDENTIAL0 localCredentials;
625    IKEEXT_CREDENTIAL0 peerCredentials;
626} IKEEXT_CREDENTIAL_PAIR0;
627
628typedef struct IKEEXT_CREDENTIALS0_ {
629    UINT32 numCredentials;
630    IKEEXT_CREDENTIAL_PAIR0 *credentials;
631} IKEEXT_CREDENTIALS0;
632
633typedef 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)
649typedef 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
656typedef 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
666typedef struct IKEEXT_CREDENTIAL_PAIR1_ {
667    IKEEXT_CREDENTIAL1 localCredentials;
668    IKEEXT_CREDENTIAL1 peerCredentials;
669} IKEEXT_CREDENTIAL_PAIR1;
670
671typedef struct IKEEXT_CREDENTIALS1_ {
672    UINT32 numCredentials;
673    IKEEXT_CREDENTIAL_PAIR1 *credentials;
674} IKEEXT_CREDENTIALS1;
675
676typedef 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)
694typedef 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
704typedef struct IKEEXT_CREDENTIAL_PAIR2_ {
705    IKEEXT_CREDENTIAL2 localCredentials;
706    IKEEXT_CREDENTIAL2 peerCredentials;
707} IKEEXT_CREDENTIAL_PAIR2;
708
709typedef struct IKEEXT_CREDENTIALS2_ {
710    UINT32 numCredentials;
711    IKEEXT_CREDENTIAL_PAIR2 *credentials;
712} IKEEXT_CREDENTIALS2;
713
714typedef 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
731typedef 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__ */