Home | History | Annotate | Download | only in include
      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*/
     96