dhcpv6csdk.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #if (_WIN32_WINNT >= 0x0600)
  12. typedef enum _StatusCode {
  13. STATUS_NO_ERROR,
  14. STATUS_UNSPECIFIED_FAILURE,
  15. STATUS_NO_BINDING,
  16. STATUS_NOPREFIX_AVAIL
  17. } StatusCode;
  18. typedef struct _DHCPV6CAPI_CLASSID {
  19. ULONG Flags;
  20. LPBYTE Data;
  21. ULONG nBytesData;
  22. } DHCPV6CAPI_CLASSID, *PDHCPV6CAPI_CLASSID, *LPDHCPV6CAPI_CLASSID;
  23. typedef struct _DHCPV6CAPI_PARAMS {
  24. ULONG Flags;
  25. ULONG OptionId;
  26. WINBOOL IsVendor;
  27. LPBYTE Data;
  28. DWORD nBytesData;
  29. } DHCPV6CAPI_PARAMS, *PDHCPV6CAPI_PARAMS, *LPDHCPV6CAPI_PARAMS;
  30. typedef struct _DHCPV6Prefix {
  31. UCHAR prefix[16];
  32. DWORD prefixLength;
  33. DWORD preferredLifeTime;
  34. DWORD validLifeTime;
  35. StatusCode status;
  36. } DHCPV6Prefix, *PDHCPV6Prefix, *LPDHCPV6Prefix;
  37. typedef struct _DHCPV6CAPI_PARAMS_ARRAY {
  38. ULONG nParams;
  39. LPDHCPV6CAPI_PARAMS Params;
  40. } DHCPV6CAPI_PARAMS_ARRAY, *PDHCPV6CAPI_PARAMS_ARRAY, *LPDHCPV6CAPI_PARAMS_ARRAY;
  41. typedef struct _DHCPV6PrefixLeaseInformation {
  42. DWORD nPrefixes;
  43. LPDHCPV6Prefix prefixArray;
  44. DWORD iaid;
  45. time_t T1;
  46. time_t T2;
  47. time_t MaxLeaseExpirationTime;
  48. time_t LastRenewalTime;
  49. StatusCode status;
  50. LPBYTE ServerId;
  51. DWORD ServerIdLen;
  52. } DHCPV6PrefixLeaseInformation, *PDHCPV6PrefixLeaseInformation, *LPDHCPV6PrefixLeaseInformation, *LPDHCPV6CAPIPrefixLeaseInformation;
  53. VOID APIENTRY Dhcpv6CApiCleanup(void);
  54. DWORD APIENTRY Dhcpv6CApiInitialize(
  55. LPDWORD Version
  56. );
  57. DWORD APIENTRY Dhcpv6RenewPrefix(
  58. LPWSTR adapterName,
  59. LPDHCPV6CAPI_CLASSID classId,
  60. LPDHCPV6CAPIPrefixLeaseInformation prefixleaseInfo
  61. );
  62. DWORD APIENTRY Dhcpv6RenewPrefix(
  63. LPWSTR adapterName,
  64. LPDHCPV6CAPI_CLASSID classId,
  65. LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
  66. DWORD pdwTimeToWait,
  67. DWORD bValidatePrefix
  68. );
  69. DWORD APIENTRY Dhcpv6RequestPrefix(
  70. LPWSTR adapterName,
  71. LPDHCPV6CAPI_CLASSID classId,
  72. LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
  73. DWORD pdwTimeToWait
  74. );
  75. #endif /* (_WIN32_WINNT >= 0x0600) */
  76. #ifdef __cplusplus
  77. }
  78. #endif
  79. #endif /*_INC_DHCPV6CSDK*/