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