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 21 extern "C" { 22 #else 23 #define DHCP_CONST 24 #endif 25 26 typedef DWORD DHCP_IP_ADDRESS,*PDHCP_IP_ADDRESS,*LPDHCP_IP_ADDRESS; 27 typedef DWORD DHCP_IP_MASK; 28 typedef DWORD DHCP_RESUME_HANDLE; 29 typedef DWORD DHCP_OPTION_ID; 30 31 typedef enum _DHCP_OPTION_TYPE { 32 DhcpUnaryElementTypeOption = 0, 33 DhcpArrayTypeOption 34 } DHCP_OPTION_TYPE, *LPDHCP_OPTION_TYPE; 35 36 typedef struct _DATE_TIME { 37 DWORD dwLowDateTime; 38 DWORD dwHighDateTime; 39 } DATE_TIME,*LPDATE_TIME; 40 41 typedef struct _DWORD_DWORD { 42 DWORD DWord1; 43 DWORD DWord2; 44 } DWORD_DWORD,*LPDWORD_DWORD; 45 46 typedef struct _DHCP_BINARY_DATA { 47 DWORD DataLength; 48 BYTE *Data; 49 } DHCP_BINARY_DATA,*LPDHCP_BINARY_DATA; 50 51 typedef DHCP_BINARY_DATA DHCP_CLIENT_UID; 52 53 #define DHCP_ENDPOINT_FLAG_CANT_MODIFY 0x01 54 55 typedef 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 65 typedef struct _DHCP_BIND_ELEMENT_ARRAY { 66 DWORD NumElements; 67 LPDHCP_BIND_ELEMENT Elements; 68 } DHCP_BIND_ELEMENT_ARRAY,*LPDHCP_BIND_ELEMENT_ARRAY; 69 70 typedef enum _DHCP_CLIENT_SEARCH_TYPE { 71 DhcpClientIpAddress,DhcpClientHardwareAddress,DhcpClientName 72 } DHCP_SEARCH_INFO_TYPE,*LPDHCP_SEARCH_INFO_TYPE; 73 74 typedef 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 83 typedef enum _DHCP_OPTION_SCOPE_TYPE { 84 DhcpDefaultOptions,DhcpGlobalOptions,DhcpSubnetOptions,DhcpReservedOptions,DhcpMScopeOptions 85 } DHCP_OPTION_SCOPE_TYPE,*LPDHCP_OPTION_SCOPE_TYPE; 86 87 typedef struct _DHCP_RESERVED_SCOPE { 88 DHCP_IP_ADDRESS ReservedIpAddress; 89 DHCP_IP_ADDRESS ReservedIpSubnetAddress; 90 } DHCP_RESERVED_SCOPE,*LPDHCP_RESERVED_SCOPE; 91 92 typedef 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 103 typedef struct _DHCP_HOST_INFO { 104 DHCP_IP_ADDRESS IpAddress; 105 LPWSTR NetBiosName; 106 LPWSTR HostName; 107 } DHCP_HOST_INFO,*LPDHCP_HOST_INFO; 108 109 typedef 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 119 typedef struct _DHCP_CLIENT_INFO_ARRAY { 120 DWORD NumElements; 121 LPDHCP_CLIENT_INFO *Clients; 122 } DHCP_CLIENT_INFO_ARRAY,*LPDHCP_CLIENT_INFO_ARRAY; 123 124 typedef struct _DHCP_IP_ARRAY { 125 DWORD NumElements; 126 LPDHCP_IP_ADDRESS Elements; 127 } DHCP_IP_ARRAY,*LPDHCP_IP_ARRAY; 128 129 typedef enum _DHCP_SUBNET_STATE { 130 DhcpSubnetEnabled = 0,DhcpSubnetDisabled,DhcpSubnetEnabledSwitched,DhcpSubnetDisabledSwitched,DhcpSubnetInvalidState 131 } DHCP_SUBNET_STATE,*LPDHCP_SUBNET_STATE; 132 133 typedef 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 142 typedef enum _DHCP_OPTION_DATA_TYPE { 143 DhcpByteOption,DhcpWordOption,DhcpDWordOption,DhcpDWordDWordOption,DhcpIpAddressOption,DhcpStringDataOption,DhcpBinaryDataOption,DhcpEncapsulatedDataOption 144 } DHCP_OPTION_DATA_TYPE,*LPDHCP_OPTION_DATA_TYPE; 145 146 typedef 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 161 typedef struct _DHCP_OPTION_DATA { 162 DWORD NumElements; 163 LPDHCP_OPTION_DATA_ELEMENT Elements; 164 } DHCP_OPTION_DATA,*LPDHCP_OPTION_DATA; 165 166 typedef struct _DHCP_OPTION_VALUE { 167 DHCP_OPTION_ID OptionID; 168 DHCP_OPTION_DATA Value; 169 } DHCP_OPTION_VALUE,*LPDHCP_OPTION_VALUE; 170 171 typedef 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 179 DWORD WINAPI DhcpGetVersion(LPWSTR ServerIpAddress,LPDWORD MajorVersion,LPDWORD MinorVersion); 180 DWORD WINAPI DhcpSetServerBindingInfo(DHCP_CONST WCHAR *ServerIpAddress,ULONG Flags,LPDHCP_BIND_ELEMENT_ARRAY BindElementInfo); 181 DWORD WINAPI DhcpGetServerBindingInfo(DHCP_CONST WCHAR *ServerIpAddress,ULONG Flags,LPDHCP_BIND_ELEMENT_ARRAY *BindElementsInfo); 182 DWORD WINAPI DhcpCreateClientInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_CONST DHCP_CLIENT_INFO *ClientInfo); 183 DWORD WINAPI DhcpSetClientInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_CONST DHCP_CLIENT_INFO *ClientInfo); 184 DWORD WINAPI DhcpGetClientInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_CONST DHCP_SEARCH_INFO *SearchInfo,LPDHCP_CLIENT_INFO *ClientInfo); 185 DWORD WINAPI DhcpDeleteClientInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_CONST DHCP_SEARCH_INFO *ClientInfo); 186 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); 187 DWORD WINAPI DhcpEnumSubnets(DHCP_CONST WCHAR *ServerIpAddress,DHCP_RESUME_HANDLE *ResumeHandle,DWORD PreferredMaximum,LPDHCP_IP_ARRAY *EnumInfo,DWORD *ElementsRead,DWORD *ElementsTotal); 188 DWORD WINAPI DhcpGetSubnetInfo(DHCP_CONST WCHAR *ServerIpAddress,DHCP_IP_ADDRESS SubnetAddress,LPDHCP_SUBNET_INFO *SubnetInfo); 189 DWORD WINAPI DhcpGetOptionValue(DHCP_CONST WCHAR *ServerIpAddress,DHCP_OPTION_ID OptionID,DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo,LPDHCP_OPTION_VALUE *OptionValue); 190 VOID 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_2 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_DOES_NOT_EXIST 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 264 typedef struct _DHCP_OPTION_ARRAY { 265 DWORD NumElements; 266 LPDHCP_OPTION Options; 267 } DHCP_OPTION_ARRAY, *LPDHCP_OPTION_ARRAY; 268 269 #if (_WIN32_WINNT >= 0x0600) 270 typedef struct _DHCP_BINARY_DATA { 271 DWORD DataLength; 272 BYTE* Data; 273 } DHCP_BINARY_DATA, *LPDHCP_BINARY_DATA; 274 275 typedef DHCP_BINARY_DATA DHCP_CLIENT_UID; 276 277 typedef enum _DHCP_OPTION_SCOPE_TYPE6 { 278 DhcpDefaultOptions6, 279 DhcpScopeOptions6, 280 DhcpReservedOptions6 281 } DHCP_OPTION_SCOPE_TYPE6; 282 283 typedef 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 294 typedef 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 299 typedef 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 310 typedef 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 319 typedef struct _DHCP_OPTION_VALUE_ARRAY { 320 DWORD NumElements; 321 LPDHCP_OPTION_VALUE Values; 322 } DHCP_OPTION_VALUE_ARRAY, *LPDHCP_OPTION_VALUE_ARRAY; 323 324 typedef enum _DHCP_SUBNET_ELEMENT_TYPE_V6 { 325 Dhcpv6IpRanges, 326 Dhcpv6ReservedIps, 327 Dhcpv6ExcludedIpRanges 328 } DHCP_SUBNET_ELEMENT_TYPE_V6, *LPDHCP_SUBNET_ELEMENT_TYPE_V6; 329 330 typedef 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 335 typedef 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 341 typedef 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 350 typedef 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 355 typedef 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 365 DWORD DHCP_API_FUNCTION DhcpAddSubnetElementV6( 366 LPWSTR ServerIpAddress, 367 DHCP_IPV6_ADDRESS SubnetAddress, 368 LDHCP_SUBNET_ELEMENT_DATA_V6 *AddElementInfo 369 ); 370 371 DWORD 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 380 DWORD DHCP_API_FUNCTION DhcpDeleteSubnetV6( 381 LPWSTR ServerIpAddress, 382 DHCP_IPV6_ADDRESS SubnetAddress, 383 DHCP_FORCE_FLAG ForceFlag 384 ); 385 386 DWORD DHCP_API_FUNCTION DhcpCreateSubnetV6( 387 LPWSTR ServerIpAddress, 388 DHCP_IPV6_ADDRESS SubnetAddress, 389 LDHCP_SUBNET_INFO_V6 *SubnetInfo 390 ); 391 392 DWORD 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 404 DWORD 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 417 DWORD 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 427 DWORD 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 438 DWORD 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 447 DWORD DHCP_API_FUNCTION DhcpGetAllOptionsV6( 448 LPWSTR ServerIpAddress, 449 DWORD Flags, 450 LPDHCP_ALL_OPTIONS *OptionStruct 451 ); 452 453 DWORD DHCP_API_FUNCTION DhcpGetAllOptionValuesV6( 454 LPWSTR ServerIpAddress, 455 DWORD Flags, 456 LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo, 457 LPDHCP_ALL_OPTION_VALUES *Values 458 ); 459 460 DWORD 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 469 DWORD DHCP_API_FUNCTION DhcpGetSubnetInfoV6( 470 LPWSTR ServerIpAddress, 471 DHCP_IPV6_ADDRESS SubnetAddress, 472 LPDHCP_SUBNET_INFO_V6 *SubnetInfo 473 ); 474 475 DWORD DHCP_API_FUNCTION DhcpRemoveOptionV6( 476 LPWSTR ServerIpAddress, 477 DWORD Flags, 478 DHCP_OPTION_ID OptionID, 479 WCHAR *ClassName, 480 WCHAR *VendorName 481 ); 482 483 DWORD 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 492 DWORD 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 499 DWORD 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 508 DWORD 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