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