Headers diff for dhcpsapi.dll between 6.1.7600.16385-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 dhcpsapi.h (6.1.7600.16385-Windows_7.0)   dhcpsapi.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 13 skipping to change at line 13
Copyright (c) Microsoft Corporation. All rights reserved. Copyright (c) Microsoft Corporation. All rights reserved.
Module Name: dhcpsapi.h Module Name: dhcpsapi.h
--*/ --*/
#ifndef _DHCPSAPI_ #ifndef _DHCPSAPI_
#define _DHCPSAPI_ #define _DHCPSAPI_
#pragma once #pragma once
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
#define LPWSTR [string] wchar_t * #define LPWSTR [string] wchar_t *
#endif #endif
#if (_MSC_VER >= 800) #if (_MSC_VER >= 800)
#define DHCP_API_FUNCTION __stdcall #define DHCP_API_FUNCTION __stdcall
#else #else
#define DHCP_API_FUNCTION #define DHCP_API_FUNCTION
#endif #endif
skipping to change at line 43 skipping to change at line 47
typedef DWORD DHCP_IP_ADDRESS, *PDHCP_IP_ADDRESS, *LPDHCP_IP_ADDRESS; typedef DWORD DHCP_IP_ADDRESS, *PDHCP_IP_ADDRESS, *LPDHCP_IP_ADDRESS;
typedef DWORD DHCP_OPTION_ID; typedef DWORD DHCP_OPTION_ID;
typedef struct _DATE_TIME { typedef struct _DATE_TIME {
DWORD dwLowDateTime; DWORD dwLowDateTime;
DWORD dwHighDateTime; DWORD dwHighDateTime;
} DATE_TIME,*PDATE_TIME, *LPDATE_TIME; } DATE_TIME,*PDATE_TIME, *LPDATE_TIME;
#endif // _DHCP_ #endif // _DHCP_
#define ERROR_DHCP_REGISTRY_INIT_FAILED 0x00004E20L
#define ERROR_DHCP_DATABASE_INIT_FAILED 0x00004E21L
#define ERROR_DHCP_RPC_INIT_FAILED 0x00004E22L
#define ERROR_DHCP_NETWORK_INIT_FAILED 0x00004E23L
#define ERROR_DHCP_SUBNET_EXITS 0x00004E24L
#define ERROR_DHCP_SUBNET_NOT_PRESENT 0x00004E25L
#define ERROR_DHCP_PRIMARY_NOT_FOUND 0x00004E26L
#define ERROR_DHCP_ELEMENT_CANT_REMOVE 0x00004E27L
#define ERROR_DHCP_OPTION_EXITS 0x00004E29L
#define ERROR_DHCP_OPTION_NOT_PRESENT 0x00004E2AL
#define ERROR_DHCP_ADDRESS_NOT_AVAILABLE 0x00004E2BL
#define ERROR_DHCP_RANGE_FULL 0x00004E2CL
#define ERROR_DHCP_JET_ERROR 0x00004E2DL
#define ERROR_DHCP_CLIENT_EXISTS 0x00004E2EL
#define ERROR_DHCP_INVALID_DHCP_MESSAGE 0x00004E2FL
#define ERROR_DHCP_INVALID_DHCP_CLIENT 0x00004E30L
#define ERROR_DHCP_SERVICE_PAUSED 0x00004E31L
#define ERROR_DHCP_NOT_RESERVED_CLIENT 0x00004E32L
#define ERROR_DHCP_RESERVED_CLIENT 0x00004E33L
#define ERROR_DHCP_RANGE_TOO_SMALL 0x00004E34L
#define ERROR_DHCP_IPRANGE_EXITS 0x00004E35L
#define ERROR_DHCP_RESERVEDIP_EXITS 0x00004E36L
#define ERROR_DHCP_INVALID_RANGE 0x00004E37L
#define ERROR_DHCP_RANGE_EXTENDED 0x00004E38L
#define ERROR_EXTEND_TOO_SMALL 0x00004E39L
#define WARNING_EXTENDED_LESS 0x00004E3AL
#define ERROR_DHCP_JET_CONV_REQUIRED 0x00004E3BL
#define ERROR_SERVER_INVALID_BOOT_FILE_TABLE 0x00004E3CL
#define ERROR_SERVER_UNKNOWN_BOOT_FILE_NAME 0x00004E3DL
#define ERROR_DHCP_SUPER_SCOPE_NAME_TOO_LONG 0x00004E3EL
#define ERROR_DHCP_IP_ADDRESS_IN_USE 0x00004E40L
#define ERROR_DHCP_LOG_FILE_PATH_TOO_LONG 0x00004E41L
#define ERROR_DHCP_UNSUPPORTED_CLIENT 0x00004E42L
#define ERROR_DHCP_JET97_CONV_REQUIRED 0x00004E44L
#define ERROR_DHCP_ROGUE_INIT_FAILED 0x00004E45L
#define ERROR_DHCP_ROGUE_SAMSHUTDOWN 0x00004E46L
#define ERROR_DHCP_ROGUE_NOT_AUTHORIZED 0x00004E47L
#define ERROR_DHCP_ROGUE_DS_UNREACHABLE 0x00004E48L
#define ERROR_DHCP_ROGUE_DS_CONFLICT 0x00004E49L
#define ERROR_DHCP_ROGUE_NOT_OUR_ENTERPRISE 0x00004E4AL
#define ERROR_DHCP_ROGUE_STANDALONE_IN_DS 0x00004E4BL
#define ERROR_DHCP_CLASS_NOT_FOUND 0x00004E4CL
#define ERROR_DHCP_CLASS_ALREADY_EXISTS 0x00004E4DL
#define ERROR_DHCP_SCOPE_NAME_TOO_LONG 0x00004E4EL
#define ERROR_DHCP_DEFAULT_SCOPE_EXITS 0x00004E4FL
#define ERROR_DHCP_CANT_CHANGE_ATTRIBUTE 0x00004E50L
#define ERROR_DHCP_IPRANGE_CONV_ILLEGAL 0x00004E51L
#define ERROR_DHCP_NETWORK_CHANGED 0x00004E52L
#define ERROR_DHCP_CANNOT_MODIFY_BINDINGS 0x00004E53L
#define ERROR_DHCP_SUBNET_EXISTS 0x00004E54L
#define ERROR_DHCP_MSCOPE_EXISTS 0x00004E55L
#define ERROR_MSCOPE_RANGE_TOO_SMALL 0x00004E56L
#define ERROR_DHCP_EXEMPTION_EXISTS 0x00004E57L
#define ERROR_DHCP_EXEMPTION_NOT_PRESENT 0x00004E58L
#define ERROR_DHCP_INVALID_PARAMETER_OPTION32 0x00004E59L
#define ERROR_DDS_NO_DS_AVAILABLE 0x00004E66L
#define ERROR_DDS_NO_DHCP_ROOT 0x00004E67L
#define ERROR_DDS_UNEXPECTED_ERROR 0x00004E68L
#define ERROR_DDS_TOO_MANY_ERRORS 0x00004E69L
#define ERROR_DDS_DHCP_SERVER_NOT_FOUND 0x00004E6AL
#define ERROR_DDS_OPTION_ALREADY_EXISTS 0x00004E6BL
#define ERROR_DDS_OPTION_DOES_NOT_EXIST 0x00004E6CL
#define ERROR_DDS_CLASS_EXISTS 0x00004E6DL
#define ERROR_DDS_CLASS_DOES_NOT_EXIST 0x00004E6EL
#define ERROR_DDS_SERVER_ALREADY_EXISTS 0x00004E6FL
#define ERROR_DDS_SERVER_DOES_NOT_EXIST 0x00004E70L
#define ERROR_DDS_SERVER_ADDRESS_MISMATCH 0x00004E71L
#define ERROR_DDS_SUBNET_EXISTS 0x00004E72L
#define ERROR_DDS_SUBNET_HAS_DIFF_SSCOPE 0x00004E73L
#define ERROR_DDS_SUBNET_NOT_PRESENT 0x00004E74L
#define ERROR_DDS_RESERVATION_NOT_PRESENT 0x00004E75L
#define ERROR_DDS_RESERVATION_CONFLICT 0x00004E76L
#define ERROR_DDS_POSSIBLE_RANGE_CONFLICT 0x00004E77L
#define ERROR_DDS_RANGE_DOES_NOT_EXIST 0x00004E78L
#define ERROR_DHCP_DELETE_BUILTIN_CLASS 0x00004E79L
#define ERROR_DHCP_INVALID_SUBNET_PREFIX 0x00004E7BL
#define ERROR_DHCP_INVALID_DELAY 0x00004E7CL
#define ERROR_DHCP_LINKLAYER_ADDRESS_EXISTS 0x00004E7DL
#define ERROR_DHCP_LINKLAYER_ADDRESS_RESERVATION_EXISTS 0x00004E7EL
#define ERROR_DHCP_LINKLAYER_ADDRESS_DOES_NOT_EXIST 0x00004E7FL
#define ERROR_DHCP_HARDWARE_ADDRESS_TYPE_ALREADY_EXEMPT 0x00004E85L
#define ERROR_DHCP_UNDEFINED_HARDWARE_ADDRESS_TYPE 0x00004E86L
#define ERROR_DHCP_OPTION_TYPE_MISMATCH 0x00004E87L
#define ERROR_DHCP_POLICY_BAD_PARENT_EXPR 0x00004E88L
#define ERROR_DHCP_POLICY_EXISTS 0x00004E89L
#define ERROR_DHCP_POLICY_RANGE_EXISTS 0x00004E8AL
#define ERROR_DHCP_POLICY_RANGE_BAD 0x00004E8BL
#define ERROR_DHCP_RANGE_INVALID_IN_SERVER_POLICY 0x00004E8CL
#define ERROR_DHCP_INVALID_POLICY_EXPRESSION 0x00004E8DL
#define ERROR_DHCP_INVALID_PROCESSING_ORDER 0x00004E8EL
#define ERROR_DHCP_POLICY_NOT_FOUND 0x00004E8FL
#define ERROR_SCOPE_RANGE_POLICY_RANGE_CONFLICT 0x00004E90L
// DHCP failover error codes
#define ERROR_DHCP_FO_SCOPE_ALREADY_IN_RELATIONSHIP 0x00004E91L
#define ERROR_DHCP_FO_RELATIONSHIP_EXISTS 0x00004E92L
#define ERROR_DHCP_FO_RELATIONSHIP_DOES_NOT_EXIST 0x00004E93L
#define ERROR_DHCP_FO_SCOPE_NOT_IN_RELATIONSHIP 0x00004E94L
#define ERROR_DHCP_FO_RELATION_IS_SECONDARY 0x00004E95L
#define ERROR_DHCP_FO_NOT_SUPPORTED 0x00004E96L
#define ERROR_DHCP_FO_TIME_OUT_OF_SYNC 0x00004E97L
#define ERROR_DHCP_FO_STATE_NOT_NORMAL 0x00004E98L
#define ERROR_DHCP_NO_ADMIN_PERMISSION 0x00004E99L
#define ERROR_DHCP_SERVER_NOT_REACHABLE 0x00004E9AL
#define ERROR_DHCP_SERVER_NOT_RUNNING 0x00004E9BL
#define ERROR_DHCP_SERVER_NAME_NOT_RESOLVED 0x00004E9CL
#define ERROR_DHCP_FO_RELATIONSHIP_NAME_TOO_LONG 0x00004E9DL
#define ERROR_DHCP_REACHED_END_OF_SELECTION 0x00004E9EL
#define ERROR_DHCP_FO_ADDSCOPE_LEASES_NOT_SYNCED 0x00004E9FL
#define ERROR_DHCP_FO_MAX_RELATIONSHIPS 0x00004EA0L
#define ERROR_DHCP_FO_IPRANGE_TYPE_CONV_ILLEGAL 0x00004EA1L
#define ERROR_DHCP_FO_MAX_ADD_SCOPES 0x00004EA2L
#define ERROR_DHCP_FO_BOOT_NOT_SUPPORTED 0x00004EA3L
#define ERROR_DHCP_FO_RANGE_PART_OF_REL 0x00004EA4L
#define ERROR_DHCP_FO_SCOPE_SYNC_IN_PROGRESS 0x00004EA5L
#define ERROR_DHCP_FO_FEATURE_NOT_SUPPORTED 0x00004EA6L
#define ERROR_DHCP_POLICY_FQDN_RANGE_UNSUPPORTED 0x00004EA7L
#define ERROR_DHCP_POLICY_FQDN_OPTION_UNSUPPORTED 0x00004EA8L
#define ERROR_DHCP_POLICY_EDIT_FQDN_UNSUPPORTED 0x00004EA9L
#define ERROR_LAST_DHCP_SERVER_ERROR 0x00004EBAL
typedef DWORD DHCP_IP_MASK; typedef DWORD DHCP_IP_MASK;
typedef DWORD DHCP_RESUME_HANDLE; typedef DWORD DHCP_RESUME_HANDLE;
typedef struct _DHCP_IP_RANGE { typedef struct _DHCP_IP_RANGE {
DHCP_IP_ADDRESS StartAddress; DHCP_IP_ADDRESS StartAddress;
DHCP_IP_ADDRESS EndAddress; DHCP_IP_ADDRESS EndAddress;
} DHCP_IP_RANGE, *LPDHCP_IP_RANGE; } DHCP_IP_RANGE, *LPDHCP_IP_RANGE;
typedef struct _DHCP_BINARY_DATA { typedef struct _DHCP_BINARY_DATA {
DWORD DataLength; DWORD DataLength;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(DataLength)] [size_is(DataLength)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_bcount(DataLength) BYTE *Data; _Field_size_bytes_(DataLength) BYTE *Data;
} DHCP_BINARY_DATA, *LPDHCP_BINARY_DATA; } DHCP_BINARY_DATA, *LPDHCP_BINARY_DATA;
typedef DHCP_BINARY_DATA DHCP_CLIENT_UID; typedef DHCP_BINARY_DATA DHCP_CLIENT_UID;
typedef struct _DHCP_HOST_INFO { typedef struct _DHCP_HOST_INFO {
DHCP_IP_ADDRESS IpAddress; // minimum information always available DHCP_IP_ADDRESS IpAddress; // minimum information always available
LPWSTR NetBiosName; // optional information LPWSTR NetBiosName; // optional information
LPWSTR HostName; // optional information LPWSTR HostName; // optional information
} DHCP_HOST_INFO, *LPDHCP_HOST_INFO; } DHCP_HOST_INFO, *LPDHCP_HOST_INFO;
skipping to change at line 121 skipping to change at line 248
DWORD Reserved2; DWORD Reserved2;
INT64 Reserved3; INT64 Reserved3;
INT64 Reserved4; INT64 Reserved4;
} DHCP_SUBNET_INFO_VQ, *LPDHCP_SUBNET_INFO_VQ; } DHCP_SUBNET_INFO_VQ, *LPDHCP_SUBNET_INFO_VQ;
typedef struct _DHCP_IP_ARRAY { typedef struct _DHCP_IP_ARRAY {
DWORD NumElements; DWORD NumElements;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_ecount(NumElements) LPDHCP_IP_ADDRESS Elements; //array _Field_size_(NumElements) LPDHCP_IP_ADDRESS Elements; //array
} DHCP_IP_ARRAY, *LPDHCP_IP_ARRAY; } DHCP_IP_ARRAY, *LPDHCP_IP_ARRAY;
typedef struct _DHCP_IP_CLUSTER { typedef struct _DHCP_IP_CLUSTER {
DHCP_IP_ADDRESS ClusterAddress; // First IP address of the cluster. DHCP_IP_ADDRESS ClusterAddress; // First IP address of the cluster.
DWORD ClusterMask; // Cluster usage mask, 0xFFFFFFFF DWORD ClusterMask; // Cluster usage mask, 0xFFFFFFFF
// indicates the cluster is fully used. // indicates the cluster is fully used.
} DHCP_IP_CLUSTER, *LPDHCP_IP_CLUSTER; } DHCP_IP_CLUSTER, *LPDHCP_IP_CLUSTER;
typedef struct _DHCP_IP_RESERVATION { typedef struct _DHCP_IP_RESERVATION {
DHCP_IP_ADDRESS ReservedIpAddress; DHCP_IP_ADDRESS ReservedIpAddress;
skipping to change at line 184 skipping to change at line 311
typedef struct _DHCP_SUBNET_ELEMENT_INFO_ARRAY { typedef struct _DHCP_SUBNET_ELEMENT_INFO_ARRAY {
DWORD NumElements; DWORD NumElements;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif // MIDL_PASS #endif // MIDL_PASS
LPDHCP_SUBNET_ELEMENT_DATA Elements; //array LPDHCP_SUBNET_ELEMENT_DATA Elements; //array
} DHCP_SUBNET_ELEMENT_INFO_ARRAY, *LPDHCP_SUBNET_ELEMENT_INFO_ARRAY; } DHCP_SUBNET_ELEMENT_INFO_ARRAY, *LPDHCP_SUBNET_ELEMENT_INFO_ARRAY;
typedef struct _DHCP_IPV6_ADDRESS { typedef struct _DHCP_IPV6_ADDRESS {
ULONGLONG HighOrderBits; ULONGLONG HighOrderBits;
ULONGLONG LowOrderBits; ULONGLONG LowOrderBits;
} DHCP_IPV6_ADDRESS, *LPDHCP_IPV6_ADDRESS, *PDHCP_IPV6_ADDRESS; } DHCP_IPV6_ADDRESS, *LPDHCP_IPV6_ADDRESS, *PDHCP_IPV6_ADDRESS;
typedef DHCP_IPV6_ADDRESS DHCP_RESUME_IPV6_HANDLE; typedef DHCP_IPV6_ADDRESS DHCP_RESUME_IPV6_HANDLE;
// //
// DHCP Filter related data structures. // DHCP Filter related data structures.
// //
#define MAX_PATTERN_LENGTH 255 #define MAX_PATTERN_LENGTH 255
#define MAC_ADDRESS_LENGTH 6 #define MAC_ADDRESS_LENGTH 6
skipping to change at line 232 skipping to change at line 359
typedef struct _DHCP_FILTER_RECORD { typedef struct _DHCP_FILTER_RECORD {
DHCP_ADDR_PATTERN AddrPatt; // Contains MAC address/pattern and Mask DHCP_ADDR_PATTERN AddrPatt; // Contains MAC address/pattern and Mask
LPWSTR Comment; // Comment associated with MAC a ddress/pattern LPWSTR Comment; // Comment associated with MAC a ddress/pattern
} DHCP_FILTER_RECORD, *LPDHCP_FILTER_RECORD; } DHCP_FILTER_RECORD, *LPDHCP_FILTER_RECORD;
typedef struct _DHCP_FILTER_ENUM_INFO { typedef struct _DHCP_FILTER_ENUM_INFO {
DWORD NumElements; DWORD NumElements;
#if defined( MIDL_PASS ) #if defined( MIDL_PASS )
[ size_is( NumElements ) ] [ size_is( NumElements ) ]
#endif; #endif;
__field_ecount(NumElements) LPDHCP_FILTER_RECORD pEnumRecords; _Field_size_(NumElements) LPDHCP_FILTER_RECORD pEnumRecords;
} DHCP_FILTER_ENUM_INFO, *LPDHCP_FILTER_ENUM_INFO; } DHCP_FILTER_ENUM_INFO, *LPDHCP_FILTER_ENUM_INFO;
// //
// DHCP Options related data structures. // DHCP Options related data structures.
// //
typedef enum _DHCP_OPTION_DATA_TYPE { typedef enum _DHCP_OPTION_DATA_TYPE {
DhcpByteOption, DhcpByteOption,
DhcpWordOption, DhcpWordOption,
DhcpDWordOption, DhcpDWordOption,
skipping to change at line 292 skipping to change at line 419
#if !defined(MIDL_PASS) #if !defined(MIDL_PASS)
typedef union _DHCP_OPTION_ELEMENT_UNION typedef union _DHCP_OPTION_ELEMENT_UNION
DHCP_OPTION_ELEMENT_UNION, *LPDHCP_OPTION_ELEMENT_UNION; DHCP_OPTION_ELEMENT_UNION, *LPDHCP_OPTION_ELEMENT_UNION;
#endif #endif
typedef struct _DHCP_OPTION_DATA { typedef struct _DHCP_OPTION_DATA {
DWORD NumElements; // number of option elements in the pointed array DWORD NumElements; // number of option elements in the pointed array
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_ecount(NumElements) LPDHCP_OPTION_DATA_ELEMENT Elements; //array _Field_size_(NumElements) LPDHCP_OPTION_DATA_ELEMENT Elements; //array
} DHCP_OPTION_DATA, *LPDHCP_OPTION_DATA; } DHCP_OPTION_DATA, *LPDHCP_OPTION_DATA;
typedef enum _DHCP_OPTION_TYPE { typedef enum _DHCP_OPTION_TYPE {
DhcpUnaryElementTypeOption, DhcpUnaryElementTypeOption,
DhcpArrayTypeOption DhcpArrayTypeOption
} DHCP_OPTION_TYPE, *LPDHCP_OPTION_TYPE; } DHCP_OPTION_TYPE, *LPDHCP_OPTION_TYPE;
typedef struct _DHCP_OPTION { typedef struct _DHCP_OPTION {
DHCP_OPTION_ID OptionID; DHCP_OPTION_ID OptionID;
LPWSTR OptionName; LPWSTR OptionName;
skipping to change at line 503 skipping to change at line 630
} DHCP_CLIENT_FILTER_STATUS_INFO, *LPDHCP_CLIENT_FILTER_STATUS_INFO; } DHCP_CLIENT_FILTER_STATUS_INFO, *LPDHCP_CLIENT_FILTER_STATUS_INFO;
typedef struct _DHCP_CLIENT_FILTER_STATUS_INFO_ARRAY { typedef struct _DHCP_CLIENT_FILTER_STATUS_INFO_ARRAY {
DWORD NumElements; DWORD NumElements;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif // MIDL_PASS #endif // MIDL_PASS
LPDHCP_CLIENT_FILTER_STATUS_INFO *Clients; // array of pointers LPDHCP_CLIENT_FILTER_STATUS_INFO *Clients; // array of pointers
} DHCP_CLIENT_FILTER_STATUS_INFO_ARRAY, *LPDHCP_CLIENT_FILTER_STATUS_INFO_ARRAY; } DHCP_CLIENT_FILTER_STATUS_INFO_ARRAY, *LPDHCP_CLIENT_FILTER_STATUS_INFO_ARRAY;
typedef struct _DHCP_CLIENT_INFO_PB {
DHCP_IP_ADDRESS ClientIpAddress;
DHCP_IP_MASK SubnetMask;
DHCP_CLIENT_UID ClientHardwareAddress;
LPWSTR ClientName;
LPWSTR ClientComment;
DATE_TIME ClientLeaseExpires;
DHCP_HOST_INFO OwnerHost;
BYTE bClientType;
BYTE AddressState;
QuarantineStatus Status;
DATE_TIME ProbationEnds;
BOOL QuarantineCapable;
DWORD FilterStatus;
LPWSTR PolicyName;
} DHCP_CLIENT_INFO_PB, *LPDHCP_CLIENT_INFO_PB;
typedef struct _DHCP_CLIENT_INFO_PB_ARRAY {
DWORD NumElements;
#if defined(MIDL_PASS)
[size_is(NumElements)]
#endif // MIDL_PASS
LPDHCP_CLIENT_INFO_PB *Clients; // array of pointers
} DHCP_CLIENT_INFO_PB_ARRAY, *LPDHCP_CLIENT_INFO_PB_ARRAY;
typedef enum _DHCP_CLIENT_SEARCH_TYPE { typedef enum _DHCP_CLIENT_SEARCH_TYPE {
DhcpClientIpAddress, DhcpClientIpAddress,
DhcpClientHardwareAddress, DhcpClientHardwareAddress,
DhcpClientName DhcpClientName
} DHCP_SEARCH_INFO_TYPE, *LPDHCP_SEARCH_INFO_TYPE; } DHCP_SEARCH_INFO_TYPE, *LPDHCP_SEARCH_INFO_TYPE;
typedef struct _DHCP_CLIENT_SEARCH_INFO { typedef struct _DHCP_CLIENT_SEARCH_INFO {
DHCP_SEARCH_INFO_TYPE SearchType; DHCP_SEARCH_INFO_TYPE SearchType;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[switch_is(SearchType), switch_type(DHCP_SEARCH_INFO_TYPE)] [switch_is(SearchType), switch_type(DHCP_SEARCH_INFO_TYPE)]
skipping to change at line 532 skipping to change at line 684
LPWSTR ClientName; LPWSTR ClientName;
} SearchInfo; } SearchInfo;
#endif // MIDL_PASS #endif // MIDL_PASS
} DHCP_SEARCH_INFO, *LPDHCP_SEARCH_INFO; } DHCP_SEARCH_INFO, *LPDHCP_SEARCH_INFO;
#if !defined(MIDL_PASS) #if !defined(MIDL_PASS)
typedef union _DHCP_CLIENT_SEARCH_UNION typedef union _DHCP_CLIENT_SEARCH_UNION
DHCP_CLIENT_SEARCH_UNION, *LPDHCP_CLIENT_SEARCH_UNION; DHCP_CLIENT_SEARCH_UNION, *LPDHCP_CLIENT_SEARCH_UNION;
#endif // MIDL_PASS #endif // MIDL_PASS
typedef enum
{
DhcpPropTypeByte,
DhcpPropTypeWord,
DhcpPropTypeDword,
DhcpPropTypeString,
DhcpPropTypeBinary,
} DHCP_PROPERTY_TYPE;
typedef enum
{
DhcpPropIdPolicyDnsSuffix,
DhcpPropIdClientAddressStateEx,
} DHCP_PROPERTY_ID;
typedef struct _DHCP_PROPERTY
{
DHCP_PROPERTY_ID ID;
DHCP_PROPERTY_TYPE Type;
#if defined(MIDL_PASS)
[switch_is(Type), switch_type(DHCP_PROPERTY_TYPE)]
union _DHCP_PROPERTY_VALUE_UNION {
[case(DhcpPropTypeByte)] BYTE ByteValue;
[case(DhcpPropTypeWord)] WORD WordValue;
[case(DhcpPropTypeDword)] DWORD DWordValue;
[case(DhcpPropTypeString)] LPWSTR StringValue;
[case(DhcpPropTypeBinary)] DHCP_BINARY_DATA BinaryValue;
} Value;
#else
union _DHCP_PROPERTY_VALUE_UNION {
BYTE ByteValue;
WORD WordValue;
DWORD DWordValue;
LPWSTR StringValue;
DHCP_BINARY_DATA BinaryValue;
} Value;
#endif // MIDL_PASS
} DHCP_PROPERTY, *PDHCP_PROPERTY, *LPDHCP_PROPERTY;
typedef struct _DHCP_PROPERTY_ARRAY {
DWORD NumElements;
#if defined( MIDL_PASS )
[ size_is( NumElements ) ]
#endif //MIDL_PASS
_Field_size_(NumElements) LPDHCP_PROPERTY Elements;
} DHCP_PROPERTY_ARRAY, *PDHCP_PROPERTY_ARRAY, *LPDHCP_PROPERTY_ARRAY;
typedef struct _DHCP_CLIENT_INFO_EX {
DHCP_IP_ADDRESS ClientIpAddress;
DHCP_IP_MASK SubnetMask;
DHCP_CLIENT_UID ClientHardwareAddress;
LPWSTR ClientName;
LPWSTR ClientComment;
DATE_TIME ClientLeaseExpires;
DHCP_HOST_INFO OwnerHost;
BYTE bClientType;
BYTE AddressState;
QuarantineStatus Status;
DATE_TIME ProbationEnds;
BOOL QuarantineCapable;
DWORD FilterStatus;
LPWSTR PolicyName;
LPDHCP_PROPERTY_ARRAY Properties;
} DHCP_CLIENT_INFO_EX, *LPDHCP_CLIENT_INFO_EX;
typedef struct _DHCP_CLIENT_INFO_EX_ARRAY {
DWORD NumElements;
#if defined(MIDL_PASS)
[size_is(NumElements)]
#endif // MIDL_PASS
LPDHCP_CLIENT_INFO_EX *Clients; // array of pointers
} DHCP_CLIENT_INFO_EX_ARRAY, *LPDHCP_CLIENT_INFO_EX_ARRAY;
// //
// Mib Info structures. // Mib Info structures.
// //
typedef struct _SCOPE_MIB_INFO { typedef struct _SCOPE_MIB_INFO {
DHCP_IP_ADDRESS Subnet; DHCP_IP_ADDRESS Subnet;
DWORD NumAddressesInuse; DWORD NumAddressesInuse;
DWORD NumAddressesFree; DWORD NumAddressesFree;
DWORD NumPendingOffers; DWORD NumPendingOffers;
} SCOPE_MIB_INFO, *LPSCOPE_MIB_INFO; } SCOPE_MIB_INFO, *LPSCOPE_MIB_INFO;
skipping to change at line 556 skipping to change at line 781
DWORD Requests; DWORD Requests;
DWORD Acks; DWORD Acks;
DWORD Naks; DWORD Naks;
DWORD Declines; DWORD Declines;
DWORD Releases; DWORD Releases;
DATE_TIME ServerStartTime; DATE_TIME ServerStartTime;
DWORD Scopes; DWORD Scopes;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(Scopes)] [size_is(Scopes)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_ecount(Scopes) LPSCOPE_MIB_INFO ScopeInfo; // array. _Field_size_(Scopes) LPSCOPE_MIB_INFO ScopeInfo; // array.
} DHCP_MIB_INFO, *LPDHCP_MIB_INFO; } DHCP_MIB_INFO, *LPDHCP_MIB_INFO;
// //
// Quarantine version of mib structures // Quarantine version of mib structures
// //
typedef struct _SCOPE_MIB_INFO_VQ { typedef struct _SCOPE_MIB_INFO_VQ {
DHCP_IP_ADDRESS Subnet; DHCP_IP_ADDRESS Subnet;
DWORD NumAddressesInuse; DWORD NumAddressesInuse;
DWORD NumAddressesFree; DWORD NumAddressesFree;
skipping to change at line 640 skipping to change at line 865
DWORD QtnExemptLeases; DWORD QtnExemptLeases;
DWORD QtnCapableClients; DWORD QtnCapableClients;
DWORD QtnIASErrors; DWORD QtnIASErrors;
DWORD DelayedOffers; DWORD DelayedOffers;
DWORD ScopesWithDelayedOffers; DWORD ScopesWithDelayedOffers;
DWORD Scopes; DWORD Scopes;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(Scopes)] [size_is(Scopes)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_ecount(Scopes) LPSCOPE_MIB_INFO_V5 ScopeInfo; // array. _Field_size_(Scopes) LPSCOPE_MIB_INFO_V5 ScopeInfo; // array.
} DHCP_MIB_INFO_V5, *LPDHCP_MIB_INFO_V5; } DHCP_MIB_INFO_V5, *LPDHCP_MIB_INFO_V5;
#define Set_APIProtocolSupport 0x00000001 #define Set_APIProtocolSupport 0x00000001
#define Set_DatabaseName 0x00000002 #define Set_DatabaseName 0x00000002
#define Set_DatabasePath 0x00000004 #define Set_DatabasePath 0x00000004
#define Set_BackupPath 0x00000008 #define Set_BackupPath 0x00000008
#define Set_BackupInterval 0x00000010 #define Set_BackupInterval 0x00000010
#define Set_DatabaseLoggingFlag 0x00000020 #define Set_DatabaseLoggingFlag 0x00000020
#define Set_RestoreFlag 0x00000040 #define Set_RestoreFlag 0x00000040
#define Set_DatabaseCleanupInterval 0x00000080 #define Set_DatabaseCleanupInterval 0x00000080
skipping to change at line 685 skipping to change at line 910
typedef struct _DHCP_SCAN_ITEM { typedef struct _DHCP_SCAN_ITEM {
DHCP_IP_ADDRESS IpAddress; DHCP_IP_ADDRESS IpAddress;
DHCP_SCAN_FLAG ScanFlag; DHCP_SCAN_FLAG ScanFlag;
} DHCP_SCAN_ITEM, *LPDHCP_SCAN_ITEM; } DHCP_SCAN_ITEM, *LPDHCP_SCAN_ITEM;
typedef struct _DHCP_SCAN_LIST { typedef struct _DHCP_SCAN_LIST {
DWORD NumScanItems; DWORD NumScanItems;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumScanItems)] [size_is(NumScanItems)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_ecount(NumScanItems) DHCP_SCAN_ITEM *ScanItems; // array _Field_size_(NumScanItems) DHCP_SCAN_ITEM *ScanItems; // array
} DHCP_SCAN_LIST, *LPDHCP_SCAN_LIST; } DHCP_SCAN_LIST, *LPDHCP_SCAN_LIST;
typedef struct _DHCP_CLASS_INFO { typedef struct _DHCP_CLASS_INFO {
LPWSTR ClassName; LPWSTR ClassName;
LPWSTR ClassComment; LPWSTR ClassComment;
DWORD ClassDataLength; DWORD ClassDataLength;
BOOL IsVendor; BOOL IsVendor;
DWORD Flags; DWORD Flags;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(ClassDataLength)] [size_is(ClassDataLength)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_bcount(ClassDataLength) LPBYTE ClassData; _Field_size_bytes_(ClassDataLength) LPBYTE ClassData ;
} DHCP_CLASS_INFO, *LPDHCP_CLASS_INFO; } DHCP_CLASS_INFO, *LPDHCP_CLASS_INFO;
typedef struct _DHCP_CLASS_INFO_ARRAY { typedef struct _DHCP_CLASS_INFO_ARRAY {
DWORD NumElements; DWORD NumElements;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif //MIDL_PASS #endif //MIDL_PASS
LPDHCP_CLASS_INFO Classes; LPDHCP_CLASS_INFO Classes;
} DHCP_CLASS_INFO_ARRAY, *LPDHCP_CLASS_INFO_ARRAY; } DHCP_CLASS_INFO_ARRAY, *LPDHCP_CLASS_INFO_ARRAY;
typedef struct _DHCP_CLASS_INFO_V6 { typedef struct _DHCP_CLASS_INFO_V6 {
LPWSTR ClassName; LPWSTR ClassName;
LPWSTR ClassComment; LPWSTR ClassComment;
DWORD ClassDataLength; DWORD ClassDataLength;
BOOL IsVendor; BOOL IsVendor;
DWORD EnterpriseNumber; DWORD EnterpriseNumber;
DWORD Flags; DWORD Flags;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(ClassDataLength)] [size_is(ClassDataLength)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_bcount(ClassDataLength) LPBYTE ClassData; _Field_size_bytes_(ClassDataLength) LPBYTE ClassData ;
} DHCP_CLASS_INFO_V6, *LPDHCP_CLASS_INFO_V6; } DHCP_CLASS_INFO_V6, *LPDHCP_CLASS_INFO_V6;
typedef struct _DHCP_CLASS_INFO_ARRAY_V6 { typedef struct _DHCP_CLASS_INFO_ARRAY_V6 {
DWORD NumElements; DWORD NumElements;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif //MIDL_PASS #endif //MIDL_PASS
LPDHCP_CLASS_INFO_V6 Classes; LPDHCP_CLASS_INFO_V6 Classes;
} DHCP_CLASS_INFO_ARRAY_V6, *LPDHCP_CLASS_INFO_ARRAY_V6; } DHCP_CLASS_INFO_ARRAY_V6, *LPDHCP_CLASS_INFO_ARRAY_V6;
typedef struct _DHCP_SERVER_SPECIFIC_STRINGS { typedef struct _DHCP_SERVER_SPECIFIC_STRINGS {
LPWSTR DefaultVendorClassName; LPWSTR DefaultVendorClassName;
LPWSTR DefaultUserClassName; LPWSTR DefaultUserClassName;
} DHCP_SERVER_SPECIFIC_STRINGS, *LPDHCP_SERVER_SPECIFIC_STRINGS; } DHCP_SERVER_SPECIFIC_STRINGS, *LPDHCP_SERVER_SPECIFIC_STRINGS;
typedef struct _DHCP_IP_RESERVATION_V4 { typedef struct _DHCP_IP_RESERVATION_V4 {
DHCP_IP_ADDRESS ReservedIpAddress; DHCP_IP_ADDRESS ReservedIpAddress;
DHCP_CLIENT_UID *ReservedForClient; DHCP_CLIENT_UID *ReservedForClient;
BYTE bAllowedClientTypes; BYTE bAllowedClientTypes;
} DHCP_IP_RESERVATION_V4, *LPDHCP_IP_RESERVATION_V4; } DHCP_IP_RESERVATION_V4, *LPDHCP_IP_RESERVATION_V4;
typedef struct _DHCP_IP_RESERVATION_INFO {
DHCP_IP_ADDRESS ReservedIpAddress;
DHCP_CLIENT_UID ReservedForClient;
LPWSTR ReservedClientName;
LPWSTR ReservedClientDesc;
BYTE bAllowedClientTypes;
BYTE fOptionsPresent;
} DHCP_IP_RESERVATION_INFO, *LPDHCP_IP_RESERVATION_INFO;
typedef struct _DHCP_RESERVATION_INFO_ARRAY {
DWORD NumElements;
#if defined(MIDL_PASS)
[size_is(NumElements)]
#endif // MIDL_PASS
LPDHCP_IP_RESERVATION_INFO *Elements;
} DHCP_RESERVATION_INFO_ARRAY, *LPDHCP_RESERVATION_INFO_ARRAY;
typedef struct _DHCP_SUBNET_ELEMENT_DATA_V4 { typedef struct _DHCP_SUBNET_ELEMENT_DATA_V4 {
DHCP_SUBNET_ELEMENT_TYPE ElementType; DHCP_SUBNET_ELEMENT_TYPE ElementType;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[switch_is(ELEMENT_MASK(ElementType)), switch_type(DHCP_SUBNET_ELEMENT_TYPE) ] [switch_is(ELEMENT_MASK(ElementType)), switch_type(DHCP_SUBNET_ELEMENT_TYPE) ]
union _DHCP_SUBNET_ELEMENT_UNION_V4 { union _DHCP_SUBNET_ELEMENT_UNION_V4 {
[case(DhcpIpRanges)] DHCP_IP_RANGE *IpRange; [case(DhcpIpRanges)] DHCP_IP_RANGE *IpRange;
[case(DhcpSecondaryHosts)] DHCP_HOST_INFO *SecondaryHost; [case(DhcpSecondaryHosts)] DHCP_HOST_INFO *SecondaryHost;
[case(DhcpReservedIps)] DHCP_IP_RESERVATION_V4 *ReservedIp; [case(DhcpReservedIps)] DHCP_IP_RESERVATION_V4 *ReservedIp;
[case(DhcpExcludedIpRanges)] DHCP_IP_RANGE *ExcludeIpRange; [case(DhcpExcludedIpRanges)] DHCP_IP_RANGE *ExcludeIpRange;
[case(DhcpIpUsedClusters)] DHCP_IP_CLUSTER *IpUsedCluster; [case(DhcpIpUsedClusters)] DHCP_IP_CLUSTER *IpUsedCluster;
skipping to change at line 816 skipping to change at line 1058
DWORD BackupInterval; DWORD BackupInterval;
DWORD DatabaseLoggingFlag; DWORD DatabaseLoggingFlag;
DWORD RestoreFlag; DWORD RestoreFlag;
DWORD DatabaseCleanupInterval; DWORD DatabaseCleanupInterval;
DWORD DebugFlag; DWORD DebugFlag;
DWORD dwPingRetries; // valid range: 0-5 inclusive DWORD dwPingRetries; // valid range: 0-5 inclusive
DWORD cbBootTableString; DWORD cbBootTableString;
#if defined( MIDL_PASS ) #if defined( MIDL_PASS )
[ size_is( cbBootTableString/2 ) ] // WCHAR SIZE = 2 Bytes [ size_is( cbBootTableString/2 ) ] // WCHAR SIZE = 2 Bytes
#endif #endif
__field_bcount(cbBootTableString) WCHAR *wszBootTableString; _Field_size_bytes_(cbBootTableString) WCHAR *wszBootTableString;
BOOL fAuditLog; // TRUE to enable audit log BOOL fAuditLog; // TRUE to enable audit log
} DHCP_SERVER_CONFIG_INFO_V4, *LPDHCP_SERVER_CONFIG_INFO_V4; } DHCP_SERVER_CONFIG_INFO_V4, *LPDHCP_SERVER_CONFIG_INFO_V4;
// //
// Server Configuration Info with quarantine config. // Server Configuration Info with quarantine config.
// //
typedef struct _DHCP_SERVER_CONFIG_INFO_VQ { typedef struct _DHCP_SERVER_CONFIG_INFO_VQ {
DWORD APIProtocolSupport; // bit map of the protocols supported. DWORD APIProtocolSupport; // bit map of the protocols supported.
skipping to change at line 840 skipping to change at line 1082
DWORD BackupInterval; // Backup interval in mins. DWORD BackupInterval; // Backup interval in mins.
DWORD DatabaseLoggingFlag; // Boolean database logging flag. DWORD DatabaseLoggingFlag; // Boolean database logging flag.
DWORD RestoreFlag; // Boolean database restore flag. DWORD RestoreFlag; // Boolean database restore flag.
DWORD DatabaseCleanupInterval; // Database Cleanup Interval in mins. DWORD DatabaseCleanupInterval; // Database Cleanup Interval in mins.
DWORD DebugFlag; // Bit map of server debug flags. DWORD DebugFlag; // Bit map of server debug flags.
DWORD dwPingRetries; // valid range: 0-5 inclusive DWORD dwPingRetries; // valid range: 0-5 inclusive
DWORD cbBootTableString; DWORD cbBootTableString;
#if defined( MIDL_PASS ) #if defined( MIDL_PASS )
[ size_is( cbBootTableString/2 ) ] // WCHAR SIZE = 2 Bytes [ size_is( cbBootTableString/2 ) ] // WCHAR SIZE = 2 Bytes
#endif #endif
__field_bcount(cbBootTableString) WCHAR *wszBootTableString; _Field_size_bytes_(cbBootTableString) WCHAR *wszBootTableString;
BOOL fAuditLog; // TRUE to enable audit log BOOL fAuditLog; // TRUE to enable audit log
BOOL QuarantineOn; // Server global Quarantine on/off BOOL QuarantineOn; // Server global Quarantine on/off
DWORD QuarDefFail; // Default behavior when IAS fails DWORD QuarDefFail; // Default behavior when IAS fails
// to be set to QUARANTINE_DEFFAIL_ACCEPT // to be set to QUARANTINE_DEFFAIL_ACCEPT
// or QUARANTINE_DEFFAIL_DROP // or QUARANTINE_DEFFAIL_DROP
BOOL QuarRuntimeStatus; // This tells us whether NAP is actually run ning BOOL QuarRuntimeStatus; // This tells us whether NAP is actually run ning
// on the DHCP server as opposed to the the value // on the DHCP server as opposed to the the value
// which is configured by the admin. // which is configured by the admin.
} DHCP_SERVER_CONFIG_INFO_VQ, *LPDHCP_SERVER_CONFIG_INFO_VQ; } DHCP_SERVER_CONFIG_INFO_VQ, *LPDHCP_SERVER_CONFIG_INFO_VQ;
typedef struct _DHCP_SERVER_CONFIG_INFO_V6 { typedef struct _DHCP_SERVER_CONFIG_INFO_V6 {
BOOL UnicastFlag; BOOL UnicastFlag;
BOOL RapidCommitFlag; BOOL RapidCommitFlag;
DWORD PreferredLifetime; DWORD PreferredLifetime;
DWORD ValidLifetime; DWORD ValidLifetime;
DWORD T1; DWORD T1;
DWORD T2; DWORD T2;
DWORD PreferredLifetimeIATA; DWORD PreferredLifetimeIATA;
DWORD ValidLifetimeIATA; DWORD ValidLifetimeIATA;
#ifndef DHCPSAPI_LEGACY
BOOL fAuditLog; BOOL fAuditLog;
#endif
} DHCP_SERVER_CONFIG_INFO_V6, *LPDHCP_SERVER_CONFIG_INFO_V6; } DHCP_SERVER_CONFIG_INFO_V6, *LPDHCP_SERVER_CONFIG_INFO_V6;
#define Set_UnicastFlag 0x00000001 #define Set_UnicastFlag 0x00000001
#define Set_RapidCommitFlag 0x00000002 #define Set_RapidCommitFlag 0x00000002
#define Set_PreferredLifetime 0x00000004 #define Set_PreferredLifetime 0x00000004
#define Set_ValidLifetime 0x00000008 #define Set_ValidLifetime 0x00000008
#define Set_T1 0x00000010 #define Set_T1 0x00000010
#define Set_T2 0x00000020 #define Set_T2 0x00000020
#define Set_PreferredLifetimeIATA 0x00000040 #define Set_PreferredLifetimeIATA 0x00000040
#define Set_ValidLifetimeIATA 0x00000080 #define Set_ValidLifetimeIATA 0x00000080
skipping to change at line 910 skipping to change at line 1154
#define V5_ADDRESS_STATE_OFFERED 0x0 #define V5_ADDRESS_STATE_OFFERED 0x0
#define V5_ADDRESS_STATE_ACTIVE 0x1 #define V5_ADDRESS_STATE_ACTIVE 0x1
#define V5_ADDRESS_STATE_DECLINED 0x2 #define V5_ADDRESS_STATE_DECLINED 0x2
#define V5_ADDRESS_STATE_DOOM 0x3 #define V5_ADDRESS_STATE_DOOM 0x3
#define V5_ADDRESS_BIT_DELETED 0x80 #define V5_ADDRESS_BIT_DELETED 0x80
#define V5_ADDRESS_BIT_UNREGISTERED 0x40 #define V5_ADDRESS_BIT_UNREGISTERED 0x40
#define V5_ADDRESS_BIT_BOTH_REC 0x20 #define V5_ADDRESS_BIT_BOTH_REC 0x20
#define V5_ADDRESS_EX_BIT_DISABLE_PTR_RR 0x01
#define DNS_FLAG_ENABLED 0x01 #define DNS_FLAG_ENABLED 0x01
#define DNS_FLAG_UPDATE_DOWNLEVEL 0x02 #define DNS_FLAG_UPDATE_DOWNLEVEL 0x02
#define DNS_FLAG_CLEANUP_EXPIRED 0x04 #define DNS_FLAG_CLEANUP_EXPIRED 0x04
#define DNS_FLAG_UPDATE_BOTH_ALWAYS 0x10 #define DNS_FLAG_UPDATE_BOTH_ALWAYS 0x10
#define DNS_FLAG_UPDATE_DHCID 0x20 #define DNS_FLAG_UPDATE_DHCID 0x20
#define DNS_FLAG_DISABLE_PTR_UPDATE 0x40
#define DNS_FLAG_HAS_DNS_SUFFIX 0x80
typedef struct _DHCP_CLIENT_INFO_ARRAY_V5 { typedef struct _DHCP_CLIENT_INFO_ARRAY_V5 {
DWORD NumElements; DWORD NumElements;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif // MIDL_PASS #endif // MIDL_PASS
LPDHCP_CLIENT_INFO_V5 *Clients; // array of pointers LPDHCP_CLIENT_INFO_V5 *Clients; // array of pointers
} DHCP_CLIENT_INFO_ARRAY_V5, *LPDHCP_CLIENT_INFO_ARRAY_V5; } DHCP_CLIENT_INFO_ARRAY_V5, *LPDHCP_CLIENT_INFO_ARRAY_V5;
#define DHCP_OPT_ENUM_IGNORE_VENDOR 0x01 #define DHCP_OPT_ENUM_IGNORE_VENDOR 0x01
#define DHCP_OPT_ENUM_USE_CLASSNAME 0x02 #define DHCP_OPT_ENUM_USE_CLASSNAME 0x02
typedef struct _DHCP_ALL_OPTIONS { typedef struct _DHCP_ALL_OPTIONS {
DWORD Flags; // must be zero -- not used.. DWORD Flags; // must be zero -- not used..
LPDHCP_OPTION_ARRAY NonVendorOptions; LPDHCP_OPTION_ARRAY NonVendorOptions;
DWORD NumVendorOptions; DWORD NumVendorOptions;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumVendorOptions)] [size_is(NumVendorOptions)]
#endif #endif
struct { struct {
DHCP_OPTION Option; DHCP_OPTION Option;
LPWSTR VendorName; LPWSTR VendorName;
LPWSTR ClassName; LPWSTR ClassName;
} *VendorOptions; } *VendorOptions;
} DHCP_ALL_OPTIONS, *LPDHCP_ALL_OPTIONS; } DHCP_ALL_OPTIONS, *LPDHCP_ALL_OPTIONS;
typedef struct _DHCP_ALL_OPTION_VALUES { typedef struct _DHCP_ALL_OPTION_VALUES {
DWORD Flags; // must be zero -- not used DWORD Flags; // must be zero -- not used
DWORD NumElements; // the # of elements in array of Options below.. DWORD NumElements; // the # of elements in array of Options below..
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif MIDL_PASS #endif MIDL_PASS
struct /* anonymous */ { struct /* anonymous */ {
LPWSTR ClassName; // for each user class (NULL i f none exists) LPWSTR ClassName; // for each user class (NULL i f none exists)
LPWSTR VendorName; // for each vendor class (NULL if none exists) LPWSTR VendorName; // for each vendor class (NULL if none exists)
BOOL IsVendor; // is this set of options vend or specific? BOOL IsVendor; // is this set of options vend or specific?
LPDHCP_OPTION_VALUE_ARRAY OptionsArray; // list of options for the abo ve pair: (vendor,user) LPDHCP_OPTION_VALUE_ARRAY OptionsArray; // list of options for the abo ve pair: (vendor,user)
} *Options; // for each vendor/user class pair, one element in this array.. } *Options; // for each vendor/user class pair, one element in this array..
} DHCP_ALL_OPTION_VALUES, *LPDHCP_ALL_OPTION_VALUES; } DHCP_ALL_OPTION_VALUES, *LPDHCP_ALL_OPTION_VALUES;
#ifndef _ST_SRVR_H_ #ifndef _ST_SRVR_H_
#define _ST_SRVR_H_ #define _ST_SRVR_H_
typedef struct _DHCPDS_SERVER { typedef struct _DHCP_ALL_OPTION_VALUES_PB {
DWORD Flags; // must be zero -- not used
DWORD NumElements; // the # of elements in array
of Options below..
#if defined(MIDL_PASS)
[size_is(NumElements)]
#endif MIDL_PASS
struct /* anonymous */ {
LPWSTR PolicyName; // for each policy (NULL if n
one exists)
LPWSTR VendorName; // for each vendor class (NULL
if none exists)
BOOL IsVendor; // is this set of options vend
or specific?
LPDHCP_OPTION_VALUE_ARRAY OptionsArray; // list of options for the abo
ve pair: (vendor,user)
} *Options; // for each vendor/user class
pair, one element in this array..
} DHCP_ALL_OPTION_VALUES_PB, *LPDHCP_ALL_OPTION_VALUES_PB;
typedef struct _DHCPDS_SERVER {
DWORD Version; DWORD Version;
LPWSTR ServerName; LPWSTR ServerName;
DWORD ServerAddress; DWORD ServerAddress;
DWORD Flags; DWORD Flags;
DWORD State; DWORD State;
LPWSTR DsLocation; LPWSTR DsLocation;
DWORD DsLocType; DWORD DsLocType;
} DHCPDS_SERVER, *LPDHCPDS_SERVER, *PDHCPDS_SERVER; } DHCPDS_SERVER, *LPDHCPDS_SERVER, *PDHCPDS_SERVER;
typedef struct _DHCPDS_SERVERS { typedef struct _DHCPDS_SERVERS {
skipping to change at line 1001 skipping to change at line 1263
#define DHCP_ATTRIB_BOOL_IS_PART_OF_DSDC 0x03 #define DHCP_ATTRIB_BOOL_IS_PART_OF_DSDC 0x03
#define DHCP_ATTRIB_BOOL_IS_BINDING_AWARE 0x04 #define DHCP_ATTRIB_BOOL_IS_BINDING_AWARE 0x04
#define DHCP_ATTRIB_BOOL_IS_ADMIN 0x05 #define DHCP_ATTRIB_BOOL_IS_ADMIN 0x05
#define DHCP_ATTRIB_ULONG_RESTORE_STATUS 0x06 #define DHCP_ATTRIB_ULONG_RESTORE_STATUS 0x06
#define DHCP_ATTRIB_TYPE_BOOL 0x01 #define DHCP_ATTRIB_TYPE_BOOL 0x01
#define DHCP_ATTRIB_TYPE_ULONG 0x02 #define DHCP_ATTRIB_TYPE_ULONG 0x02
typedef ULONG DHCP_ATTRIB_ID, *PDHCP_ATTRIB_ID, *LPDHCP_ATT RIB_ID; typedef ULONG DHCP_ATTRIB_ID, *PDHCP_ATTRIB_ID, *LPDHCP_ATT RIB_ID;
typedef struct _DHCP_ATTRIB { typedef struct _DHCP_ATTRIB {
DHCP_ATTRIB_ID DhcpAttribId; // one of the DHCP_ATTRIB_* DHCP_ATTRIB_ID DhcpAttribId; // one of the DHCP_ATTRIB_*
ULONG DhcpAttribType;// type of attrib ULONG DhcpAttribType;// type of attrib
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[switch_is(DhcpAttribType), switch_type(ULONG)] [switch_is(DhcpAttribType), switch_type(ULONG)]
union { union {
[case(DHCP_ATTRIB_TYPE_BOOL)] BOOL DhcpAttribBool; [case(DHCP_ATTRIB_TYPE_BOOL)] BOOL DhcpAttribBool;
[case(DHCP_ATTRIB_TYPE_ULONG)] ULONG DhcpAttribUlong; [case(DHCP_ATTRIB_TYPE_ULONG)] ULONG DhcpAttribUlong;
}; };
#else MIDL_PASS #else MIDL_PASS
union { union {
BOOL DhcpAttribBool; BOOL DhcpAttribBool;
ULONG DhcpAttribUlong; ULONG DhcpAttribUlong;
}; };
#endif MIDL_PASS #endif MIDL_PASS
} DHCP_ATTRIB, *PDHCP_ATTRIB, *LPDHCP_ATTRIB; } DHCP_ATTRIB, *PDHCP_ATTRIB, *LPDHCP_ATTRIB;
typedef struct _DHCP_ATTRIB_ARRAY { typedef struct _DHCP_ATTRIB_ARRAY {
ULONG NumElements; ULONG NumElements;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif MIDL_PASS #endif MIDL_PASS
__field_ecount(NumElements) LPDHCP_ATTRIB DhcpAttribs; _Field_size_(NumElements) LPDHCP_ATTRIB DhcpAttribs;
} DHCP_ATTRIB_ARRAY, *PDHCP_ATTRIB_ARRAY, *LPDHCP_ATTRIB_ARRAY; } DHCP_ATTRIB_ARRAY, *PDHCP_ATTRIB_ARRAY, *LPDHCP_ATTRIB_ARRAY;
typedef struct _DHCP_BOOTP_IP_RANGE { typedef struct _DHCP_BOOTP_IP_RANGE {
DHCP_IP_ADDRESS StartAddress; DHCP_IP_ADDRESS StartAddress;
DHCP_IP_ADDRESS EndAddress; DHCP_IP_ADDRESS EndAddress;
ULONG BootpAllocated; ULONG BootpAllocated;
ULONG MaxBootpAllowed; ULONG MaxBootpAllowed;
} DHCP_BOOTP_IP_RANGE, *LPDHCP_BOOT_IP_RANGE; } DHCP_BOOTP_IP_RANGE, *LPDHCP_BOOT_IP_RANGE;
typedef struct _DHCP_SUBNET_ELEMENT_DATA_V5 { typedef struct _DHCP_SUBNET_ELEMENT_DATA_V5 {
skipping to change at line 1111 skipping to change at line 1373
typedef struct _DHCP_BIND_ELEMENT { typedef struct _DHCP_BIND_ELEMENT {
ULONG Flags; ULONG Flags;
BOOL fBoundToDHCPServer; BOOL fBoundToDHCPServer;
DHCP_IP_ADDRESS AdapterPrimaryAddress; DHCP_IP_ADDRESS AdapterPrimaryAddress;
DHCP_IP_ADDRESS AdapterSubnetAddress; DHCP_IP_ADDRESS AdapterSubnetAddress;
LPWSTR IfDescription; LPWSTR IfDescription;
ULONG IfIdSize; ULONG IfIdSize;
#if defined (MIDL_PASS) #if defined (MIDL_PASS)
[size_is(IfIdSize)] [size_is(IfIdSize)]
#endif // MIDL_PASS #endif // MIDL_PASS
__field_bcount(IfIdSize) LPBYTE IfId; _Field_size_bytes_(IfIdSize) LPBYTE IfId;
} DHCP_BIND_ELEMENT, *LPDHCP_BIND_ELEMENT; } DHCP_BIND_ELEMENT, *LPDHCP_BIND_ELEMENT;
typedef struct _DHCP_BIND_ELEMENT_ARRAY { typedef struct _DHCP_BIND_ELEMENT_ARRAY {
DWORD NumElements; DWORD NumElements;
#if defined (MIDL_PASS) #if defined (MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif // MIDL_PASS #endif // MIDL_PASS
LPDHCP_BIND_ELEMENT Elements; //array LPDHCP_BIND_ELEMENT Elements; //array
} DHCP_BIND_ELEMENT_ARRAY, *LPDHCP_BIND_ELEMENT_ARRAY; } DHCP_BIND_ELEMENT_ARRAY, *LPDHCP_BIND_ELEMENT_ARRAY;
skipping to change at line 1175 skipping to change at line 1437
} DHCP_HOST_INFO_V6, *LPDHCP_HOST_INFO_V6; } DHCP_HOST_INFO_V6, *LPDHCP_HOST_INFO_V6;
typedef struct _DHCP_SUBNET_INFO_V6 typedef struct _DHCP_SUBNET_INFO_V6
{ {
DHCP_IPV6_ADDRESS SubnetAddress; DHCP_IPV6_ADDRESS SubnetAddress;
ULONG Prefix; ULONG Prefix;
USHORT Preference; USHORT Preference;
LPWSTR SubnetName; LPWSTR SubnetName;
LPWSTR SubnetComment; LPWSTR SubnetComment;
DWORD State; DWORD State;
DWORD ScopeId; DWORD ScopeId;
} DHCP_SUBNET_INFO_V6, *PDHCP_SUBNET_INFO_V6,*LPDHCP_SUBNET_INFO_V6; } DHCP_SUBNET_INFO_V6, *PDHCP_SUBNET_INFO_V6,*LPDHCP_SUBNET_INFO_V6;
// //
// Mib Info structures. // Mib Info structures.
// //
typedef struct _SCOPE_MIB_INFO_V6 { typedef struct _SCOPE_MIB_INFO_V6 {
DHCP_IPV6_ADDRESS Subnet; DHCP_IPV6_ADDRESS Subnet;
ULONGLONG NumAddressesInuse; ULONGLONG NumAddressesInuse;
ULONGLONG NumAddressesFree; ULONGLONG NumAddressesFree;
skipping to change at line 1231 skipping to change at line 1493
DHCP_SUBNET_ELEMENT_TYPE_V6 ElementType; DHCP_SUBNET_ELEMENT_TYPE_V6 ElementType;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[switch_is(ELEMENT_MASK(ElementType)), switch_type(DHCP_SUBNET_ELEMENT_TYPE_ V6)] [switch_is(ELEMENT_MASK(ElementType)), switch_type(DHCP_SUBNET_ELEMENT_TYPE_ V6)]
union _DHCP_SUBNET_ELEMENT_UNION_V6 { union _DHCP_SUBNET_ELEMENT_UNION_V6 {
[case(Dhcpv6IpRanges)] DHCP_IP_RANGE_V6 *IpRange; [case(Dhcpv6IpRanges)] DHCP_IP_RANGE_V6 *IpRange;
[case(Dhcpv6ReservedIps)] DHCP_IP_RESERVATION_V6 *ReservedIp; [case(Dhcpv6ReservedIps)] DHCP_IP_RESERVATION_V6 *ReservedIp;
[case(Dhcpv6ExcludedIpRanges)] DHCP_IP_RANGE_V6 *ExcludeIpRange; [case(Dhcpv6ExcludedIpRanges)] DHCP_IP_RANGE_V6 *ExcludeIpRange;
} Element; } Element;
#else #else
union _DHCP_SUBNET_ELEMENT_UNION_V6 { union _DHCP_SUBNET_ELEMENT_UNION_V6 {
DHCP_IP_RANGE_V6 *IpRange; DHCP_IP_RANGE_V6 *IpRange;
DHCP_IP_RESERVATION_V6 *ReservedIp; DHCP_IP_RESERVATION_V6 *ReservedIp;
DHCP_IP_RANGE_V6 *ExcludeIpRange; DHCP_IP_RANGE_V6 *ExcludeIpRange;
} Element; } Element;
#endif // MIDL_PASS #endif // MIDL_PASS
} DHCP_SUBNET_ELEMENT_DATA_V6, *LPDHCP_SUBNET_ELEMENT_DATA_V6; } DHCP_SUBNET_ELEMENT_DATA_V6, *LPDHCP_SUBNET_ELEMENT_DATA_V6;
#if !defined(MIDL_PASS) #if !defined(MIDL_PASS)
typedef union _DHCP_SUBNET_ELEMENT_UNION_V6 typedef union _DHCP_SUBNET_ELEMENT_UNION_V6
DHCP_SUBNET_ELEMENT_UNION_V6, *LPDHCP_SUBNET_ELEMENT_UNION_V6; DHCP_SUBNET_ELEMENT_UNION_V6, *LPDHCP_SUBNET_ELEMENT_UNION_V6;
#endif #endif
skipping to change at line 1255 skipping to change at line 1517
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
[size_is(NumElements)] [size_is(NumElements)]
#endif // MIDL_PASS #endif // MIDL_PASS
LPDHCP_SUBNET_ELEMENT_DATA_V6 Elements; //array LPDHCP_SUBNET_ELEMENT_DATA_V6 Elements; //array
} DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6, *LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V6; } DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6, *LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V6;
// //
// DHCPv6 Client information data structures // DHCPv6 Client information data structures
// //
#define ADDRESS_TYPE_IANA 0 #define ADDRESS_TYPE_IANA 0
#define ADDRESS_TYPE_IATA 1 #define ADDRESS_TYPE_IATA 1
typedef struct _DHCP_CLIENT_INFO_V6 { typedef struct _DHCP_CLIENT_INFO_V6 {
DHCP_IPV6_ADDRESS ClientIpAddress; // currently assigned IP addres s. DHCP_IPV6_ADDRESS ClientIpAddress; // currently assigned IP addres s.
DHCP_CLIENT_UID ClientDUID; DHCP_CLIENT_UID ClientDUID;
DWORD AddressType; // IANA or IATA DWORD AddressType; // IANA or IATA
DWORD IAID; // IAID Associat DWORD IAID; // IAID Associated with the add
ed with the address. ress.
LPWSTR ClientName; // optional. LPWSTR ClientName; // optional.
LPWSTR ClientComment; LPWSTR ClientComment;
DATE_TIME ClientValidLeaseExpires; // UTC time in FILE_TIME format . DATE_TIME ClientValidLeaseExpires; // UTC time in FILE_TIME format .
DATE_TIME ClientPrefLeaseExpires; // UTC time in FILE_TIME format . DATE_TIME ClientPrefLeaseExpires; // UTC time in FILE_TIME format .
DHCP_HOST_INFO_V6 OwnerHost; // host that distributed this I P address. DHCP_HOST_INFO_V6 OwnerHost; // host that distributed this I P address.
} DHCP_CLIENT_INFO_V6, *LPDHCP_CLIENT_INFO_V6; } DHCP_CLIENT_INFO_V6, *LPDHCP_CLIENT_INFO_V6;
typedef struct _DHCPV6_IP_ARRAY { typedef struct _DHCPV6_IP_ARRAY {
DWORD NumElements; DWORD NumElements;
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
skipping to change at line 1310 skipping to change at line 1572
} SearchInfo; } SearchInfo;
#else #else
union _DHCP_CLIENT_SEARCH_UNION_V6 { union _DHCP_CLIENT_SEARCH_UNION_V6 {
DHCP_IPV6_ADDRESS ClientIpAddress; DHCP_IPV6_ADDRESS ClientIpAddress;
DHCP_CLIENT_UID ClientDUID; DHCP_CLIENT_UID ClientDUID;
LPWSTR ClientName; LPWSTR ClientName;
} SearchInfo; } SearchInfo;
#endif // MIDL_PASS #endif // MIDL_PASS
} DHCP_SEARCH_INFO_V6, *LPDHCP_SEARCH_INFO_V6; } DHCP_SEARCH_INFO_V6, *LPDHCP_SEARCH_INFO_V6;
//3 Policy Structures begin
typedef enum
{
DhcpAttrHWAddr,
DhcpAttrOption,
DhcpAttrSubOption,
DhcpAttrFqdn,
DhcpAttrFqdnSingleLabel,
} DHCP_POL_ATTR_TYPE;
typedef enum
{
DhcpCompEqual,
DhcpCompNotEqual,
DhcpCompBeginsWith,
DhcpCompNotBeginWith,
DhcpCompEndsWith,
DhcpCompNotEndWith,
} DHCP_POL_COMPARATOR;
typedef enum
{
DhcpLogicalOr,
DhcpLogicalAnd,
} DHCP_POL_LOGIC_OPER;
typedef enum {
DhcpUpdatePolicyName = 0x00000001,
DhcpUpdatePolicyOrder = 0x00000002,
DhcpUpdatePolicyExpr = 0x00000004,
DhcpUpdatePolicyRanges = 0x00000008,
DhcpUpdatePolicyDescr = 0x00000010,
DhcpUpdatePolicyStatus = 0x00000020,
DhcpUpdatePolicyDnsSuffix= 0x00000040,
} DHCP_POLICY_FIELDS_TO_UPDATE;
typedef struct _DHCP_POL_COND
{
DWORD ParentExpr;
DHCP_POL_ATTR_TYPE Type;
DWORD OptionID;
DWORD SubOptionID;
LPWSTR VendorName;
DHCP_POL_COMPARATOR Operator;
#if defined( MIDL_PASS )
[ size_is( ValueLength ) ]
#endif //MIDL_PASS
_Field_size_bytes_(ValueLength) LPBYTE Value;
DWORD ValueLength;
} DHCP_POL_COND, *PDHCP_POL_COND, *LPDHCP_POL_COND;
typedef struct _DHCP_POL_COND_ARRAY {
DWORD NumElements;
#if defined( MIDL_PASS )
[ size_is( NumElements ) ]
#endif //MIDL_PASS
_Field_size_(NumElements) LPDHCP_POL_COND Elements;
} DHCP_POL_COND_ARRAY, *PDHCP_POL_COND_ARRAY, *LPDHCP_POL_COND_ARRAY;
typedef struct _DHCP_POL_EXPR
{
DWORD ParentExpr;
DHCP_POL_LOGIC_OPER Operator;
} DHCP_POL_EXPR, *PDHCP_POL_EXPR, *LPDHCP_POL_EXPR;
typedef struct _DHCP_POL_EXPR_ARRAY {
DWORD NumElements;
#if defined( MIDL_PASS )
[ size_is( NumElements ) ]
#endif //MIDL_PASS
_Field_size_(NumElements) LPDHCP_POL_EXPR Elements;
} DHCP_POL_EXPR_ARRAY, *PDHCP_POL_EXPR_ARRAY, *LPDHCP_POL_EXPR_ARRAY;
typedef struct _DHCP_IP_RANGE_ARRAY {
DWORD NumElements;
#if defined( MIDL_PASS )
[ size_is( NumElements ) ]
#endif //MIDL_PASS
_Field_size_(NumElements) LPDHCP_IP_RANGE Elements;
} DHCP_IP_RANGE_ARRAY, *PDHCP_IP_RANGE_ARRAY, *LPDHCP_IP_RANGE_ARRAY;
//
// Any changes made to this structure must be synced with _DHCP_POLICY_EX
// for memory alignment as it is used interchangibly with _DHCP_POLICY_EX
// in a lot of locations
//
typedef struct _DHCP_POLICY
{
LPWSTR PolicyName;
BOOL IsGlobalPolicy;
DHCP_IP_ADDRESS Subnet;
DWORD ProcessingOrder;
LPDHCP_POL_COND_ARRAY Conditions;
LPDHCP_POL_EXPR_ARRAY Expressions;
LPDHCP_IP_RANGE_ARRAY Ranges;
LPWSTR Description;
BOOL Enabled;
} DHCP_POLICY, *PDHCP_POLICY, *LPDHCP_POLICY;
typedef struct _DHCP_POLICY_ARRAY {
DWORD NumElements;
#if defined( MIDL_PASS )
[ size_is( NumElements ) ]
#endif //MIDL_PASS
_Field_size_(NumElements) LPDHCP_POLICY Elements;
} DHCP_POLICY_ARRAY, *PDHCP_POLICY_ARRAY, *LPDHCP_POLICY_ARRAY;
//
// Please refer to comments on _DHCP_POLICY before editing this strucutre
//
typedef struct _DHCP_POLICY_EX
{
LPWSTR PolicyName;
BOOL IsGlobalPolicy;
DHCP_IP_ADDRESS Subnet;
DWORD ProcessingOrder;
LPDHCP_POL_COND_ARRAY Conditions;
LPDHCP_POL_EXPR_ARRAY Expressions;
LPDHCP_IP_RANGE_ARRAY Ranges;
LPWSTR Description;
BOOL Enabled;
LPDHCP_PROPERTY_ARRAY Properties;
} DHCP_POLICY_EX, *PDHCP_POLICY_EX, *LPDHCP_POLICY_EX;
typedef struct _DHCP_POLICY_EX_ARRAY {
DWORD NumElements;
#if defined( MIDL_PASS )
[ size_is( NumElements ) ]
#endif //MIDL_PASS
_Field_size_(NumElements) LPDHCP_POLICY_EX Elements;
} DHCP_POLICY_EX_ARRAY, *PDHCP_POLICY_EX_ARRAY, *LPDHCP_POLICY_EX_ARRAY;
//3 Policy Structures end
//3 Stateless Client Inventory structures
typedef enum
{
DhcpStatelessPurgeInterval = 0x01,
DhcpStatelessStatus = 0x02
} DHCPV6_STATELESS_PARAM_TYPE;
typedef struct
{
BOOL Status;
DWORD PurgeInterval;
} DHCPV6_STATELESS_PARAMS, *PDHCPV6_STATELESS_PARAMS, *LPDHCPV6_STATELESS_PARAMS
;
typedef struct
{
DHCP_IPV6_ADDRESS SubnetAddress;
ULONGLONG NumStatelessClientsAdded;
ULONGLONG NumStatelessClientsRemoved;
} DHCPV6_STATELESS_SCOPE_STATS, *PDHCPV6_STATELESS_SCOPE_STATS, *LPDHCPV6_STATEL
ESS_SCOPE_STATS;
typedef struct
{
DWORD NumScopes;
#if defined( MIDL_PASS )
[ size_is( NumScopes ) ]
#endif //MIDL_PASS
_Field_size_(NumScopes) LPDHCPV6_STATELESS_SCOPE_STATS ScopeStats;
} DHCPV6_STATELESS_STATS, *PDHCPV6_STATELESS_STATS, *LPDHCPV6_STATELESS_STATS;
//3 Stateless Client Inventory structures end
#define SCOPE_STATE_ENABLED DhcpSubnetEnabled #define SCOPE_STATE_ENABLED DhcpSubnetEnabled
#define SCOPE_STATE_DISABLED DhcpSubnetDisabled #define SCOPE_STATE_DISABLED DhcpSubnetDisabled
#define DHCP_MIN_DELAY 0 #define DHCP_MIN_DELAY 0
#define DHCP_MAX_DELAY 1000 #define DHCP_MAX_DELAY 1000
#ifndef DHCPAPI_NO_PROTOTYPES #ifndef DHCPAPI_NO_PROTOTYPES
// //
// DHCP Filter related APIs // DHCP Filter related APIs
// //
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpAddFilterV4( DhcpAddFilterV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
__in DHCP_FILTER_ADD_INFO *AddFilterInfo, _In_ DHCP_FILTER_ADD_INFO *AddFilterInfo,
__in BOOL ForceFlag _In_ BOOL ForceFlag
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpDeleteFilterV4( DhcpDeleteFilterV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
__in DHCP_ADDR_PATTERN *DeleteFilterInfo _In_ DHCP_ADDR_PATTERN *DeleteFilterInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetFilterV4( DhcpSetFilterV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
__in DHCP_FILTER_GLOBAL_INFO *GlobalFilterInfo _In_ DHCP_FILTER_GLOBAL_INFO *GlobalFilterInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetFilterV4( DhcpGetFilterV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
__out DHCP_FILTER_GLOBAL_INFO *GlobalFilterInfo _Out_ DHCP_FILTER_GLOBAL_INFO *GlobalFilterInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumFilterV4( DhcpEnumFilterV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
__inout LPDHCP_ADDR_PATTERN ResumeHandle, _Inout_ LPDHCP_ADDR_PATTERN ResumeHandle,
__in DWORD PreferredMaximum, _In_ DWORD PreferredMaximum,
__in DHCP_FILTER_LIST_TYPE ListType, _In_ DHCP_FILTER_LIST_TYPE ListType,
__out LPDHCP_FILTER_ENUM_INFO *EnumFilterInfo, _Out_ LPDHCP_FILTER_ENUM_INFO *EnumFilterInfo,
__out DWORD *ElementsRead, _Out_ DWORD *ElementsRead,
__out DWORD *ElementsTotal _Out_ DWORD *ElementsTotal
); );
// //
// Subnet APIs // Subnet APIs
// //
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateSubnet( DhcpCreateSubnet(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_CONST DHCP_SUBNET_INFO * SubnetInfo DHCP_CONST DHCP_SUBNET_INFO * SubnetInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetSubnetInfo( DhcpSetSubnetInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_CONST DHCP_SUBNET_INFO * SubnetInfo DHCP_CONST DHCP_SUBNET_INFO * SubnetInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetSubnetInfo( DhcpGetSubnetInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
LPDHCP_SUBNET_INFO * SubnetInfo LPDHCP_SUBNET_INFO * SubnetInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnets( DhcpEnumSubnets(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
__inout DHCP_RESUME_HANDLE *ResumeHandle, _Inout_ DHCP_RESUME_HANDLE *ResumeHandle,
__in DWORD PreferredMaximum, _In_ DWORD PreferredMaximum,
__inout LPDHCP_IP_ARRAY *EnumInfo, _Inout_ LPDHCP_IP_ARRAY *EnumInfo,
__out DWORD *ElementsRead, _Out_ DWORD *ElementsRead,
__out DWORD *ElementsTotal _Out_ DWORD *ElementsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpAddSubnetElement( DhcpAddSubnetElement(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_CONST DHCP_SUBNET_ELEMENT_DATA * AddElementInfo DHCP_CONST DHCP_SUBNET_ELEMENT_DATA * AddElementInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetElements( DhcpEnumSubnetElements(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_SUBNET_ELEMENT_TYPE EnumElementType, DHCP_SUBNET_ELEMENT_TYPE EnumElementType,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_SUBNET_ELEMENT_INFO_ARRAY *EnumElementInfo, LPDHCP_SUBNET_ELEMENT_INFO_ARRAY *EnumElementInfo,
DWORD *ElementsRead, DWORD *ElementsRead,
DWORD *ElementsTotal DWORD *ElementsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpRemoveSubnetElement( DhcpRemoveSubnetElement(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_CONST DHCP_SUBNET_ELEMENT_DATA * RemoveElementInfo, DHCP_CONST DHCP_SUBNET_ELEMENT_DATA * RemoveElementInfo,
DHCP_FORCE_FLAG ForceFlag DHCP_FORCE_FLAG ForceFlag
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpDeleteSubnet( DhcpDeleteSubnet(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_FORCE_FLAG ForceFlag DHCP_FORCE_FLAG ForceFlag
); );
// //
// Option APIs // Option APIs
// //
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateOption( DhcpCreateOption(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_OPTION_ID OptionID, DHCP_OPTION_ID OptionID,
DHCP_CONST DHCP_OPTION * OptionInfo DHCP_CONST DHCP_OPTION * OptionInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetOptionInfo( DhcpSetOptionInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_OPTION_ID OptionID, DHCP_OPTION_ID OptionID,
DHCP_CONST DHCP_OPTION *OptionInfo DHCP_CONST DHCP_OPTION *OptionInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetOptionInfo( DhcpGetOptionInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_OPTION_ID OptionID, DHCP_OPTION_ID OptionID,
LPDHCP_OPTION *OptionInfo LPDHCP_OPTION *OptionInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumOptions( DhcpEnumOptions(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_OPTION_ARRAY *Options, LPDHCP_OPTION_ARRAY *Options,
DWORD *OptionsRead, DWORD *OptionsRead,
DWORD *OptionsTotal DWORD *OptionsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpRemoveOption( DhcpRemoveOption(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_OPTION_ID OptionID DHCP_OPTION_ID OptionID
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetOptionValue( DhcpSetOptionValue(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_OPTION_ID OptionID, DHCP_OPTION_ID OptionID,
DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo, DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo,
DHCP_CONST DHCP_OPTION_DATA *OptionValue DHCP_CONST DHCP_OPTION_DATA *OptionValue
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetOptionValues( DhcpSetOptionValues(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo, DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo,
DHCP_CONST DHCP_OPTION_VALUE_ARRAY *OptionValues DHCP_CONST DHCP_OPTION_VALUE_ARRAY *OptionValues
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetOptionValue( DhcpGetOptionValue(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_OPTION_ID OptionID, DHCP_OPTION_ID OptionID,
DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo, DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo,
LPDHCP_OPTION_VALUE *OptionValue LPDHCP_OPTION_VALUE *OptionValue
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumOptionValues( DhcpEnumOptionValues(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo, DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_OPTION_VALUE_ARRAY *OptionValues, LPDHCP_OPTION_VALUE_ARRAY *OptionValues,
DWORD *OptionsRead, DWORD *OptionsRead,
DWORD *OptionsTotal DWORD *OptionsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpRemoveOptionValue( DhcpRemoveOptionValue(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_OPTION_ID OptionID, DHCP_OPTION_ID OptionID,
DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo
); );
// //
// Client APIs // Client APIs
// //
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateClientInfoVQ( DhcpCreateClientInfoVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_CLIENT_INFO_VQ *ClientInfo DHCP_CONST DHCP_CLIENT_INFO_VQ *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetClientInfoVQ( DhcpSetClientInfoVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_CLIENT_INFO_VQ *ClientInfo DHCP_CONST DHCP_CLIENT_INFO_VQ *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetClientInfoVQ( DhcpGetClientInfoVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_SEARCH_INFO *SearchInfo, DHCP_CONST DHCP_SEARCH_INFO *SearchInfo,
LPDHCP_CLIENT_INFO_VQ *ClientInfo LPDHCP_CLIENT_INFO_VQ *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetClientsVQ( DhcpEnumSubnetClientsVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_CLIENT_INFO_ARRAY_VQ *ClientInfo, LPDHCP_CLIENT_INFO_ARRAY_VQ *ClientInfo,
DWORD *ClientsRead, DWORD *ClientsRead,
DWORD *ClientsTotal DWORD *ClientsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetClientsFilterStatusInfo( DhcpEnumSubnetClientsFilterStatusInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_CLIENT_FILTER_STATUS_INFO_ARRAY *ClientInfo, LPDHCP_CLIENT_FILTER_STATUS_INFO_ARRAY *ClientInfo,
DWORD *ClientsRead, DWORD *ClientsRead,
DWORD *ClientsTotal DWORD *ClientsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateClientInfo( DhcpCreateClientInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_CLIENT_INFO *ClientInfo DHCP_CONST DHCP_CLIENT_INFO *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetClientInfo( DhcpSetClientInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_CLIENT_INFO *ClientInfo DHCP_CONST DHCP_CLIENT_INFO *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetClientInfo( DhcpGetClientInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_SEARCH_INFO *SearchInfo, DHCP_CONST DHCP_SEARCH_INFO *SearchInfo,
LPDHCP_CLIENT_INFO *ClientInfo LPDHCP_CLIENT_INFO *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpDeleteClientInfo( DhcpDeleteClientInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_SEARCH_INFO *ClientInfo DHCP_CONST DHCP_SEARCH_INFO *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetClients( DhcpEnumSubnetClients(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_CLIENT_INFO_ARRAY *ClientInfo, LPDHCP_CLIENT_INFO_ARRAY *ClientInfo,
DWORD *ClientsRead, DWORD *ClientsRead,
DWORD *ClientsTotal DWORD *ClientsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetClientOptions( DhcpGetClientOptions(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS ClientIpAddress, DHCP_IP_ADDRESS ClientIpAddress,
DHCP_IP_MASK ClientSubnetMask, DHCP_IP_MASK ClientSubnetMask,
LPDHCP_OPTION_LIST *ClientOptions LPDHCP_OPTION_LIST *ClientOptions
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetMibInfo( DhcpGetMibInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
LPDHCP_MIB_INFO *MibInfo LPDHCP_MIB_INFO *MibInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpServerSetConfig( DhcpServerSetConfig(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DWORD FieldsToSet, DWORD FieldsToSet,
LPDHCP_SERVER_CONFIG_INFO ConfigInfo LPDHCP_SERVER_CONFIG_INFO ConfigInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpServerGetConfig( DhcpServerGetConfig(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
LPDHCP_SERVER_CONFIG_INFO *ConfigInfo LPDHCP_SERVER_CONFIG_INFO *ConfigInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpScanDatabase( DhcpScanDatabase(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DWORD FixFlag, DWORD FixFlag,
LPDHCP_SCAN_LIST *ScanList LPDHCP_SCAN_LIST *ScanList
); );
VOID DHCP_API_FUNCTION VOID DHCP_API_FUNCTION
DhcpRpcFreeMemory( DhcpRpcFreeMemory(
PVOID BufferPointer PVOID BufferPointer
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetVersion( DhcpGetVersion(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
LPDWORD MajorVersion, LPDWORD MajorVersion,
LPDWORD MinorVersion LPDWORD MinorVersion
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpAddSubnetElementV4( DhcpAddSubnetElementV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_CONST DHCP_SUBNET_ELEMENT_DATA_V4 *AddElementInfo DHCP_CONST DHCP_SUBNET_ELEMENT_DATA_V4 *AddElementInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetElementsV4( DhcpEnumSubnetElementsV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_SUBNET_ELEMENT_TYPE EnumElementType, DHCP_SUBNET_ELEMENT_TYPE EnumElementType,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V4 *EnumElementInfo, LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V4 *EnumElementInfo,
DWORD *ElementsRead, DWORD *ElementsRead,
DWORD *ElementsTotal DWORD *ElementsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpRemoveSubnetElementV4( DhcpRemoveSubnetElementV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_CONST DHCP_SUBNET_ELEMENT_DATA_V4 *RemoveElementInfo, DHCP_CONST DHCP_SUBNET_ELEMENT_DATA_V4 *RemoveElementInfo,
DHCP_FORCE_FLAG ForceFlag DHCP_FORCE_FLAG ForceFlag
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateClientInfoV4( DhcpCreateClientInfoV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_CLIENT_INFO_V4 *ClientInfo DHCP_CONST DHCP_CLIENT_INFO_V4 *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetClientInfoV4( DhcpSetClientInfoV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_CLIENT_INFO_V4 *ClientInfo DHCP_CONST DHCP_CLIENT_INFO_V4 *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetClientInfoV4( DhcpGetClientInfoV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_SEARCH_INFO *SearchInfo, DHCP_CONST DHCP_SEARCH_INFO *SearchInfo,
LPDHCP_CLIENT_INFO_V4 *ClientInfo LPDHCP_CLIENT_INFO_V4 *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetClientsV4( DhcpEnumSubnetClientsV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_CLIENT_INFO_ARRAY_V4 *ClientInfo, LPDHCP_CLIENT_INFO_ARRAY_V4 *ClientInfo,
DWORD *ClientsRead, DWORD *ClientsRead,
DWORD *ClientsTotal DWORD *ClientsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpServerSetConfigV4( DhcpServerSetConfigV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DWORD FieldsToSet, DWORD FieldsToSet,
LPDHCP_SERVER_CONFIG_INFO_V4 ConfigInfo LPDHCP_SERVER_CONFIG_INFO_V4 ConfigInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpServerGetConfigV4( DhcpServerGetConfigV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
LPDHCP_SERVER_CONFIG_INFO_V4 *ConfigInfo LPDHCP_SERVER_CONFIG_INFO_V4 *ConfigInfo
); );
DWORD DWORD
DhcpSetSuperScopeV4( DhcpSetSuperScopeV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_IP_ADDRESS SubnetAddress, DHCP_CONST DHCP_IP_ADDRESS SubnetAddress,
__in_opt DHCP_CONST LPWSTR SuperScopeName, _In_opt_ DHCP_CONST LPWSTR SuperScopeName,
DHCP_CONST BOOL ChangeExisting DHCP_CONST BOOL ChangeExisting
); );
DWORD DWORD
DhcpDeleteSuperScopeV4( DhcpDeleteSuperScopeV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
__in DHCP_CONST LPWSTR SuperScopeName _In_ DHCP_CONST LPWSTR SuperScopeName
); );
DWORD DWORD
DhcpGetSuperScopeInfoV4( DhcpGetSuperScopeInfoV4(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
LPDHCP_SUPER_SCOPE_TABLE *SuperScopeTable LPDHCP_SUPER_SCOPE_TABLE *SuperScopeTable
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetClientsV5( DhcpEnumSubnetClientsV5(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_CLIENT_INFO_ARRAY_V5 *ClientInfo, LPDHCP_CLIENT_INFO_ARRAY_V5 *ClientInfo,
DWORD *ClientsRead, DWORD *ClientsRead,
DWORD *ClientsTotal DWORD *ClientsTotal
); );
DWORD DWORD
DhcpCreateOptionV5( DhcpCreateOptionV5(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionId, IN DHCP_OPTION_ID OptionId,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION OptionInfo IN LPDHCP_OPTION OptionInfo
) ; ) ;
DWORD // ERROR_DHCP_OPTION_NOT_PRESE NT if option does not exist DWORD // ERROR_DHCP_OPTION_NOT_PRESE NT if option does not exist
DhcpSetOptionInfoV5( // Modify existing option's fi elds DhcpSetOptionInfoV5( // Modify existing option's fi elds
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION OptionInfo IN LPDHCP_OPTION OptionInfo
) ; ) ;
DWORD // ERROR_DHCP_OPTION_NOT_PRESE NT DWORD // ERROR_DHCP_OPTION_NOT_PRESE NT
DhcpGetOptionInfoV5( // retrieve the information fr om off the mem structures DhcpGetOptionInfoV5( // retrieve the information fr om off the mem structures
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
OUT LPDHCP_OPTION *OptionInfo // allocate memory us ing MIDL functions OUT LPDHCP_OPTION *OptionInfo // allocate memory us ing MIDL functions
) ; ) ;
DWORD // ERROR_DHCP_OPTION_NOT_PRESE NT if option does not exist DWORD // ERROR_DHCP_OPTION_NOT_PRESE NT if option does not exist
DhcpEnumOptionsV5( // enumerate the options defin ed DhcpEnumOptionsV5( // enumerate the options defin ed
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN OUT DHCP_RESUME_HANDLE *ResumeHandle, IN OUT DHCP_RESUME_HANDLE *ResumeHandle,
IN DWORD PreferredMaximum, IN DWORD PreferredMaximum,
OUT LPDHCP_OPTION_ARRAY *Options, OUT LPDHCP_OPTION_ARRAY *Options,
OUT DWORD *OptionsRead, OUT DWORD *OptionsRead,
OUT DWORD *OptionsTotal OUT DWORD *OptionsTotal
) ; ) ;
DWORD // ERROR_DHCP_OPTION_NOT_PRESE NT if option not existent DWORD // ERROR_DHCP_OPTION_NOT_PRESE NT if option not existent
DhcpRemoveOptionV5( // remove the option definitio n from the registry DhcpRemoveOptionV5( // remove the option definitio n from the registry
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName _In_opt_ IN LPWSTR VendorName
) ; ) ;
DWORD // OPTION_NOT_PRESENT if optio n is not defined DWORD // OPTION_NOT_PRESENT if optio n is not defined
DhcpSetOptionValueV5( // replace or add a new option value DhcpSetOptionValueV5( // replace or add a new option value
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionId, IN DHCP_OPTION_ID OptionId,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo, IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
IN LPDHCP_OPTION_DATA OptionValue IN LPDHCP_OPTION_DATA OptionValue
) ; ) ;
DWORD DWORD
DhcpSetOptionValuesV5( DhcpSetOptionValuesV5(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo, IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
IN LPDHCP_OPTION_VALUE_ARRAY OptionValues IN LPDHCP_OPTION_VALUE_ARRAY OptionValues
) ; ) ;
DWORD DWORD
DhcpGetOptionValueV5( // fetch the required option a t required level DhcpGetOptionValueV5( // fetch the required option a t required level
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo, IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
OUT LPDHCP_OPTION_VALUE *OptionValue OUT LPDHCP_OPTION_VALUE *OptionValue
) ; ) ;
DWORD DWORD
DhcpGetOptionValueV6( // fetch the required option a t required level DhcpGetOptionValueV6( // fetch the required option a t required level
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo, IN LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
OUT LPDHCP_OPTION_VALUE *OptionValue OUT LPDHCP_OPTION_VALUE *OptionValue
) ; ) ;
DWORD DWORD
DhcpEnumOptionValuesV5( DhcpEnumOptionValuesV5(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo, IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
IN DHCP_RESUME_HANDLE *ResumeHandle, IN DHCP_RESUME_HANDLE *ResumeHandle,
IN DWORD PreferredMaximum, IN DWORD PreferredMaximum,
OUT LPDHCP_OPTION_VALUE_ARRAY *OptionValues, OUT LPDHCP_OPTION_VALUE_ARRAY *OptionValues,
OUT DWORD *OptionsRead, OUT DWORD *OptionsRead,
OUT DWORD *OptionsTotal OUT DWORD *OptionsTotal
) ; ) ;
DWORD DWORD
DhcpRemoveOptionValueV5( DhcpRemoveOptionValueV5(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo
) ; ) ;
DWORD DWORD
DhcpCreateClass( DhcpCreateClass(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
IN LPDHCP_CLASS_INFO ClassInfo IN LPDHCP_CLASS_INFO ClassInfo
) ; ) ;
DWORD DWORD
DhcpModifyClass( DhcpModifyClass(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
IN LPDHCP_CLASS_INFO ClassInfo IN LPDHCP_CLASS_INFO ClassInfo
) ; ) ;
DWORD DWORD
DhcpDeleteClass( DhcpDeleteClass(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
__in IN LPWSTR ClassName _In_ IN LPWSTR ClassName
) ; ) ;
DWORD DWORD
DhcpGetClassInfo( DhcpGetClassInfo(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
IN LPDHCP_CLASS_INFO PartialClassInfo, IN LPDHCP_CLASS_INFO PartialClassInfo,
OUT LPDHCP_CLASS_INFO *FilledClassInfo OUT LPDHCP_CLASS_INFO *FilledClassInfo
) ; ) ;
DWORD DWORD
DhcpEnumClasses( DhcpEnumClasses(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
IN OUT DHCP_RESUME_HANDLE *ResumeHandle, IN OUT DHCP_RESUME_HANDLE *ResumeHandle,
IN DWORD PreferredMaximum, IN DWORD PreferredMaximum,
OUT LPDHCP_CLASS_INFO_ARRAY *ClassInfoArray, OUT LPDHCP_CLASS_INFO_ARRAY *ClassInfoArray,
OUT DWORD *nRead, OUT DWORD *nRead,
OUT DWORD *nTotal OUT DWORD *nTotal
) ; ) ;
DWORD DWORD
DhcpGetAllOptions( DhcpGetAllOptions(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
OUT LPDHCP_ALL_OPTIONS *OptionStruct // fills the fields of this structure OUT LPDHCP_ALL_OPTIONS *OptionStruct // fills the fields of this structure
) ; ) ;
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetAllOptionsV6( DhcpGetAllOptionsV6(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
OUT LPDHCP_ALL_OPTIONS *OptionStruct // fills the fields of this structure OUT LPDHCP_ALL_OPTIONS *OptionStruct // fills the fields of this structure
); );
DWORD DWORD
DhcpGetAllOptionValues( DhcpGetAllOptionValues(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo, IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
OUT LPDHCP_ALL_OPTION_VALUES *Values OUT LPDHCP_ALL_OPTION_VALUES *Values
) ; ) ;
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetAllOptionValuesV6( DhcpGetAllOptionValuesV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo, IN LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
OUT LPDHCP_ALL_OPTION_VALUES *Values OUT LPDHCP_ALL_OPTION_VALUES *Values
); );
//DOC DhcpEnumServers enumerates the list of servers found in the DS. If the DS //DOC DhcpEnumServers enumerates the list of servers found in the DS. If the DS
//DOC is not accessible, it returns an error. The only currently used parameter //DOC is not accessible, it returns an error. The only currently used parameter
//DOC is the out parameter Servers. This is a SLOW call. //DOC is the out parameter Servers. This is a SLOW call.
DWORD DWORD
DhcpEnumServers( DhcpEnumServers(
skipping to change at line 1966 skipping to change at line 2398
DhcpDeleteServer( DhcpDeleteServer(
IN DWORD Flags, // must be zero IN DWORD Flags, // must be zero
IN LPVOID IdInfo, // must be NULL IN LPVOID IdInfo, // must be NULL
IN LPDHCP_SERVER_INFO NewServer, // input server information IN LPDHCP_SERVER_INFO NewServer, // input server information
IN LPVOID CallbackFn, // must be NULL IN LPVOID CallbackFn, // must be NULL
IN LPVOID CallbackData // must be NULL IN LPVOID CallbackData // must be NULL
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetServerBindingInfo( DhcpGetServerBindingInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
ULONG Flags, ULONG Flags,
LPDHCP_BIND_ELEMENT_ARRAY *BindElementsInfo LPDHCP_BIND_ELEMENT_ARRAY *BindElementsInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetServerBindingInfo( DhcpSetServerBindingInfo(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
ULONG Flags, ULONG Flags,
LPDHCP_BIND_ELEMENT_ARRAY BindElementInfo LPDHCP_BIND_ELEMENT_ARRAY BindElementInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpAddSubnetElementV5( DhcpAddSubnetElementV5(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_CONST DHCP_SUBNET_ELEMENT_DATA_V5 *AddElementInfo DHCP_CONST DHCP_SUBNET_ELEMENT_DATA_V5 *AddElementInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetElementsV5( DhcpEnumSubnetElementsV5(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_SUBNET_ELEMENT_TYPE EnumElementType, DHCP_SUBNET_ELEMENT_TYPE EnumElementType,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V5 *EnumElementInfo, LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V5 *EnumElementInfo,
DWORD *ElementsRead, DWORD *ElementsRead,
DWORD *ElementsTotal DWORD *ElementsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpRemoveSubnetElementV5( DhcpRemoveSubnetElementV5(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
DHCP_CONST DHCP_SUBNET_ELEMENT_DATA_V5 *RemoveElementInfo, DHCP_CONST DHCP_SUBNET_ELEMENT_DATA_V5 *RemoveElementInfo,
DHCP_FORCE_FLAG ForceFlag DHCP_FORCE_FLAG ForceFlag
); );
DWORD DHCP_API_FUNCTION
DhcpV4EnumSubnetReservations(
_In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_Inout_ DHCP_RESUME_HANDLE *ResumeHandle,
_In_ DWORD PreferredMaximum,
_Out_ LPDHCP_RESERVATION_INFO_ARRAY *EnumElementInfo,
_Out_ DWORD *ElementsRead,
_Out_ DWORD *ElementsTotal
);
//V6 Api's //V6 Api's
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateOptionV6( DhcpCreateOptionV6(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionId, IN DHCP_OPTION_ID OptionId,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION OptionInfo IN LPDHCP_OPTION OptionInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpRemoveOptionV6( DhcpRemoveOptionV6(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName _In_opt_ IN LPWSTR VendorName
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumOptionsV6( DhcpEnumOptionsV6(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
__in_opt IN LPWSTR ClassName, _In_opt_ IN LPWSTR ClassName,
__in_opt IN LPWSTR VendorName, _In_opt_ IN LPWSTR VendorName,
IN OUT DHCP_RESUME_HANDLE *ResumeHandle, IN OUT DHCP_RESUME_HANDLE *ResumeHandle,
IN DWORD PreferredMaximum, IN DWORD PreferredMaximum,
OUT LPDHCP_OPTION_ARRAY *Options, OUT LPDHCP_OPTION_ARRAY *Options,
OUT DWORD *OptionsRead, OUT DWORD *OptionsRead,
OUT DWORD *OptionsTotal OUT DWORD *OptionsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpRemoveOptionValueV6( DhcpRemoveOptionValueV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt LPWSTR ClassName, _In_opt_ LPWSTR ClassName,
__in_opt LPWSTR VendorName, _In_opt_ LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo IN LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetOptionInfoV6( DhcpGetOptionInfoV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt LPWSTR ClassName, _In_opt_ LPWSTR ClassName,
__in_opt LPWSTR VendorName, _In_opt_ LPWSTR VendorName,
OUT LPDHCP_OPTION *OptionInfo OUT LPDHCP_OPTION *OptionInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetOptionInfoV6( DhcpSetOptionInfoV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionID, IN DHCP_OPTION_ID OptionID,
__in_opt LPWSTR ClassName, _In_opt_ LPWSTR ClassName,
__in_opt LPWSTR VendorName, _In_opt_ LPWSTR VendorName,
IN LPDHCP_OPTION OptionInfo IN LPDHCP_OPTION OptionInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetOptionValueV6( DhcpSetOptionValueV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
IN DHCP_OPTION_ID OptionId, IN DHCP_OPTION_ID OptionId,
__in_opt LPWSTR ClassName, _In_opt_ LPWSTR ClassName,
__in_opt LPWSTR VendorName, _In_opt_ LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo, IN LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
IN LPDHCP_OPTION_DATA OptionValue IN LPDHCP_OPTION_DATA OptionValue
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetSubnetInfoVQ( DhcpGetSubnetInfoVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
__out LPDHCP_SUBNET_INFO_VQ *SubnetInfo _Out_ LPDHCP_SUBNET_INFO_VQ *SubnetInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateSubnetVQ( DhcpCreateSubnetVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
__in DHCP_CONST DHCP_SUBNET_INFO_VQ *SubnetInfo _In_ DHCP_CONST DHCP_SUBNET_INFO_VQ *SubnetInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetSubnetInfoVQ( DhcpSetSubnetInfoVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IP_ADDRESS SubnetAddress, DHCP_IP_ADDRESS SubnetAddress,
__in DHCP_CONST DHCP_SUBNET_INFO_VQ *SubnetInfo _In_ DHCP_CONST DHCP_SUBNET_INFO_VQ *SubnetInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumOptionValuesV6( DhcpEnumOptionValuesV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DWORD Flags, DWORD Flags,
__in_opt LPWSTR ClassName, _In_opt_ LPWSTR ClassName,
__in_opt LPWSTR VendorName, _In_opt_ LPWSTR VendorName,
LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo, LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_OPTION_VALUE_ARRAY *OptionValues, LPDHCP_OPTION_VALUE_ARRAY *OptionValues,
DWORD *OptionsRead, DWORD *OptionsRead,
DWORD *OptionsTotal DWORD *OptionsTotal
); );
#endif #endif
skipping to change at line 2145 skipping to change at line 2588
//DOC DhcpGetThreadOptions retrieves the current thread options as set by DhcpSe tThreadOptions. //DOC DhcpGetThreadOptions retrieves the current thread options as set by DhcpSe tThreadOptions.
//DOC If none were set, the return value is zero. //DOC If none were set, the return value is zero.
DWORD DWORD
DhcpGetThreadOptions( // get current thread options DhcpGetThreadOptions( // get current thread options
OUT LPDWORD pFlags, // this DWORD is filled with c urrent optiosn.. OUT LPDWORD pFlags, // this DWORD is filled with c urrent optiosn..
IN OUT LPVOID Reserved // must be NULL, reserved for future IN OUT LPVOID Reserved // must be NULL, reserved for future
); );
DWORD // Status code DWORD // Status code
DhcpServerQueryAttribute( // get a server status DhcpServerQueryAttribute( // get a server status
__in_opt IN LPWSTR ServerIpAddr, // String form of ser ver IP _In_opt_ IN LPWSTR ServerIpAddr, // String form of ser ver IP
IN ULONG dwReserved, // reserved for futur e IN ULONG dwReserved, // reserved for futur e
IN DHCP_ATTRIB_ID DhcpAttribId, // the attrib being q ueried IN DHCP_ATTRIB_ID DhcpAttribId, // the attrib being q ueried
OUT LPDHCP_ATTRIB *pDhcpAttrib // fill in this field OUT LPDHCP_ATTRIB *pDhcpAttrib // fill in this field
); );
DWORD // Status code DWORD // Status code
DhcpServerQueryAttributes( // query multiple attributes DhcpServerQueryAttributes( // query multiple attributes
__in_opt IN LPWSTR ServerIpAddr, // String form of ser ver IP _In_opt_ IN LPWSTR ServerIpAddr, // String form of ser ver IP
IN ULONG dwReserved, // reserved for futur e IN ULONG dwReserved, // reserved for futur e
IN ULONG dwAttribCount, // # of attribs being queried IN ULONG dwAttribCount, // # of attribs being queried
IN DHCP_ATTRIB_ID pDhcpAttribs[],// array of attribs IN DHCP_ATTRIB_ID pDhcpAttribs[],// array of attribs
OUT LPDHCP_ATTRIB_ARRAY *pDhcpAttribArr // Ptr is filled w/ a rray OUT LPDHCP_ATTRIB_ARRAY *pDhcpAttribArr // Ptr is filled w/ a rray
); );
DWORD // Status code DWORD // Status code
DhcpServerRedoAuthorization( // retry the rogue server stuf f DhcpServerRedoAuthorization( // retry the rogue server stuf f
__in_opt IN LPWSTR ServerIpAddr, // String form of ser ver IP _In_opt_ IN LPWSTR ServerIpAddr, // String form of ser ver IP
IN ULONG dwReserved // reserved for futur e IN ULONG dwReserved // reserved for futur e
); );
DWORD DWORD
DhcpAuditLogSetParams( // set some auditlogging param s DhcpAuditLogSetParams( // set some auditlogging param s
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, // currently must be zero IN DWORD Flags, // currently must be zero
__in_opt IN LPWSTR AuditLogDir, // directory to log f iles in.. _In_opt_ IN LPWSTR AuditLogDir, // directory to log f iles in..
IN DWORD DiskCheckInterval, // how often to c heck disk space? IN DWORD DiskCheckInterval, // how often to c heck disk space?
IN DWORD MaxLogFilesSize, // how big can al l logs files be.. IN DWORD MaxLogFilesSize, // how big can al l logs files be..
IN DWORD MinSpaceOnDisk // mininum amt of free disk space IN DWORD MinSpaceOnDisk // mininum amt of free disk space
); );
DWORD DWORD
DhcpAuditLogGetParams( DhcpAuditLogGetParams(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags, IN DWORD Flags,
__deref_out_opt OUT LPWSTR *AuditLogDir, _Outptr_result_maybenull_ OUT LPWSTR *AuditLogDir,
OUT DWORD *DiskCheckInterval, OUT DWORD *DiskCheckInterval,
OUT DWORD *MaxLogFilesSize, OUT DWORD *MaxLogFilesSize,
OUT DWORD *MinSpaceOnDisk OUT DWORD *MinSpaceOnDisk
); );
DWORD DWORD
DhcpServerQueryDnsRegCredentials( DhcpServerQueryDnsRegCredentials(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN ULONG UnameSize, //in BYTES IN ULONG UnameSize, //in BYTES
__out_ecount(UnameSize) LPWSTR Uname, _Out_writes_(UnameSize) LPWSTR Uname,
IN ULONG DomainSize, // in BYTES IN ULONG DomainSize, // in BYTES
__out_ecount(DomainSize) LPWSTR Domain _Out_writes_(DomainSize) LPWSTR Domain
); );
DWORD DWORD
DhcpServerSetDnsRegCredentials( DhcpServerSetDnsRegCredentials(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
__in_opt IN LPWSTR Uname, _In_opt_ IN LPWSTR Uname,
__in_opt IN LPWSTR Domain, _In_opt_ IN LPWSTR Domain,
__in_opt IN LPWSTR Passwd _In_opt_ IN LPWSTR Passwd
); );
DWORD DWORD
DhcpServerSetDnsRegCredentialsV5( DhcpServerSetDnsRegCredentialsV5(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
__in_opt IN LPWSTR Uname, _In_opt_ IN LPWSTR Uname,
__in_opt IN LPWSTR Domain, _In_opt_ IN LPWSTR Domain,
__in_opt IN LPWSTR Passwd _In_opt_ IN LPWSTR Passwd
); );
DWORD DWORD
DhcpServerBackupDatabase( DhcpServerBackupDatabase(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
__in IN LPWSTR Path _In_ IN LPWSTR Path
); );
DWORD DWORD
DhcpServerRestoreDatabase( DhcpServerRestoreDatabase(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
__in IN LPWSTR Path _In_ IN LPWSTR Path
); );
// //
// All Quarantine related APIs // All Quarantine related APIs
// //
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpServerSetConfigVQ( DhcpServerSetConfigVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DWORD FieldsToSet, DWORD FieldsToSet,
LPDHCP_SERVER_CONFIG_INFO_VQ ConfigInfo LPDHCP_SERVER_CONFIG_INFO_VQ ConfigInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpServerGetConfigVQ( DhcpServerGetConfigVQ(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
LPDHCP_SERVER_CONFIG_INFO_VQ *ConfigInfo LPDHCP_SERVER_CONFIG_INFO_VQ *ConfigInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetServerSpecificStrings( DhcpGetServerSpecificStrings(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
LPDHCP_SERVER_SPECIFIC_STRINGS *ServerSpecificStrings LPDHCP_SERVER_SPECIFIC_STRINGS *ServerSpecificStrings
); );
void DHCP_API_FUNCTION void DHCP_API_FUNCTION
DhcpServerAuditlogParamsFree( DhcpServerAuditlogParamsFree(
DHCP_SERVER_CONFIG_INFO_VQ *ConfigInfo DHCP_SERVER_CONFIG_INFO_VQ *ConfigInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateSubnetV6( DhcpCreateSubnetV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
DHCP_IPV6_ADDRESS SubnetAddress, DHCP_IPV6_ADDRESS SubnetAddress,
LPDHCP_SUBNET_INFO_V6 SubnetInfo LPDHCP_SUBNET_INFO_V6 SubnetInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpDeleteSubnetV6( DhcpDeleteSubnetV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
DHCP_IPV6_ADDRESS SubnetAddress, DHCP_IPV6_ADDRESS SubnetAddress,
DHCP_FORCE_FLAG ForceFlag DHCP_FORCE_FLAG ForceFlag
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetsV6( DhcpEnumSubnetsV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCPV6_IP_ARRAY *EnumInfo, LPDHCPV6_IP_ARRAY *EnumInfo,
DWORD *ElementsRead, DWORD *ElementsRead,
DWORD *ElementsTotal DWORD *ElementsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpAddSubnetElementV6( DhcpAddSubnetElementV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
DHCP_IPV6_ADDRESS SubnetAddress, DHCP_IPV6_ADDRESS SubnetAddress,
LPDHCP_SUBNET_ELEMENT_DATA_V6 AddElementInfo LPDHCP_SUBNET_ELEMENT_DATA_V6 AddElementInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpRemoveSubnetElementV6( DhcpRemoveSubnetElementV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
DHCP_IPV6_ADDRESS SubnetAddress, DHCP_IPV6_ADDRESS SubnetAddress,
LPDHCP_SUBNET_ELEMENT_DATA_V6 RemoveElementInfo, LPDHCP_SUBNET_ELEMENT_DATA_V6 RemoveElementInfo,
DHCP_FORCE_FLAG ForceFlag DHCP_FORCE_FLAG ForceFlag
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetElementsV6( DhcpEnumSubnetElementsV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
DHCP_IPV6_ADDRESS SubnetAddress, DHCP_IPV6_ADDRESS SubnetAddress,
DHCP_SUBNET_ELEMENT_TYPE_V6 EnumElementType, DHCP_SUBNET_ELEMENT_TYPE_V6 EnumElementType,
DHCP_RESUME_HANDLE *ResumeHandle, DHCP_RESUME_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 *EnumElementInfo, LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 *EnumElementInfo,
DWORD *ElementsRead, DWORD *ElementsRead,
DWORD *ElementsTotal DWORD *ElementsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetSubnetInfoV6( DhcpGetSubnetInfoV6(
__in_opt LPWSTR ServerIpAddress, _In_opt_ LPWSTR ServerIpAddress,
DHCP_IPV6_ADDRESS SubnetAddress, DHCP_IPV6_ADDRESS SubnetAddress,
LPDHCP_SUBNET_INFO_V6 *SubnetInfo LPDHCP_SUBNET_INFO_V6 *SubnetInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumSubnetClientsV6( DhcpEnumSubnetClientsV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IPV6_ADDRESS SubnetAddress, DHCP_IPV6_ADDRESS SubnetAddress,
DHCP_RESUME_IPV6_HANDLE *ResumeHandle, DHCP_RESUME_IPV6_HANDLE *ResumeHandle,
DWORD PreferredMaximum, DWORD PreferredMaximum,
LPDHCP_CLIENT_INFO_ARRAY_V6 *ClientInfo, LPDHCP_CLIENT_INFO_ARRAY_V6 *ClientInfo,
DWORD *ClientsRead, DWORD *ClientsRead,
DWORD *ClientsTotal DWORD *ClientsTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpServerGetConfigV6( DhcpServerGetConfigV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo, LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
LPDHCP_SERVER_CONFIG_INFO_V6 *ConfigInfo LPDHCP_SERVER_CONFIG_INFO_V6 *ConfigInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpServerSetConfigV6( DhcpServerSetConfigV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo, LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
DWORD FieldsToSet, DWORD FieldsToSet,
LPDHCP_SERVER_CONFIG_INFO_V6 ConfigInfo LPDHCP_SERVER_CONFIG_INFO_V6 ConfigInfo
); );
DWORD DWORD
DhcpSetSubnetInfoV6( DhcpSetSubnetInfoV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_IPV6_ADDRESS SubnetAddress, DHCP_IPV6_ADDRESS SubnetAddress,
LPDHCP_SUBNET_INFO_V6 SubnetInfo LPDHCP_SUBNET_INFO_V6 SubnetInfo
); );
DWORD DWORD
DhcpGetMibInfoV6( DhcpGetMibInfoV6(
__in_z_opt DHCP_CONST WCHAR * ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR * ServerIpAddress,
LPDHCP_MIB_INFO_V6 *MibInfo LPDHCP_MIB_INFO_V6 *MibInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetServerBindingInfoV6( DhcpGetServerBindingInfoV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
ULONG Flags, ULONG Flags,
LPDHCPV6_BIND_ELEMENT_ARRAY *BindElementsInfo LPDHCPV6_BIND_ELEMENT_ARRAY *BindElementsInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetServerBindingInfoV6( DhcpSetServerBindingInfoV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
ULONG Flags, ULONG Flags,
LPDHCPV6_BIND_ELEMENT_ARRAY BindElementInfo LPDHCPV6_BIND_ELEMENT_ARRAY BindElementInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetClientInfoV6( DhcpSetClientInfoV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_CLIENT_INFO_V6 *ClientInfo DHCP_CONST DHCP_CLIENT_INFO_V6 *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetClientInfoV6( DhcpGetClientInfoV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_SEARCH_INFO_V6 *SearchInfo, DHCP_CONST DHCP_SEARCH_INFO_V6 *SearchInfo,
LPDHCP_CLIENT_INFO_V6 *ClientInfo LPDHCP_CLIENT_INFO_V6 *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpDeleteClientInfoV6( DhcpDeleteClientInfoV6(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
DHCP_CONST DHCP_SEARCH_INFO_V6 *ClientInfo DHCP_CONST DHCP_SEARCH_INFO_V6 *ClientInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpCreateClassV6( DhcpCreateClassV6(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
IN LPDHCP_CLASS_INFO_V6 ClassInfo IN LPDHCP_CLASS_INFO_V6 ClassInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpModifyClassV6( DhcpModifyClassV6(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
IN LPDHCP_CLASS_INFO_V6 ClassInfo IN LPDHCP_CLASS_INFO_V6 ClassInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpDeleteClassV6( DhcpDeleteClassV6(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
__in IN LPWSTR ClassName _In_ IN LPWSTR ClassName
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpEnumClassesV6( DhcpEnumClassesV6(
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD ReservedMustBeZero, IN DWORD ReservedMustBeZero,
IN OUT DHCP_RESUME_HANDLE *ResumeHandle, IN OUT DHCP_RESUME_HANDLE *ResumeHandle,
IN DWORD PreferredMaximum, IN DWORD PreferredMaximum,
OUT LPDHCP_CLASS_INFO_ARRAY_V6 *ClassInfoArray, OUT LPDHCP_CLASS_INFO_ARRAY_V6 *ClassInfoArray,
OUT DWORD *nRead, OUT DWORD *nRead,
OUT DWORD *nTotal OUT DWORD *nTotal
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpSetSubnetDelayOffer ( DhcpSetSubnetDelayOffer (
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DHCP_IP_ADDRESS SubnetAddress, IN DHCP_IP_ADDRESS SubnetAddress,
IN USHORT TimeDelayInMilliseconds IN USHORT TimeDelayInMilliseconds
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetSubnetDelayOffer ( DhcpGetSubnetDelayOffer (
__in_opt IN LPWSTR ServerIpAddress, _In_opt_ IN LPWSTR ServerIpAddress,
IN DHCP_IP_ADDRESS SubnetAddress, IN DHCP_IP_ADDRESS SubnetAddress,
IN USHORT * TimeDelayInMilliseconds IN USHORT * TimeDelayInMilliseconds
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpGetMibInfoV5( DhcpGetMibInfoV5(
__in_z_opt DHCP_CONST WCHAR *ServerIpAddress, _In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
OUT LPDHCP_MIB_INFO_V5 *MibInfo OUT LPDHCP_MIB_INFO_V5 *MibInfo
); );
DWORD DHCP_API_FUNCTION DWORD DHCP_API_FUNCTION
DhcpAddSecurityGroup( DhcpAddSecurityGroup(
__in_opt LPWSTR pServer _In_opt_ LPWSTR pServer
);
DWORD DHCP_API_FUNCTION
DhcpV4GetOptionValue (
_In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags,
IN DHCP_OPTION_ID OptionID,
_In_opt_ IN LPWSTR PolicyName,
_In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
OUT LPDHCP_OPTION_VALUE *OptionValue
);
DWORD DHCP_API_FUNCTION
DhcpV4SetOptionValue (
_In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags,
IN DHCP_OPTION_ID OptionId,
_In_opt_ IN LPWSTR PolicyName,
_In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
IN LPDHCP_OPTION_DATA OptionValue
);
DWORD DHCP_API_FUNCTION
DhcpV4SetOptionValues(
_In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags,
_In_opt_ IN LPWSTR PolicyName,
_In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
IN LPDHCP_OPTION_VALUE_ARRAY OptionValues
);
DWORD DHCP_API_FUNCTION
DhcpV4RemoveOptionValue (
_In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags,
IN DHCP_OPTION_ID OptionID,
_In_opt_ IN LPWSTR PolicyName,
_In_opt_ IN LPWSTR VendorName,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo
);
DWORD DHCP_API_FUNCTION
DhcpV4GetAllOptionValues (
_In_opt_ IN LPWSTR ServerIpAddress,
IN DWORD Flags,
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
OUT LPDHCP_ALL_OPTION_VALUES_PB *Values
);
// DHCPv4 failover structures
#define DHCP_FAILOVER_DELETE_SCOPES 0x00000001
#define DHCP_FAILOVER_MAX_NUM_ADD_SCOPES 400
#define DHCP_FAILOVER_MAX_NUM_REL 31
typedef enum _DHCP_FAILOVER_MODE {
LoadBalance,
HotStandby
} DHCP_FAILOVER_MODE, *LPDHCP_FAILOVER_MODE;
typedef enum _DHCP_FAILOVER_SERVER {
PrimaryServer,
SecondaryServer
} DHCP_FAILOVER_SERVER, *LPDHCP_FAILOVER_SERVER;
typedef enum _FSM_STATE // enumeration defining all the states of the failover s
ervers.
{
NO_STATE=0,
INIT,
STARTUP,
NORMAL,
COMMUNICATION_INT,
PARTNER_DOWN,
POTENTIAL_CONFLICT,
CONFLICT_DONE,
RESOLUTION_INT,
RECOVER,
RECOVER_WAIT,
RECOVER_DONE,
PAUSED,
SHUTDOWN
} FSM_STATE;
typedef struct _DHCP_FAILOVER_RELATIONSHIP
{
DHCP_IP_ADDRESS PrimaryServer;
DHCP_IP_ADDRESS SecondaryServer;
DHCP_FAILOVER_MODE Mode;
DHCP_FAILOVER_SERVER ServerType;
FSM_STATE State;
FSM_STATE PrevState; // update the database
DWORD Mclt;
DWORD SafePeriod;
LPWSTR RelationshipName;
LPWSTR PrimaryServerName;
LPWSTR SecondaryServerName;
// scopes part of this relationship
LPDHCP_IP_ARRAY pScopes;
BYTE Percentage;
LPWSTR SharedSecret; //added to support message authent
ication in failover
} DHCP_FAILOVER_RELATIONSHIP, *LPDHCP_FAILOVER_RELATIONSHIP;
typedef struct _DHCP_FAILOVER_RELATIONSHIP_ARRAY
{
DWORD NumElements;
#if defined(MIDL_PASS)
[size_is(NumElements)]
#endif // MIDL_PASS
_Field_size_(NumElements) LPDHCP_FAILOVER_RELATIONSHIP pRelationships;
} DHCP_FAILOVER_RELATIONSHIP_ARRAY , *LPDHCP_FAILOVER_RELATIONSHIP_ARRAY;
typedef struct _DHCPV4_FAILOVER_CLIENT_INFO {
DHCP_IP_ADDRESS ClientIpAddress; // currently assigned IP address
.
DHCP_IP_MASK SubnetMask;
DHCP_CLIENT_UID ClientHardwareAddress;
LPWSTR ClientName;
LPWSTR ClientComment;
DATE_TIME ClientLeaseExpires; // UTC time in FILE_TIME f
ormat.
DHCP_HOST_INFO OwnerHost; // host that distributed this I
P address.
BYTE bClientType;
BYTE AddressState;
QuarantineStatus Status;
DATE_TIME ProbationEnds;
BOOL QuarantineCapable;
DWORD SentPotExpTime;
DWORD AckPotExpTime;
DWORD RecvPotExpTime;
DWORD StartTime;
DWORD CltLastTransTime;
DWORD LastBndUpdTime;
DWORD BndMsgStatus;
LPWSTR PolicyName;
BYTE Flags;
} DHCPV4_FAILOVER_CLIENT_INFO, *LPDHCPV4_FAILOVER_CLIENT_INFO;
typedef struct _DHCPV4_FAILOVER_CLIENT_INFO_ARRAY {
DWORD NumElements;
#if defined(MIDL_PASS)
[size_is(NumElements)]
#endif // MIDL_PASS
_Field_size_(NumElements) LPDHCPV4_FAILOVER_CLIENT_INFO *Clients; // array
of pointers
} DHCPV4_FAILOVER_CLIENT_INFO_ARRAY, *LPDHCPV4_FAILOVER_CLIENT_INFO_ARRAY;
typedef struct _DHCPV4_FAILOVER_CLIENT_INFO_EX {
DHCP_IP_ADDRESS ClientIpAddress; // currently assigned IP address
.
DHCP_IP_MASK SubnetMask;
DHCP_CLIENT_UID ClientHardwareAddress;
LPWSTR ClientName;
LPWSTR ClientComment;
DATE_TIME ClientLeaseExpires; // UTC time in FILE_TIME f
ormat.
DHCP_HOST_INFO OwnerHost; // host that distributed this I
P address.
BYTE bClientType;
BYTE AddressState;
QuarantineStatus Status;
DATE_TIME ProbationEnds;
BOOL QuarantineCapable;
DWORD SentPotExpTime;
DWORD AckPotExpTime;
DWORD RecvPotExpTime;
DWORD StartTime;
DWORD CltLastTransTime;
DWORD LastBndUpdTime;
DWORD BndMsgStatus;
LPWSTR PolicyName;
BYTE Flags;
DWORD AddressStateEx;
} DHCPV4_FAILOVER_CLIENT_INFO_EX, *LPDHCPV4_FAILOVER_CLIENT_INFO_EX;
typedef struct _DHCP_FAILOVER_STATISTICS
{
DWORD NumAddr;
DWORD AddrFree;
DWORD AddrInUse;
DWORD PartnerAddrFree;
DWORD ThisAddrFree;
DWORD PartnerAddrInUse;
DWORD ThisAddrInUse;
} DHCP_FAILOVER_STATISTICS, *LPDHCP_FAILOVER_STATISTICS;
#define MCLT 0x00000001
#define SAFEPERIOD 0x00000002
#define CHANGESTATE 0x00000004
#define PERCENTAGE 0x00000008
#define MODE 0x00000010
#define PREVSTATE 0x00000020
#define SHAREDSECRET 0x00000040
DWORD DHCP_API_FUNCTION
DhcpV4FailoverCreateRelationship(
_In_opt_ LPWSTR ServerIpAddress,
_In_ LPDHCP_FAILOVER_RELATIONSHIP pRelationship
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverSetRelationship(
_In_opt_ LPWSTR ServerIpAddress,
_In_ DWORD Flags,
_In_ LPDHCP_FAILOVER_RELATIONSHIP pRelationship
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverDeleteRelationship(
_In_opt_ LPWSTR ServerIpAddress,
_In_ LPWSTR pRelationshipName
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverGetRelationship(
_In_opt_ LPWSTR ServerIpAddress,
_In_ LPWSTR pRelationshipName,
_Out_ LPDHCP_FAILOVER_RELATIONSHIP *pRelationship
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverEnumRelationship(
_In_opt_ LPWSTR ServerIpAddress,
_Inout_ DHCP_RESUME_HANDLE *ResumeHandle,
_In_ DWORD PreferredMaximum,
_Out_ LPDHCP_FAILOVER_RELATIONSHIP_ARRAY *pRelationship,
_Out_ LPDWORD RelationshipRead,
_Out_ LPDWORD RelationshipTotal
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverAddScopeToRelationship(
_In_opt_ LPWSTR ServerIpAddress,
_In_ LPDHCP_FAILOVER_RELATIONSHIP pRelationship
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverDeleteScopeFromRelationship(
_In_opt_ LPWSTR ServerIpAddress,
_In_ LPDHCP_FAILOVER_RELATIONSHIP pRelationship
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverGetScopeRelationship(
_In_opt_ LPWSTR ServerIpAddress,
_In_ DHCP_IP_ADDRESS ScopeId,
_Out_ LPDHCP_FAILOVER_RELATIONSHIP *pRelationship
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverGetScopeStatistics(
_In_opt_ LPWSTR ServerIpAddress,
_In_ DHCP_IP_ADDRESS ScopeId,
_Out_ LPDHCP_FAILOVER_STATISTICS *pStats
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverGetClientInfo(
_In_opt_ LPWSTR ServerIpAddress,
_In_ DHCP_CONST DHCP_SEARCH_INFO *SearchInfo,
_Out_ LPDHCPV4_FAILOVER_CLIENT_INFO *ClientInfo
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverGetSystemTime(
_In_opt_ LPWSTR ServerIpAddress,
_Out_ LPDWORD pTime,
_Out_ LPDWORD pMaxAllowedDeltaTime
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverGetAddressStatus(
_In_opt_ LPWSTR ServerIpAddress,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_Inout_ LPDWORD pStatus
);
DWORD DHCP_API_FUNCTION
DhcpV4FailoverTriggerAddrAllocation(
_In_opt_ LPWSTR ServerIpAddress,
_In_ LPWSTR pFailRelName
);
//Policy Functions Defn start
DWORD DHCP_API_FUNCTION
DhcpHlprCreateV4Policy (
_In_ LPWSTR PolicyName,
_In_ BOOL fGlobalPolicy,
_In_ DHCP_IP_ADDRESS Subnet,
_In_ DWORD ProcessingOrder,
_In_ DHCP_POL_LOGIC_OPER RootOperator,
_In_ LPWSTR Description,
_In_ BOOL Enabled,
_Out_ LPDHCP_POLICY *Policy
);
DWORD DHCP_API_FUNCTION
DhcpHlprCreateV4PolicyEx (
_In_ LPWSTR PolicyName,
_In_ BOOL fGlobalPolicy,
_In_ DHCP_IP_ADDRESS Subnet,
_In_ DWORD ProcessingOrder,
_In_ DHCP_POL_LOGIC_OPER RootOperator,
_In_ LPWSTR Description,
_In_ BOOL Enabled,
_Out_ LPDHCP_POLICY_EX *Policy
);
DWORD DHCP_API_FUNCTION
DhcpHlprAddV4PolicyExpr (
_Inout_ LPDHCP_POLICY Policy,
_In_ DWORD ParentExpr,
_In_ DHCP_POL_LOGIC_OPER Operator,
_Out_ DWORD *ExprIndex
);
DWORD DHCP_API_FUNCTION
DhcpHlprAddV4PolicyCondition (
_Inout_ LPDHCP_POLICY Policy,
_In_ DWORD ParentExpr,
_In_ DHCP_POL_ATTR_TYPE Type,
_In_ DWORD OptionID,
_In_ DWORD SubOptionID,
_In_opt_ LPWSTR VendorName,
_In_ DHCP_POL_COMPARATOR Operator,
_In_reads_bytes_(ValueLength) LPBYTE Value,
_In_ DWORD ValueLength,
_Out_ DWORD *ConditionIndex
);
DWORD DHCP_API_FUNCTION
DhcpHlprAddV4PolicyRange (
_Inout_ LPDHCP_POLICY Policy,
_In_ LPDHCP_IP_RANGE Range
);
DWORD DHCP_API_FUNCTION
DhcpHlprResetV4PolicyExpr (
_Inout_ LPDHCP_POLICY Policy
);
DWORD DHCP_API_FUNCTION
DhcpHlprModifyV4PolicyExpr (
_Inout_ LPDHCP_POLICY Policy,
_In_ DHCP_POL_LOGIC_OPER Operator
);
VOID DHCP_API_FUNCTION
DhcpHlprFreeV4Policy (
_Inout_ LPDHCP_POLICY Policy
);
VOID DHCP_API_FUNCTION
DhcpHlprFreeV4PolicyArray (
_Inout_ LPDHCP_POLICY_ARRAY PolicyArray
);
VOID DHCP_API_FUNCTION
DhcpHlprFreeV4PolicyEx (
_Inout_ LPDHCP_POLICY_EX PolicyEx
);
VOID DHCP_API_FUNCTION
DhcpHlprFreeV4PolicyExArray (
_Inout_ LPDHCP_POLICY_EX_ARRAY PolicyExArray
);
VOID DHCP_API_FUNCTION
DhcpHlprFreeV4DhcpProperty (
_Inout_ LPDHCP_PROPERTY Property
);
VOID DHCP_API_FUNCTION
DhcpHlprFreeV4DhcpPropertyArray (
_Inout_ LPDHCP_PROPERTY_ARRAY PropertyArray
);
LPDHCP_PROPERTY
DhcpHlprFindV4DhcpProperty (
_In_ LPDHCP_PROPERTY_ARRAY PropertyArray,
_In_ DHCP_PROPERTY_ID ID,
_In_ DHCP_PROPERTY_TYPE Type
);
BOOL DHCP_API_FUNCTION
DhcpHlprIsV4PolicySingleUC(
_In_ LPDHCP_POLICY Policy
);
DWORD DHCP_API_FUNCTION
DhcpV4QueryPolicyEnforcement (
_In_opt_ LPWSTR ServerIpAddress,
_In_ BOOL fGlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_Out_ BOOL *Enabled
);
DWORD DHCP_API_FUNCTION
DhcpV4SetPolicyEnforcement (
_In_opt_ LPWSTR ServerIpAddress,
_In_ BOOL fGlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_In_ BOOL Enable
);
BOOL DHCP_API_FUNCTION
DhcpHlprIsV4PolicyWellFormed (
_In_ LPDHCP_POLICY pPolicy
);
DWORD DHCP_API_FUNCTION
DhcpHlprIsV4PolicyValid (
_In_ LPDHCP_POLICY pPolicy
);
DWORD DHCP_API_FUNCTION
DhcpV4CreatePolicy (
_In_opt_ LPWSTR ServerIpAddress,
_In_ LPDHCP_POLICY pPolicy
);
DWORD DHCP_API_FUNCTION
DhcpV4GetPolicy (
_In_opt_ LPWSTR ServerIpAddress,
_In_ BOOL fGlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_In_ LPWSTR PolicyName,
_Out_ LPDHCP_POLICY *Policy
);
DWORD DHCP_API_FUNCTION
DhcpV4SetPolicy (
_In_opt_ LPWSTR ServerIpAddress,
_In_ DWORD FieldsModified,
_In_ BOOL fGlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_In_ LPWSTR PolicyName,
_In_ LPDHCP_POLICY Policy
);
DWORD DHCP_API_FUNCTION
DhcpV4DeletePolicy (
_In_opt_ LPWSTR ServerIpAddress,
_In_ BOOL fGlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_In_ LPWSTR PolicyName
);
DWORD DHCP_API_FUNCTION
DhcpV4EnumPolicies (
_In_opt_ LPWSTR ServerIpAddress,
_Inout_ LPDWORD ResumeHandle,
_In_ DWORD PreferredMaximum,
_In_ BOOL fGlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_Out_ LPDHCP_POLICY_ARRAY *EnumInfo,
_Out_ DWORD *ElementsRead,
_Out_ DWORD *ElementsTotal
);
DWORD DHCP_API_FUNCTION
DhcpV4AddPolicyRange (
_In_opt_ LPWSTR ServerIpAddress,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_In_ LPWSTR PolicyName,
_In_ LPDHCP_IP_RANGE Range
);
DWORD DHCP_API_FUNCTION
DhcpV4RemovePolicyRange (
_In_opt_ LPWSTR ServerIpAddress,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_In_ LPWSTR PolicyName,
_In_ LPDHCP_IP_RANGE Range
);
// Stateless Client Inventory API functions
DWORD DHCP_API_FUNCTION
DhcpV6SetStatelessStoreParams (
_In_opt_ LPWSTR ServerIpAddress,
_In_ BOOL fServerLevel,
_In_ DHCP_IPV6_ADDRESS SubnetAddress,
_In_ DWORD FieldModified,
_In_ LPDHCPV6_STATELESS_PARAMS Params
);
DWORD DHCP_API_FUNCTION
DhcpV6GetStatelessStoreParams (
_In_opt_ LPWSTR ServerIpAddress,
_In_ BOOL fServerLevel,
_In_ DHCP_IPV6_ADDRESS SubnetAddress,
_Out_ LPDHCPV6_STATELESS_PARAMS *Params
);
DWORD DHCP_API_FUNCTION
DhcpV6GetStatelessStatistics (
_In_opt_ LPWSTR ServerIpAddress,
_Out_ LPDHCPV6_STATELESS_STATS *StatelessStats
);
// More client APIs
DWORD DHCP_API_FUNCTION
DhcpV4CreateClientInfo(
_In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
_In_ DHCP_CONST LPDHCP_CLIENT_INFO_PB ClientInfo
);
DWORD DHCP_API_FUNCTION
DhcpV4EnumSubnetClients(
_In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_Inout_ DHCP_RESUME_HANDLE *ResumeHandle,
_In_ DWORD PreferredMaximum,
_Out_ LPDHCP_CLIENT_INFO_PB_ARRAY *ClientInfo,
_Out_ DWORD *ClientsRead,
_Out_ DWORD *ClientsTotal
);
DWORD DHCP_API_FUNCTION
DhcpV4GetClientInfo(
_In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
_In_ DHCP_CONST DHCP_SEARCH_INFO *SearchInfo,
_Out_ LPDHCP_CLIENT_INFO_PB *ClientInfo
);
DWORD DHCP_API_FUNCTION
DhcpV6CreateClientInfo(
_In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
_In_ DHCP_CONST LPDHCP_CLIENT_INFO_V6 ClientInfo
);
DWORD DHCP_API_FUNCTION
DhcpV4GetFreeIPAddress (
_In_opt_ LPWSTR ServerIpAddress,
_In_ DHCP_IP_ADDRESS ScopeId,
_In_ DHCP_IP_ADDRESS StartIP,
_In_ DHCP_IP_ADDRESS EndIP,
_In_ DWORD NumFreeAddrReq,
_Out_ LPDHCP_IP_ARRAY *IPAddrList
);
DWORD DHCP_API_FUNCTION
DhcpV6GetFreeIPAddress (
_In_opt_ LPWSTR ServerIpAddress,
_In_ DHCP_IPV6_ADDRESS ScopeId,
_In_ DHCP_IPV6_ADDRESS StartIP,
_In_ DHCP_IPV6_ADDRESS EndIP,
_In_ DWORD NumFreeAddrReq,
_Out_ LPDHCPV6_IP_ARRAY *IPAddrList
);
DWORD DHCP_API_FUNCTION
DhcpV4CreateClientInfoEx(
_In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
_In_ DHCP_CONST LPDHCP_CLIENT_INFO_EX ClientInfo
);
DWORD DHCP_API_FUNCTION
DhcpV4EnumSubnetClientsEx(
_In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_Inout_ DHCP_RESUME_HANDLE *ResumeHandle,
_In_ DWORD PreferredMaximum,
_Out_ LPDHCP_CLIENT_INFO_EX_ARRAY *ClientInfo,
_Out_ DWORD *ClientsRead,
_Out_ DWORD *ClientsTotal
);
DWORD DHCP_API_FUNCTION
DhcpV4GetClientInfoEx(
_In_opt_z_ DHCP_CONST WCHAR *ServerIpAddress,
_In_ DHCP_CONST DHCP_SEARCH_INFO *SearchInfo,
_Out_ LPDHCP_CLIENT_INFO_EX *ClientInfo
);
DWORD DHCP_API_FUNCTION
DhcpV4CreatePolicyEx (
_In_opt_ LPWSTR ServerIpAddress,
_In_ LPDHCP_POLICY_EX PolicyEx
);
DWORD DHCP_API_FUNCTION
DhcpV4GetPolicyEx (
_In_opt_ LPWSTR ServerIpAddress,
_In_ BOOL GlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_In_ LPWSTR PolicyName,
_Out_ LPDHCP_POLICY_EX *Policy
);
//For modification of properties
DWORD DHCP_API_FUNCTION
DhcpV4SetPolicyEx (
_In_opt_ LPWSTR ServerIpAddress,
_In_ DWORD FieldsModified,
_In_ BOOL GlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_In_ LPWSTR PolicyName,
_In_ LPDHCP_POLICY_EX Policy
);
DWORD DHCP_API_FUNCTION
DhcpV4EnumPoliciesEx (
_In_opt_ LPWSTR ServerIpAddress,
_Inout_ LPDWORD ResumeHandle,
_In_ DWORD PreferredMaximum,
_In_ BOOL GlobalPolicy,
_In_ DHCP_IP_ADDRESS SubnetAddress,
_Out_ LPDHCP_POLICY_EX_ARRAY *EnumInfo,
_Out_ DWORD *ElementsRead,
_Out_ DWORD *ElementsTotal
); );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // _DHCSPAPI_ #endif // _DHCSPAPI_
 End of changes. 191 change blocks. 
239 lines changed or deleted 1316 lines changed or added

This html diff was produced by rfcdiff 1.41.