| /** | |
| * 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*/ |