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