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