dhcpsapi.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  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 _DHCPSAPI_
  7. #define _DHCPSAPI_
  8. #ifndef WINAPI
  9. #if defined(_ARM_)
  10. #define WINAPI
  11. #else
  12. #define WINAPI __stdcall
  13. #endif
  14. #endif
  15. #define DHCP_API_FUNCTION WINAPI
  16. #ifdef __cplusplus
  17. #define DHCP_CONST const
  18. extern "C" {
  19. #else
  20. #define DHCP_CONST
  21. #endif
  22. typedef DWORD DHCP_IP_ADDRESS,*PDHCP_IP_ADDRESS,*LPDHCP_IP_ADDRESS;
  23. typedef DWORD DHCP_IP_MASK;
  24. typedef DWORD DHCP_RESUME_HANDLE;
  25. typedef DWORD DHCP_OPTION_ID;
  26. typedef enum _DHCP_OPTION_TYPE {
  27. DhcpUnaryElementTypeOption = 0,
  28. DhcpArrayTypeOption
  29. } DHCP_OPTION_TYPE, *LPDHCP_OPTION_TYPE;
  30. typedef struct _DATE_TIME {
  31. DWORD dwLowDateTime;
  32. DWORD dwHighDateTime;
  33. } DATE_TIME,*LPDATE_TIME;
  34. typedef struct _DWORD_DWORD {
  35. DWORD DWord1;
  36. DWORD DWord2;
  37. } DWORD_DWORD,*LPDWORD_DWORD;
  38. typedef struct _DHCP_BINARY_DATA {
  39. DWORD DataLength;
  40. BYTE *Data;
  41. } DHCP_BINARY_DATA,*LPDHCP_BINARY_DATA;
  42. typedef DHCP_BINARY_DATA DHCP_CLIENT_UID;
  43. #define DHCP_ENDPOINT_FLAG_CANT_MODIFY 0x01
  44. typedef struct _DHCP_BIND_ELEMENT {
  45. ULONG Flags;
  46. WINBOOL fBoundToDHCPServer;
  47. DHCP_IP_ADDRESS AdapterPrimaryAddress;
  48. DHCP_IP_ADDRESS AdapterSubnetAddress;
  49. LPWSTR IfDescription;
  50. ULONG IfIdSize;
  51. LPBYTE IfId;
  52. } DHCP_BIND_ELEMENT,*LPDHCP_BIND_ELEMENT;
  53. typedef struct _DHCP_BIND_ELEMENT_ARRAY {
  54. DWORD NumElements;
  55. LPDHCP_BIND_ELEMENT Elements;
  56. } DHCP_BIND_ELEMENT_ARRAY,*LPDHCP_BIND_ELEMENT_ARRAY;
  57. typedef enum _DHCP_CLIENT_SEARCH_TYPE {
  58. DhcpClientIpAddress,DhcpClientHardwareAddress,DhcpClientName
  59. } DHCP_SEARCH_INFO_TYPE,*LPDHCP_SEARCH_INFO_TYPE;
  60. typedef struct _DHCP_CLIENT_SEARCH_INFO {
  61. DHCP_SEARCH_INFO_TYPE SearchType;
  62. union _DHCP_CLIENT_SEARCH_UNION {
  63. DHCP_IP_ADDRESS ClientIpAddress;
  64. DHCP_CLIENT_UID ClientHardwareAddress;
  65. LPWSTR ClientName;
  66. } SearchInfo;
  67. } DHCP_SEARCH_INFO,*LPDHCP_SEARCH_INFO;
  68. typedef enum _DHCP_OPTION_SCOPE_TYPE {
  69. DhcpDefaultOptions,DhcpGlobalOptions,DhcpSubnetOptions,DhcpReservedOptions,DhcpMScopeOptions
  70. } DHCP_OPTION_SCOPE_TYPE,*LPDHCP_OPTION_SCOPE_TYPE;
  71. typedef struct _DHCP_RESERVED_SCOPE {
  72. DHCP_IP_ADDRESS ReservedIpAddress;
  73. DHCP_IP_ADDRESS ReservedIpSubnetAddress;
  74. } DHCP_RESERVED_SCOPE,*LPDHCP_RESERVED_SCOPE;
  75. typedef struct _DHCP_OPTION_SCOPE_INFO {
  76. DHCP_OPTION_SCOPE_TYPE ScopeType;
  77. union _DHCP_OPTION_SCOPE_UNION {
  78. PVOID DefaultScopeInfo;
  79. PVOID GlobalScopeInfo;
  80. DHCP_IP_ADDRESS SubnetScopeInfo;
  81. DHCP_RESERVED_SCOPE ReservedScopeInfo;
  82. LPWSTR MScopeInfo;
  83. } ScopeInfo;
  84. } DHCP_OPTION_SCOPE_INFO,*LPDHCP_OPTION_SCOPE_INFO;
  85. typedef struct _DHCP_HOST_INFO {
  86. DHCP_IP_ADDRESS IpAddress;
  87. LPWSTR NetBiosName;
  88. LPWSTR HostName;
  89. } DHCP_HOST_INFO,*LPDHCP_HOST_INFO;
  90. typedef struct _DHCP_CLIENT_INFO {
  91. DHCP_IP_ADDRESS ClientIpAddress;
  92. DHCP_IP_MASK SubnetMask;
  93. DHCP_CLIENT_UID ClientHardwareAddress;
  94. LPWSTR ClientName;
  95. LPWSTR ClientComment;
  96. DATE_TIME ClientLeaseExpires;
  97. DHCP_HOST_INFO OwnerHost;
  98. } DHCP_CLIENT_INFO,*LPDHCP_CLIENT_INFO;
  99. typedef struct _DHCP_CLIENT_INFO_ARRAY {
  100. DWORD NumElements;
  101. LPDHCP_CLIENT_INFO *Clients;
  102. } DHCP_CLIENT_INFO_ARRAY,*LPDHCP_CLIENT_INFO_ARRAY;
  103. typedef struct _DHCP_IP_ARRAY {
  104. DWORD NumElements;
  105. LPDHCP_IP_ADDRESS Elements;
  106. } DHCP_IP_ARRAY,*LPDHCP_IP_ARRAY;
  107. typedef enum _DHCP_SUBNET_STATE {
  108. DhcpSubnetEnabled = 0,DhcpSubnetDisabled,DhcpSubnetEnabledSwitched,DhcpSubnetDisabledSwitched,DhcpSubnetInvalidState
  109. } DHCP_SUBNET_STATE,*LPDHCP_SUBNET_STATE;
  110. typedef struct _DHCP_SUBNET_INFO {
  111. DHCP_IP_ADDRESS SubnetAddress;
  112. DHCP_IP_MASK SubnetMask;
  113. LPWSTR SubnetName;
  114. LPWSTR SubnetComment;
  115. DHCP_HOST_INFO PrimaryHost;
  116. DHCP_SUBNET_STATE SubnetState;
  117. } DHCP_SUBNET_INFO,*LPDHCP_SUBNET_INFO;
  118. typedef enum _DHCP_OPTION_DATA_TYPE {
  119. DhcpByteOption,DhcpWordOption,DhcpDWordOption,DhcpDWordDWordOption,DhcpIpAddressOption,DhcpStringDataOption,DhcpBinaryDataOption,DhcpEncapsulatedDataOption
  120. } DHCP_OPTION_DATA_TYPE,*LPDHCP_OPTION_DATA_TYPE;
  121. typedef struct _DHCP_OPTION_DATA_ELEMENT {
  122. DHCP_OPTION_DATA_TYPE OptionType;
  123. union _DHCP_OPTION_ELEMENT_UNION {
  124. BYTE ByteOption;
  125. WORD WordOption;
  126. DWORD DWordOption;
  127. DWORD_DWORD DWordDWordOption;
  128. DHCP_IP_ADDRESS IpAddressOption;
  129. LPWSTR StringDataOption;
  130. DHCP_BINARY_DATA BinaryDataOption;
  131. DHCP_BINARY_DATA EncapsulatedDataOption;
  132. } Element;
  133. } DHCP_OPTION_DATA_ELEMENT,*LPDHCP_OPTION_DATA_ELEMENT;
  134. typedef struct _DHCP_OPTION_DATA {
  135. DWORD NumElements;
  136. LPDHCP_OPTION_DATA_ELEMENT Elements;
  137. } DHCP_OPTION_DATA,*LPDHCP_OPTION_DATA;
  138. typedef struct _DHCP_OPTION_VALUE {
  139. DHCP_OPTION_ID OptionID;
  140. DHCP_OPTION_DATA Value;
  141. } DHCP_OPTION_VALUE,*LPDHCP_OPTION_VALUE;
  142. typedef struct _DHCP_OPTION {
  143. DHCP_OPTION_ID OptionID;
  144. LPWSTR OptionName;
  145. LPWSTR OptionComment;
  146. DHCP_OPTION_DATA DefaultValue;
  147. DHCP_OPTION_TYPE OptionType;
  148. } DHCP_OPTION, *LPDHCP_OPTION;
  149. DWORD WINAPI DhcpGetVersion(LPWSTR ServerIpAddress,LPDWORD MajorVersion,LPDWORD MinorVersion);
  150. DWORD WINAPI DhcpSetServerBindingInfo(DHCP_CONST WCHAR *ServerIpAddress,ULONG Flags,LPDHCP_BIND_ELEMENT_ARRAY BindElementInfo);
  151. DWORD WINAPI DhcpGetServerBindingInfo(DHCP_CONST WCHAR *ServerIpAddress,ULONG Flags,LPDHCP_BIND_ELEMENT_ARRAY *BindElementsInfo);
  152. DWORD WINAPI DhcpCreateClientInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_CONST DHCP_CLIENT_INFO *ClientInfo);
  153. DWORD WINAPI DhcpSetClientInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_CONST DHCP_CLIENT_INFO *ClientInfo);
  154. DWORD WINAPI DhcpGetClientInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_CONST DHCP_SEARCH_INFO *SearchInfo,LPDHCP_CLIENT_INFO *ClientInfo);
  155. DWORD WINAPI DhcpDeleteClientInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_CONST DHCP_SEARCH_INFO *ClientInfo);
  156. DWORD WINAPI DhcpEnumSubnetClients(DHCP_CONST WCHAR *ServerIpAddress,DHCP_IP_ADDRESS SubnetAddress,DHCP_RESUME_HANDLE *ResumeHandle,DWORD PreferredMaximum,LPDHCP_CLIENT_INFO_ARRAY *ClientInfo,DWORD *ClientsRead,DWORD *ClientsTotal);
  157. DWORD WINAPI DhcpEnumSubnets(DHCP_CONST WCHAR *ServerIpAddress,DHCP_RESUME_HANDLE *ResumeHandle,DWORD PreferredMaximum,LPDHCP_IP_ARRAY *EnumInfo,DWORD *ElementsRead,DWORD *ElementsTotal);
  158. DWORD WINAPI DhcpGetSubnetInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_IP_ADDRESS SubnetAddress,LPDHCP_SUBNET_INFO *SubnetInfo);
  159. DWORD WINAPI DhcpGetOptionValue(DHCP_CONST WCHAR *ServerIpAddress,DHCP_OPTION_ID OptionID,DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo,LPDHCP_OPTION_VALUE *OptionValue);
  160. VOID WINAPI DhcpRpcFreeMemory(PVOID BufferPointer);
  161. #define ERROR_DHCP_REGISTRY_INIT_FAILED 20000
  162. #define ERROR_DHCP_DATABASE_INIT_FAILED 20001
  163. #define ERROR_DHCP_RPC_INIT_FAILED 20002
  164. #define ERROR_DHCP_NETWORK_INIT_FAILED 20003
  165. #define ERROR_DHCP_SUBNET_EXISTS 20004
  166. #define ERROR_DHCP_SUBNET_NOT_PRESENT 20005
  167. #define ERROR_DHCP_PRIMARY_NOT_FOUND 20006
  168. #define ERROR_DHCP_ELEMENT_CANT_REMOVE 20007
  169. #define ERROR_DHCP_OPTION_EXISTS 20009
  170. #define ERROR_DHCP_OPTION_NOT_PRESENT 20010
  171. #define ERROR_DHCP_ADDRESS_NOT_AVAILABLE 20011
  172. #define ERROR_DHCP_RANGE_FULL 20012
  173. #define ERROR_DHCP_JET_ERROR 20013
  174. #define ERROR_DHCP_CLIENT_EXISTS 20014
  175. #define ERROR_DHCP_INVALID_DHCP_MESSAGE 20015
  176. #define ERROR_DHCP_INVALID_DHCP_CLIENT 20016
  177. #define ERROR_DHCP_SERVICE_PAUSED 20017
  178. #define ERROR_DHCP_NOT_RESERVED_CLIENT 20018
  179. #define ERROR_DHCP_RESERVED_CLIENT 20019
  180. #define ERROR_DHCP_RANGE_TOO_SMALL 20020
  181. #define ERROR_DHCP_IPRANGE_EXISTS 20021
  182. #define ERROR_DHCP_RESERVEDIP_EXISTS 20022
  183. #define ERROR_DHCP_INVALID_RANGE 20023
  184. #define ERROR_DHCP_RANGE_EXTENDED 20024
  185. #define ERROR_DHCP_RANGE_EXTENSION_TOO_SMALL 20025
  186. #define ERROR_DHCP_WARNING_RANGE_EXTENDED_LESS 20026
  187. #define ERROR_DHCP_JET_CONV_REQUIRED 20027
  188. #define ERROR_DHCP_SERVER_INVALID_BOOT_FILE_TABLE 20028
  189. #define ERROR_DHCP_SERVER_UNKNOWN_BOOT_FILE_NAME 20029
  190. #define ERROR_DHCP_SUPER_SCOPE_NAME_TOO_LONG 20030
  191. #define ERROR_DHCP_IP_ADDRESS_IN_USE 20032
  192. #define ERROR_DHCP_LOG_FILE_PATH_TOO_LONG 20033
  193. #define ERROR_DHCP_UNSUPPORTED_CLIENT 20034
  194. #define ERROR_DHCP_SERVER_INTERFACE_NOTIFICATION_EVENT 20035
  195. #define ERROR_DHCP_JET97_CONV_REQUIRED 20036
  196. #define ERROR_DHCP_ROGUE_INIT_FAILED 20037
  197. #define ERROR_DHCP_ROGUE_SAMSHUTDOWN 20038
  198. #define ERROR_DHCP_ROGUE_NOT_AUTHORIZED 20039
  199. #define ERROR_DHCP_ROGUE_DS_UNREACHABLE 20040
  200. #define ERROR_DHCP_ROGUE_DS_CONFLICT 20041
  201. #define ERROR_DHCP_ROGUE_NOT_OUR_ENTERPRISE 20042
  202. #define ERROR_DHCP_STANDALONE_IN_DS 20043
  203. #define ERROR_DHCP_CLASS_NOT_FOUND 20044
  204. #define ERROR_DHCP_CLASS_ALREADY_EXISTS 20045
  205. #define ERROR_DHCP_SCOPE_NAME_TOO_LONG 20046
  206. #define ERROR_DHCP_DEFAULT_SCOPE_EXISTS 20047
  207. #define ERROR_DHCP_CANT_CHANGE_ATTRIBUTE 20048
  208. #define ERROR_DHCP_IPRANGE_CONV_ILLEGAL 20049
  209. #define ERROR_DHCP_NETWORK_CHANGED 20050
  210. #define ERROR_DHCP_CANNOT_MODIFY_BINDINGS 20051
  211. #define ERROR_DHCP_SUBNET_EXISTS_2 20052
  212. #define ERROR_DHCP_MSCOPE_EXISTS 20053
  213. #define ERROR_DHCP_MSCOPE_RANGE_TOO_SMALL 20054
  214. #define ERROR_DHCP_MSCOPE_RANGE_TOO_SMALL 20054
  215. #define ERROR_DDS_NO_DS_AVAILABLE 20070
  216. #define ERROR_DDS_NO_DHCP_ROOT 20071
  217. #define ERROR_DDS_DHCP_SERVER_NOT_FOUND 20074
  218. #define ERROR_DDS_OPTION_ALREADY_EXISTS 20075
  219. #define ERROR_DDS_OPTION_DOES_NOT_EXIST 20076
  220. #define ERROR_DDS_CLASS_EXISTS 20077
  221. #define ERROR_DDS_CLASS_DOES_NOT_EXIST 20078
  222. #define ERROR_DDS_SERVER_ALREADY_EXISTS 20079
  223. #define ERROR_DDS_SERVER_DOES_NOT_EXIST 20080
  224. #define ERROR_DDS_SERVER_ADDRESS_MISMATCH 20081
  225. #define ERROR_DDS_SUBNET_EXISTS 20082
  226. #define ERROR_DDS_SUBNET_HAS_DIFF_SUPER_SCOPE 20083
  227. #define ERROR_DDS_SUBNET_NOT_PRESENT 20084
  228. #define ERROR_DDS_RESERVATION_NOT_PRESENT 20085
  229. #define ERROR_DDS_RESERVATION_CONFLICT 20086
  230. #define ERROR_DDS_POSSIBLE_RANGE_CONFLICT 20087
  231. #define ERROR_DDS_RANGE_DOES_NOT_EXIST 20088
  232. typedef struct _DHCP_OPTION_ARRAY {
  233. DWORD NumElements;
  234. LPDHCP_OPTION Options;
  235. } DHCP_OPTION_ARRAY, *LPDHCP_OPTION_ARRAY;
  236. #if (_WIN32_WINNT >= 0x0600)
  237. typedef struct _DHCP_BINARY_DATA {
  238. DWORD DataLength;
  239. BYTE* Data;
  240. } DHCP_BINARY_DATA, *LPDHCP_BINARY_DATA;
  241. typedef DHCP_BINARY_DATA DHCP_CLIENT_UID;
  242. typedef enum _DHCP_OPTION_SCOPE_TYPE6 {
  243. DhcpDefaultOptions6,
  244. DhcpScopeOptions6,
  245. DhcpReservedOptions6
  246. } DHCP_OPTION_SCOPE_TYPE6;
  247. typedef struct _DHCP_ALL_OPTIONS {
  248. DWORD Flags;
  249. LPDHCP_OPTION_ARRAY NonVendorOptions;
  250. DWORD NumVendorOptions;
  251. struct {
  252. DHCP_OPTION Option;
  253. LPWSTR VendorName;
  254. LPWSTR ClassName;
  255. } *VendorOptions;
  256. } DHCP_ALL_OPTIONS, *LPDHCP_ALL_OPTIONS;
  257. typedef struct _DHCP_IPV6_ADDRESS {
  258. ULONGLONG HighOrderBits;
  259. ULONGLONG LowOrderBits;
  260. } DHCP_IPV6_ADDRESS, *PDHCP_IPV6_ADDRESS, *LPDHCP_IPV6_ADDRESS, DHCP_RESUME_IPV6_HANDLE;
  261. typedef struct _DHCP_ALL_OPTION_VALUES {
  262. DWORD Flags;
  263. DWORD NumElements;
  264. struct {
  265. LPWSTR ClassName;
  266. LPWSTR VendorName;
  267. WINBOOL IsVendor;
  268. LPDHCP_OPTION_VALUE_ARRAY OptionsArray;
  269. } *Options;
  270. } DHCP_ALL_OPTION_VALUES, *LPDHCP_ALL_OPTION_VALUES;
  271. typedef struct _DHCP_OPTION_SCOPE_INFO6 {
  272. DHCP_OPTION_SCOPE_TYPE6 ScopeType;
  273. union {
  274. PVOID DefaultScopeInfo;
  275. DHCP_IPV6_ADDRESS SubnetScopeInfo;
  276. DHCP_RESERVED_SCOPE6 ReservedScopeInfo;
  277. } ScopeInfo;
  278. } DHCP_OPTION_SCOPE_INFO6, *PDHCP_OPTION_SCOPE_INFO6, *LPDHCP_OPTION_SCOPE_INFO6;
  279. typedef struct _DHCP_OPTION_VALUE_ARRAY {
  280. DWORD NumElements;
  281. LPDHCP_OPTION_VALUE Values;
  282. } DHCP_OPTION_VALUE_ARRAY, *LPDHCP_OPTION_VALUE_ARRAY;
  283. typedef enum _DHCP_SUBNET_ELEMENT_TYPE_V6 {
  284. Dhcpv6IpRanges,
  285. Dhcpv6ReservedIps,
  286. Dhcpv6ExcludedIpRanges
  287. } DHCP_SUBNET_ELEMENT_TYPE_V6, *LPDHCP_SUBNET_ELEMENT_TYPE_V6;
  288. typedef struct _DHCP_IP_RANGE_V6 {
  289. DHCP_IPV6_ADDRESS StartAddress;
  290. DHCP_IPV6_ADDRESS EndAddress;
  291. } DHCP_IP_RANGE_V6, *LPDHCP_IP_RANGE_V6;
  292. typedef struct _DHCP_IP_RESERVATION_V6 {
  293. DHCP_IPV6_ADDRESS ReservedIpAddress;
  294. DHCP_CLIENT_UID* ReservedForClient;
  295. DWORD InterfaceId;
  296. } DHCP_IP_RESERVATION_V6, *LPDHCP_IP_RESERVATION_V6;
  297. typedef struct DHCP_SUBNET_ELEMENT_DATA_V6 {
  298. DHCP_SUBNET_ELEMENT_TYPE_V6 ElementType;
  299. union _DHCP_SUBNET_ELEMENT_UNION_V6 {
  300. DHCP_IP_RANGE_V6* IpRange;
  301. DHCP_IP_RESERVATION_V6* ReservedIp;
  302. DHCP_IP_RANGE_V6* ExcludeIpRange;
  303. } Element;
  304. } DHCP_SUBNET_ELEMENT_DATA_V6, *LDHCP_SUBNET_ELEMENT_DATA_V6, *LPDHCP_SUBNET_ELEMENT_DATA_V6;
  305. typedef struct _DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 {
  306. DWORD NumElements;
  307. LPDHCP_SUBNET_ELEMENT_DATA_V6 Elements;
  308. } DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6, *LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V6;
  309. typedef struct _DHCP_SUBNET_INFO_V6 {
  310. DHCP_IPV6_ADDRESS SubnetAddress;
  311. ULONG Prefix;
  312. USHORT Preference;
  313. LPWSTR SubnetName;
  314. LPWSTR SubnetComment;
  315. DWORD State;
  316. DWORD ScopeId;
  317. } DHCP_SUBNET_INFO_V6, *PDHCP_SUBNET_INFO_V6, *LPDHCP_SUBNET_INFO_V6;
  318. DWORD DHCP_API_FUNCTION DhcpAddSubnetElementV6(
  319. LPWSTR ServerIpAddress,
  320. DHCP_IPV6_ADDRESS SubnetAddress,
  321. LDHCP_SUBNET_ELEMENT_DATA_V6 *AddElementInfo
  322. );
  323. DWORD DHCP_API_FUNCTION DhcpCreateOptionV6(
  324. LPWSTR ServerIpAddress,
  325. DWORD Flags,
  326. DHCP_OPTION_ID OptionId,
  327. WCHAR *ClassName,
  328. WCHAR *VendorName,
  329. LPDHCP_OPTION OptionInfo
  330. );
  331. DWORD DHCP_API_FUNCTION DhcpDeleteSubnetV6(
  332. LPWSTR ServerIpAddress,
  333. DHCP_IPV6_ADDRESS SubnetAddress,
  334. DHCP_FORCE_FLAG ForceFlag
  335. );
  336. DWORD DHCP_API_FUNCTION DhcpCreateSubnetV6(
  337. LPWSTR ServerIpAddress,
  338. DHCP_IPV6_ADDRESS SubnetAddress,
  339. LDHCP_SUBNET_INFO_V6 *SubnetInfo
  340. );
  341. DWORD DHCP_API_FUNCTION DhcpEnumOptionsV6(
  342. LPWSTR ServerIpAddress,
  343. DWORD Flags,
  344. WCHAR *ClassName,
  345. WCHAR *VendorName,
  346. DHCP_RESUME_HANDLE *ResumeHandle,
  347. DWORD PreferredMaximum,
  348. LPDHCP_OPTION_ARRAY *Options,
  349. DWORD *OptionsRead,
  350. DWORD *OptionsTotal
  351. );
  352. DWORD DHCP_API_FUNCTION DhcpEnumOptionValuesV6(
  353. LPWSTR ServerIpAddress,
  354. DWORD Flags,
  355. WCHAR *ClassName,
  356. WCHAR *VendorName,
  357. DHCP_OPTION_SCOPE_INFO6 ScopeInfo,
  358. DHCP_RESUME_HANDLE *ResumeHandle,
  359. DWORD PreferredMaximum,
  360. LPDHCP_OPTION_VALUE_ARRAY *OptionValues,
  361. DWORD *OptionsRead,
  362. DWORD *OptionsTotal
  363. );
  364. DWORD DHCP_API_FUNCTION DhcpEnumSubnetClientsV6(
  365. LPWSTR ServerIpAddress,
  366. DHCP_IPV6_ADDRESS SubnetAddress,
  367. DHCP_RESUME_IPV6_HANDLE *ResumeHandle,
  368. DWORD PreferredMaximum,
  369. LPDHCP_CLIENT_INFO_ARRAY_V6 *ClientInfo,
  370. DWORD *ClientsRead,
  371. DWORD *ClientsTotal
  372. );
  373. DWORD DHCP_API_FUNCTION DhcpEnumSubnetElementsV6(
  374. LPWSTR ServerIpAddress,
  375. DHCP_IPV6_ADDRESS SubnetAddress,
  376. DHCP_SUBNET_ELEMENT_TYPE_V6 EnumElementType,
  377. DHCP_RESUME_HANDLE *ResumeHandle,
  378. DWORD PreferredMaximum,
  379. LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 *EnumElementInfo,
  380. DWORD *ElementsRead,
  381. DWORD *ElementsTotal
  382. );
  383. DWORD DHCP_API_FUNCTION DhcpEnumSubnetsV6(
  384. LPWSTR ServerIpAddress,
  385. DHCP_RESUME_HANDLE *ResumeHandle,
  386. DWORD PreferredMaximum,
  387. LPDHCPV6_IP_ARRAY *EnumInfo,
  388. DWORD *ElementsRead,
  389. DWORD *ElementsTotal
  390. );
  391. DWORD DHCP_API_FUNCTION DhcpGetAllOptionsV6(
  392. LPWSTR ServerIpAddress,
  393. DWORD Flags,
  394. LPDHCP_ALL_OPTIONS *OptionStruct
  395. );
  396. DWORD DHCP_API_FUNCTION DhcpGetAllOptionValuesV6(
  397. LPWSTR ServerIpAddress,
  398. DWORD Flags,
  399. LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
  400. LPDHCP_ALL_OPTION_VALUES *Values
  401. );
  402. DWORD DHCP_API_FUNCTION DhcpGetOptionInfoV6(
  403. LPWSTR ServerIpAddress,
  404. DWORD Flags,
  405. DHCP_OPTION_ID OptionID,
  406. WCHAR *ClassName,
  407. WCHAR *VendorName,
  408. LPDHCP_OPTION *OptionInfo
  409. );
  410. DWORD DHCP_API_FUNCTION DhcpGetSubnetInfoV6(
  411. LPWSTR ServerIpAddress,
  412. DHCP_IPV6_ADDRESS SubnetAddress,
  413. LPDHCP_SUBNET_INFO_V6 *SubnetInfo
  414. );
  415. DWORD DHCP_API_FUNCTION DhcpRemoveOptionV6(
  416. LPWSTR ServerIpAddress,
  417. DWORD Flags,
  418. DHCP_OPTION_ID OptionID,
  419. WCHAR *ClassName,
  420. WCHAR *VendorName
  421. );
  422. DWORD DHCP_API_FUNCTION DhcpRemoveOptionValueV6(
  423. LPWSTR ServerIpAddress,
  424. DWORD Flags,
  425. DHCP_OPTION_ID OptionID,
  426. WCHAR *ClassName,
  427. WCHAR *VendorName,
  428. DHCP_OPTION_SCOPE_INFO6 ScopeInfo
  429. );
  430. DWORD DHCP_API_FUNCTION DhcpRemoveSubnetElementV6(
  431. LPWSTR ServerIpAddress,
  432. DHCP_IPV6_ADDRESS SubnetAddress,
  433. LDHCP_SUBNET_ELEMENT_DATA_V6 RemoveElementInfo,
  434. DHCP_FORCE_FLAG ForceFlag
  435. );
  436. DWORD DHCP_API_FUNCTION DhcpSetOptionInfoV6(
  437. LPWSTR ServerIpAddress,
  438. DWORD Flags,
  439. DHCP_OPTION_ID OptionID,
  440. WCHAR *ClassName,
  441. WCHAR *VendorName,
  442. LPDHCP_OPTION OptionInfo
  443. );
  444. DWORD DHCP_API_FUNCTION DhcpSetOptionValueV6(
  445. LPWSTR ServerIpAddress,
  446. DWORD Flags,
  447. DHCP_OPTION_ID OptionId,
  448. WCHAR *ClassName,
  449. WCHAR *VendorName,
  450. LDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
  451. LDHCP_OPTION_DATA OptionValue
  452. );
  453. #endif /*(_WIN32_WINNT >= 0x0600)*/
  454. #ifdef __cplusplus
  455. }
  456. #endif
  457. #endif