|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef _INC_DHCPV6CSDK | 
|  | #define _INC_DHCPV6CSDK | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #if (_WIN32_WINNT >= 0x0600) | 
|  |  | 
|  | #include <winapifamily.h> | 
|  |  | 
|  | #ifndef DHCPV6_OPTIONS_DEFINED | 
|  | #define DHCPV6_OPTIONS_DEFINED | 
|  |  | 
|  | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) | 
|  |  | 
|  | #define DHCPV6_OPTION_CLIENTID 1 | 
|  | #define DHCPV6_OPTION_SERVERID 2 | 
|  | #define DHCPV6_OPTION_IA_NA 3 | 
|  | #define DHCPV6_OPTION_IA_TA 4 | 
|  | #define DHCPV6_OPTION_ORO 6 | 
|  | #define DHCPV6_OPTION_PREFERENCE 7 | 
|  | #define DHCPV6_OPTION_UNICAST 12 | 
|  | #define DHCPV6_OPTION_RAPID_COMMIT 14 | 
|  | #define DHCPV6_OPTION_USER_CLASS 15 | 
|  | #define DHCPV6_OPTION_VENDOR_CLASS 16 | 
|  | #define DHCPV6_OPTION_VENDOR_OPTS 17 | 
|  | #define DHCPV6_OPTION_RECONF_MSG 19 | 
|  |  | 
|  | #define DHCPV6_OPTION_SIP_SERVERS_NAMES 21 | 
|  | #define DHCPV6_OPTION_SIP_SERVERS_ADDRS 22 | 
|  | #define DHCPV6_OPTION_DNS_SERVERS 23 | 
|  | #define DHCPV6_OPTION_DOMAIN_LIST 24 | 
|  | #define DHCPV6_OPTION_IA_PD 25 | 
|  | #define DHCPV6_OPTION_NIS_SERVERS 27 | 
|  | #define DHCPV6_OPTION_NISP_SERVERS 28 | 
|  | #define DHCPV6_OPTION_NIS_DOMAIN_NAME 29 | 
|  | #define DHCPV6_OPTION_NISP_DOMAIN_NAME 30 | 
|  |  | 
|  | #endif /* WINAPI_PARTITION_APP */ | 
|  |  | 
|  | #endif /* DHCPV6_OPTIONS_DEFINED */ | 
|  |  | 
|  | typedef enum _StatusCode { | 
|  | STATUS_NO_ERROR, | 
|  | STATUS_UNSPECIFIED_FAILURE, | 
|  | STATUS_NO_BINDING = 3, | 
|  | STATUS_NOPREFIX_AVAIL = 6 | 
|  | } StatusCode; | 
|  |  | 
|  | typedef struct _DHCPV6CAPI_CLASSID { | 
|  | ULONG  Flags; | 
|  | LPBYTE Data; | 
|  | ULONG  nBytesData; | 
|  | } DHCPV6CAPI_CLASSID, *PDHCPV6CAPI_CLASSID, *LPDHCPV6CAPI_CLASSID; | 
|  |  | 
|  | #ifndef DHCPV6API_PARAMS_DEFINED | 
|  | #define DHCPV6API_PARAMS_DEFINED | 
|  |  | 
|  | typedef struct _DHCPV6CAPI_PARAMS { | 
|  | ULONG   Flags; | 
|  | ULONG   OptionId; | 
|  | WINBOOL IsVendor; | 
|  | LPBYTE  Data; | 
|  | DWORD   nBytesData; | 
|  | } DHCPV6CAPI_PARAMS, *PDHCPV6CAPI_PARAMS, *LPDHCPV6CAPI_PARAMS; | 
|  |  | 
|  | #endif /* DHCPV6API_PARAMS_DEFINED */ | 
|  |  | 
|  | typedef struct _DHCPV6Prefix { | 
|  | UCHAR      prefix[16]; | 
|  | DWORD      prefixLength; | 
|  | DWORD      preferredLifeTime; | 
|  | DWORD      validLifeTime; | 
|  | StatusCode status; | 
|  | } DHCPV6Prefix, *PDHCPV6Prefix, *LPDHCPV6Prefix; | 
|  |  | 
|  | typedef struct _DHCPV6CAPI_PARAMS_ARRAY { | 
|  | ULONG               nParams; | 
|  | LPDHCPV6CAPI_PARAMS Params; | 
|  | } DHCPV6CAPI_PARAMS_ARRAY, *PDHCPV6CAPI_PARAMS_ARRAY, *LPDHCPV6CAPI_PARAMS_ARRAY; | 
|  |  | 
|  | typedef struct _DHCPV6PrefixLeaseInformation { | 
|  | DWORD          nPrefixes; | 
|  | LPDHCPV6Prefix prefixArray; | 
|  | DWORD          iaid; | 
|  | time_t         T1; | 
|  | time_t         T2; | 
|  | time_t         MaxLeaseExpirationTime; | 
|  | time_t         LastRenewalTime; | 
|  | StatusCode     status; | 
|  | LPBYTE         ServerId; | 
|  | DWORD          ServerIdLen; | 
|  | } DHCPV6PrefixLeaseInformation, *PDHCPV6PrefixLeaseInformation, *LPDHCPV6PrefixLeaseInformation, *LPDHCPV6CAPIPrefixLeaseInformation; | 
|  |  | 
|  | VOID APIENTRY Dhcpv6CApiCleanup(void); | 
|  |  | 
|  | VOID APIENTRY Dhcpv6CApiInitialize( | 
|  | LPDWORD Version | 
|  | ); | 
|  |  | 
|  | DWORD APIENTRY Dhcpv6RequestParams( | 
|  | WINBOOL forceNewInform, | 
|  | LPVOID reserved, | 
|  | LPWSTR adapterName, | 
|  | LPDHCPV6CAPI_CLASSID classId, | 
|  | DHCPV6CAPI_PARAMS_ARRAY recdParams, | 
|  | LPBYTE buffer, | 
|  | LPDWORD pSize | 
|  | ); | 
|  |  | 
|  | DWORD APIENTRY Dhcpv6ReleasePrefix( | 
|  | LPWSTR adapterName, | 
|  | LPDHCPV6CAPI_CLASSID classId, | 
|  | LPDHCPV6CAPIPrefixLeaseInformation prefixleaseInfo | 
|  | ); | 
|  |  | 
|  | DWORD APIENTRY Dhcpv6RenewPrefix( | 
|  | LPWSTR adapterName, | 
|  | LPDHCPV6CAPI_CLASSID classId, | 
|  | LPDHCPV6PrefixLeaseInformation prefixleaseInfo, | 
|  | DWORD *pdwTimeToWait, | 
|  | DWORD bValidatePrefix | 
|  | ); | 
|  |  | 
|  | DWORD APIENTRY Dhcpv6RequestPrefix( | 
|  | LPWSTR adapterName, | 
|  | LPDHCPV6CAPI_CLASSID classId, | 
|  | LPDHCPV6PrefixLeaseInformation prefixleaseInfo, | 
|  | DWORD *pdwTimeToWait | 
|  | ); | 
|  |  | 
|  | #endif /* (_WIN32_WINNT >= 0x0600) */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /*_INC_DHCPV6CSDK*/ |