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