| 1 | /**
 | 
|---|
| 2 |  * This file has no copyright assigned and is placed in the Public Domain.
 | 
|---|
| 3 |  * This file is part of the mingw-w64 runtime package.
 | 
|---|
| 4 |  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 | 
|---|
| 5 |  */
 | 
|---|
| 6 | #ifndef _INC_DHCPV6CSDK
 | 
|---|
| 7 | #define _INC_DHCPV6CSDK
 | 
|---|
| 8 | 
 | 
|---|
| 9 | #ifdef __cplusplus
 | 
|---|
| 10 | extern "C" {
 | 
|---|
| 11 | #endif
 | 
|---|
| 12 | 
 | 
|---|
| 13 | #if (_WIN32_WINNT >= 0x0600)
 | 
|---|
| 14 | 
 | 
|---|
| 15 | typedef enum _StatusCode {
 | 
|---|
| 16 |   STATUS_NO_ERROR,
 | 
|---|
| 17 |   STATUS_UNSPECIFIED_FAILURE,
 | 
|---|
| 18 |   STATUS_NO_BINDING,
 | 
|---|
| 19 |   STATUS_NOPREFIX_AVAIL 
 | 
|---|
| 20 | } StatusCode;
 | 
|---|
| 21 | 
 | 
|---|
| 22 | typedef struct _DHCPV6CAPI_CLASSID {
 | 
|---|
| 23 |   ULONG  Flags;
 | 
|---|
| 24 |   LPBYTE Data;
 | 
|---|
| 25 |   ULONG  nBytesData;
 | 
|---|
| 26 | } DHCPV6CAPI_CLASSID, *PDHCPV6CAPI_CLASSID, *LPDHCPV6CAPI_CLASSID;
 | 
|---|
| 27 | 
 | 
|---|
| 28 | typedef struct _DHCPV6CAPI_PARAMS {
 | 
|---|
| 29 |   ULONG   Flags;
 | 
|---|
| 30 |   ULONG   OptionId;
 | 
|---|
| 31 |   WINBOOL IsVendor;
 | 
|---|
| 32 |   LPBYTE  Data;
 | 
|---|
| 33 |   DWORD   nBytesData;
 | 
|---|
| 34 | } DHCPV6CAPI_PARAMS, *PDHCPV6CAPI_PARAMS, *LPDHCPV6CAPI_PARAMS;
 | 
|---|
| 35 | 
 | 
|---|
| 36 | typedef struct _DHCPV6Prefix {
 | 
|---|
| 37 |   UCHAR      prefix[16];
 | 
|---|
| 38 |   DWORD      prefixLength;
 | 
|---|
| 39 |   DWORD      preferredLifeTime;
 | 
|---|
| 40 |   DWORD      validLifeTime;
 | 
|---|
| 41 |   StatusCode status;
 | 
|---|
| 42 | } DHCPV6Prefix, *PDHCPV6Prefix, *LPDHCPV6Prefix;
 | 
|---|
| 43 | 
 | 
|---|
| 44 | typedef struct _DHCPV6CAPI_PARAMS_ARRAY {
 | 
|---|
| 45 |   ULONG               nParams;
 | 
|---|
| 46 |   LPDHCPV6CAPI_PARAMS Params;
 | 
|---|
| 47 | } DHCPV6CAPI_PARAMS_ARRAY, *PDHCPV6CAPI_PARAMS_ARRAY, *LPDHCPV6CAPI_PARAMS_ARRAY;
 | 
|---|
| 48 | 
 | 
|---|
| 49 | typedef struct _DHCPV6PrefixLeaseInformation {
 | 
|---|
| 50 |   DWORD          nPrefixes;
 | 
|---|
| 51 |   LPDHCPV6Prefix prefixArray;
 | 
|---|
| 52 |   DWORD          iaid;
 | 
|---|
| 53 |   time_t         T1;
 | 
|---|
| 54 |   time_t         T2;
 | 
|---|
| 55 |   time_t         MaxLeaseExpirationTime;
 | 
|---|
| 56 |   time_t         LastRenewalTime;
 | 
|---|
| 57 |   StatusCode     status;
 | 
|---|
| 58 |   LPBYTE         ServerId;
 | 
|---|
| 59 |   DWORD          ServerIdLen;
 | 
|---|
| 60 | } DHCPV6PrefixLeaseInformation, *PDHCPV6PrefixLeaseInformation, *LPDHCPV6PrefixLeaseInformation, *LPDHCPV6CAPIPrefixLeaseInformation;
 | 
|---|
| 61 | 
 | 
|---|
| 62 | VOID APIENTRY Dhcpv6CApiCleanup(void);
 | 
|---|
| 63 | 
 | 
|---|
| 64 | DWORD APIENTRY Dhcpv6CApiInitialize(
 | 
|---|
| 65 |   LPDWORD Version
 | 
|---|
| 66 | );
 | 
|---|
| 67 | 
 | 
|---|
| 68 | DWORD APIENTRY Dhcpv6RenewPrefix(
 | 
|---|
| 69 |   LPWSTR adapterName,
 | 
|---|
| 70 |   LPDHCPV6CAPI_CLASSID classId,
 | 
|---|
| 71 |   LPDHCPV6CAPIPrefixLeaseInformation prefixleaseInfo
 | 
|---|
| 72 | );
 | 
|---|
| 73 | 
 | 
|---|
| 74 | DWORD APIENTRY Dhcpv6RenewPrefix(
 | 
|---|
| 75 |   LPWSTR adapterName,
 | 
|---|
| 76 |   LPDHCPV6CAPI_CLASSID classId,
 | 
|---|
| 77 |   LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
 | 
|---|
| 78 |   DWORD pdwTimeToWait,
 | 
|---|
| 79 |   DWORD bValidatePrefix
 | 
|---|
| 80 | );
 | 
|---|
| 81 | 
 | 
|---|
| 82 | DWORD APIENTRY Dhcpv6RequestPrefix(
 | 
|---|
| 83 |   LPWSTR adapterName,
 | 
|---|
| 84 |   LPDHCPV6CAPI_CLASSID classId,
 | 
|---|
| 85 |   LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
 | 
|---|
| 86 |   DWORD pdwTimeToWait
 | 
|---|
| 87 | );
 | 
|---|
| 88 | 
 | 
|---|
| 89 | #endif /* (_WIN32_WINNT >= 0x0600) */
 | 
|---|
| 90 | 
 | 
|---|
| 91 | #ifdef __cplusplus
 | 
|---|
| 92 | }
 | 
|---|
| 93 | #endif
 | 
|---|
| 94 | 
 | 
|---|
| 95 | #endif /*_INC_DHCPV6CSDK*/
 | 
|---|