/**
* 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)
typedef enum _StatusCode {
STATUS_NO_ERROR,
STATUS_UNSPECIFIED_FAILURE,
STATUS_NO_BINDING,
STATUS_NOPREFIX_AVAIL
} StatusCode;
typedef struct _DHCPV6CAPI_CLASSID {
ULONG Flags;
LPBYTE Data;
ULONG nBytesData;
} DHCPV6CAPI_CLASSID, *PDHCPV6CAPI_CLASSID, *LPDHCPV6CAPI_CLASSID;
typedef struct _DHCPV6CAPI_PARAMS {
ULONG Flags;
ULONG OptionId;
WINBOOL IsVendor;
LPBYTE Data;
DWORD nBytesData;
} DHCPV6CAPI_PARAMS, *PDHCPV6CAPI_PARAMS, *LPDHCPV6CAPI_PARAMS;
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);
DWORD APIENTRY Dhcpv6CApiInitialize(
LPDWORD Version
);
DWORD APIENTRY Dhcpv6RenewPrefix(
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*/