721 lines
26 KiB
C
721 lines
26 KiB
C
//================================================================================
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Author: RameshV
|
|
// Description: This is the structure of the server information passed to
|
|
// user via dhcpds.dll.
|
|
//================================================================================
|
|
|
|
#ifndef _ST_SRVR_H_
|
|
#define _ST_SRVR_H_
|
|
|
|
//BeginExport(typedef)
|
|
typedef struct _DHCPDS_SERVER {
|
|
DWORD Version; // version of this structure -- currently zero
|
|
LPWSTR ServerName; // [DNS?] unique name for server
|
|
DWORD ServerAddress; // ip address of server
|
|
DWORD Flags; // additional info -- state
|
|
DWORD State; // not used ...
|
|
LPWSTR DsLocation; // ADsPath to server object
|
|
DWORD DsLocType; // path relative? absolute? diff srvr?
|
|
} DHCPDS_SERVER, *LPDHCPDS_SERVER, *PDHCPDS_SERVER;
|
|
|
|
typedef struct _DHCPDS_SERVERS {
|
|
DWORD Flags; // not used currently.
|
|
DWORD NumElements; // # of elements in array
|
|
LPDHCPDS_SERVER Servers; // array of server info
|
|
} DHCPDS_SERVERS, *LPDHCPDS_SERVERS, *PDHCPDS_SERVERS;
|
|
//EndExport(typedef)
|
|
|
|
#endif _ST_SRVR_H_
|
|
|
|
//================================================================================
|
|
// end of file
|
|
//================================================================================
|
|
//========================================================================
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Author: RameshV
|
|
// Description: This file has been generated. Pl look at the .c file
|
|
//========================================================================
|
|
|
|
#ifndef CONVERT_NAMES
|
|
#define DhcpCreateSubnet DhcpCreateSubnetDS
|
|
#define DhcpSetSubnetInfo DhcpSetSubnetInfoDS
|
|
#define DhcpGetSubnetInfo DhcpGetSubnetInfoDS
|
|
#define DhcpEnumSubnets DhcpEnumSubnetsDS
|
|
#define DhcpDeleteSubnet DhcpDeleteSubnetDS
|
|
#define DhcpCreateOption DhcpCreateOptionDS
|
|
#define DhcpSetOptionInfo DhcpSetOptionInfoDS
|
|
#define DhcpGetOptionInfo DhcpGetOptionInfoDS
|
|
#define DhcpRemoveOption DhcpRemoveOptionDS
|
|
#define DhcpSetOptionValue DhcpSetOptionValueDS
|
|
#define DhcpGetOptionValue DhcpGetOptionValueDS
|
|
#define DhcpEnumOptionValues DhcpEnumOptionValuesDS
|
|
#define DhcpRemoveOptionValue DhcpRemoveOptionValueDS
|
|
#define DhcpEnumOptions DhcpEnumOptionsDS
|
|
#define DhcpSetOptionValues DhcpSetOptionValuesDS
|
|
#define DhcpAddSubnetElement DhcpAddSubnetElementDS
|
|
#define DhcpEnumSubnetElements DhcpEnumSubnetElementsDS
|
|
#define DhcpRemoveSubnetElement DhcpRemoveSubnetElementDS
|
|
#define DhcpAddSubnetElementV4 DhcpAddSubnetElementV4DS
|
|
#define DhcpEnumSubnetElementsV4 DhcpEnumSubnetElementsV4DS
|
|
#define DhcpRemoveSubnetElementV4 DhcpRemoveSubnetElementV4DS
|
|
#define DhcpSetSuperScopeV4 DhcpSetSuperScopeV4DS
|
|
#define DhcpGetSuperScopeInfoV4 DhcpGetSuperScopeInfoV4DS
|
|
#define DhcpDeleteSuperScopeV4 DhcpDeleteSuperScopeV4DS
|
|
|
|
#define DhcpSetClientInfo DhcpSetClientInfoDS
|
|
#define DhcpGetClientInfo DhcpGetClientInfoDS
|
|
#define DhcpSetClientInfoV4 DhcpSetClientInfoV4DS
|
|
#define DhcpGetClientInfoV4 DhcpGetClientInfoV4DS
|
|
|
|
#define DhcpCreateOptionV5 DhcpCreateOptionV5DS
|
|
#define DhcpSetOptionInfoV5 DhcpSetOptionInfoV5DS
|
|
#define DhcpGetOptionInfoV5 DhcpGetOptionInfoV5DS
|
|
#define DhcpEnumOptionsV5 DhcpEnumOptionsV5DS
|
|
#define DhcpRemoveOptionV5 DhcpRemoveOptionV5DS
|
|
#define DhcpSetOptionValueV5 DhcpSetOptionValueV5DS
|
|
#define DhcpSetOptionValuesV5 DhcpSetOptionValuesV5DS
|
|
#define DhcpGetOptionValueV5 DhcpGetOptionValueV5DS
|
|
#define DhcpEnumOptionValuesV5 DhcpEnumOptionValuesV5DS
|
|
#define DhcpRemoveOptionValueV5 DhcpRemoveOptionValueV5DS
|
|
#define DhcpCreateClass DhcpCreateClassDS
|
|
#define DhcpModifyClass DhcpModifyClassDS
|
|
#define DhcpDeleteClass DhcpDeleteClassDS
|
|
#define DhcpGetClassInfo DhcpGetClassInfoDS
|
|
#define DhcpEnumClasses DhcpEnumClassesDS
|
|
#define DhcpGetAllOptions DhcpGetAllOptionsDS
|
|
#define DhcpGetAllOptionValues DhcpGetAllOptionValuesDS
|
|
|
|
#endif CONVERT_NAMES
|
|
|
|
|
|
//DOC Create an option in DS. Checkout DhcpDsCreateOptionDef for more info...
|
|
DWORD
|
|
DhcpCreateOptionV5( // create a new option (must not exist)
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN DHCP_OPTION_ID OptionId, // must be between 0-255 or 256-511 (for vendor stuff)
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN LPDHCP_OPTION OptionInfo
|
|
) ;
|
|
|
|
|
|
//DOC Modify existing option's fields in the DS. See DhcpDsModifyOptionDef for more
|
|
//DOC details
|
|
DWORD
|
|
DhcpSetOptionInfoV5( // Modify existing option's fields
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN DHCP_OPTION_ID OptionId,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN LPDHCP_OPTION OptionInfo
|
|
) ;
|
|
|
|
|
|
//DOC not yet supported at this level... (this is supported in a
|
|
//DOC DhcpDs function, no wrapper yet)
|
|
DWORD
|
|
DhcpGetOptionInfoV5( // retrieve option info from off ds structures
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN DHCP_OPTION_ID OptionId,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
OUT LPDHCP_OPTION *OptionInfo // allocate memory
|
|
) ;
|
|
|
|
|
|
//DOC See DhcpDsEnumOptionDefs for more info on this function.. but essentially, all this
|
|
//DOC does is to read thru the options and create a list of options..
|
|
DWORD
|
|
DhcpEnumOptionsV5( // create list of all options in ds
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN OUT DHCP_RESUME_HANDLE *ResumeHandle,
|
|
IN DWORD PreferredMaximum,
|
|
OUT LPDHCP_OPTION_ARRAY *Options,
|
|
OUT DWORD *OptionsRead,
|
|
OUT DWORD *OptionsTotal
|
|
) ;
|
|
|
|
|
|
//DOC Delete an option from off the DS. See DhcpDsDeleteOptionDef for
|
|
//DOC more details.
|
|
DWORD
|
|
DhcpRemoveOptionV5( // remove an option from off DS
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN DHCP_OPTION_ID OptionId,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName
|
|
) ;
|
|
|
|
|
|
//DOC Set the specified option value in the DS. For more information,
|
|
//DOC see DhcpDsSetOptionValue.
|
|
DWORD
|
|
DhcpSetOptionValueV5( // set the option value in ds
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN DHCP_OPTION_ID OptionId,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
IN LPDHCP_OPTION_DATA OptionValue
|
|
) ;
|
|
|
|
|
|
//DOC This function just calls the SetOptionValue function N times.. this is not
|
|
//DOC atomic (), but even worse, it is highly inefficient, as it creates the
|
|
//DOC required objects over and over again!!!!!
|
|
//DOC This has to be fixed..
|
|
DWORD
|
|
DhcpSetOptionValuesV5( // set a series of option values
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
IN LPDHCP_OPTION_VALUE_ARRAY OptionValues
|
|
) ;
|
|
|
|
|
|
//DOC This function retrives the value of an option from the DS. For more info,
|
|
//DOC pl check DhcpDsGetOptionValue.
|
|
DWORD
|
|
DhcpGetOptionValueV5(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN DHCP_OPTION_ID OptionId,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
OUT LPDHCP_OPTION_VALUE *OptionValue
|
|
) ;
|
|
|
|
|
|
//DOC Get the list of option values defined in DS. For more information,
|
|
//DOC check DhcpDsEnumOptionValues.
|
|
DWORD
|
|
DhcpEnumOptionValuesV5( // get list of options defined in DS
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
IN DHCP_RESUME_HANDLE *ResumeHandle,
|
|
IN DWORD PreferredMaximum,
|
|
OUT LPDHCP_OPTION_VALUE_ARRAY *OptionValues,
|
|
OUT DWORD *OptionsRead,
|
|
OUT DWORD *OptionsTotal
|
|
) ;
|
|
|
|
|
|
//DOC Remove the option value from off the DS. See DhcpDsRemoveOptionValue
|
|
//DOC for further information.
|
|
DWORD
|
|
DhcpRemoveOptionValueV5( // remove option value from DS
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN DHCP_OPTION_ID OptionId,
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo
|
|
) ;
|
|
|
|
|
|
//DOC Create a class in the DS. Please see DhcpDsCreateClass for more
|
|
//DOC details on this function.
|
|
DWORD
|
|
DhcpCreateClass( // create a class in DS
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD ReservedMustBeZero,
|
|
IN LPDHCP_CLASS_INFO ClassInfo
|
|
) ;
|
|
|
|
|
|
//DOC Modify an existing class in DS. Please see DhcpDsModifyClass for more
|
|
//DOC details on this function (this is just a wrapper).
|
|
DWORD
|
|
DhcpModifyClass( // modify existing class
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD ReservedMustBeZero,
|
|
IN LPDHCP_CLASS_INFO ClassInfo
|
|
) ;
|
|
|
|
|
|
//DOC Delete an existing class in DS. Please see DhcpDsModifyClass for more
|
|
//DOC details on this function (this is just a wrapper).
|
|
DWORD
|
|
DhcpDeleteClass( // delete a class from off DS
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD ReservedMustBeZero,
|
|
IN LPWSTR ClassName
|
|
) ;
|
|
|
|
|
|
//DOC DhcpGetClassInfo completes the information provided for a class in struct
|
|
//DOC PartialClassInfo. For more details pl see DhcpDsGetClassInfo.
|
|
DWORD
|
|
DhcpGetClassInfo( // fetch complete info frm DS
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD ReservedMustBeZero,
|
|
IN LPDHCP_CLASS_INFO PartialClassInfo,
|
|
OUT LPDHCP_CLASS_INFO *FilledClassInfo
|
|
) ;
|
|
|
|
|
|
//DOC This is implemented in the DHCPDS module, but not exported here yet..
|
|
DWORD
|
|
DhcpEnumClasses(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD ReservedMustBeZero,
|
|
IN OUT DHCP_RESUME_HANDLE *ResumeHandle,
|
|
IN DWORD PreferredMaximum,
|
|
OUT LPDHCP_CLASS_INFO_ARRAY *ClassInfoArray,
|
|
OUT DWORD *nRead,
|
|
OUT DWORD *nTotal
|
|
) ;
|
|
|
|
|
|
//DOC This is implemented in the DHCPDS module, but not exported here yet..
|
|
DWORD
|
|
DhcpGetAllOptionValues(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
OUT LPDHCP_ALL_OPTION_VALUES *Values
|
|
) ;
|
|
|
|
|
|
//DOC This is implememented in the DHCPDS module, but not exported here yet..
|
|
DWORD
|
|
DhcpGetAllOptions(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DWORD Flags,
|
|
OUT LPDHCP_ALL_OPTIONS *Options
|
|
) ;
|
|
|
|
|
|
DWORD // ERROR_DHCP_OPTION_EXITS if option is already there
|
|
DhcpCreateOption( // create a new option (must not exist)
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_OPTION_ID OptionId, // must be between 0-255 or 256-511 (for vendor stuff)
|
|
IN LPDHCP_OPTION OptionInfo
|
|
) ;
|
|
|
|
|
|
DWORD // ERROR_DHCP_OPTION_NOT_PRESENT if option does not exist
|
|
DhcpSetOptionInfo( // Modify existing option's fields
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_OPTION_ID OptionID,
|
|
IN LPDHCP_OPTION OptionInfo
|
|
) ;
|
|
|
|
|
|
DWORD // ERROR_DHCP_OPTION_NOT_PRESENT
|
|
DhcpGetOptionInfo( // retrieve the information from off the mem structures
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_OPTION_ID OptionID,
|
|
OUT LPDHCP_OPTION *OptionInfo // allocate memory using MIDL functions
|
|
) ;
|
|
|
|
|
|
DWORD // ERROR_DHCP_OPTION_NOT_PRESENT if option does not exist
|
|
DhcpEnumOptions( // enumerate the options defined
|
|
IN LPWSTR ServerIpAddress,
|
|
IN OUT DHCP_RESUME_HANDLE *ResumeHandle, // must be zero intially and then never touched
|
|
IN DWORD PreferredMaximum, // max # of bytes of info to pass along
|
|
OUT LPDHCP_OPTION_ARRAY *Options, // fill this option array
|
|
OUT DWORD *OptionsRead, // fill in the # of options read
|
|
OUT DWORD *OptionsTotal // fill in the total # here
|
|
) ;
|
|
|
|
|
|
DWORD // ERROR_DHCP_OPTION_NOT_PRESENT if option not existent
|
|
DhcpRemoveOption( // remove the option definition from the registry
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_OPTION_ID OptionID
|
|
) ;
|
|
|
|
|
|
DWORD // OPTION_NOT_PRESENT if option is not defined
|
|
DhcpSetOptionValue( // replace or add a new option value
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_OPTION_ID OptionID,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
IN LPDHCP_OPTION_DATA OptionValue
|
|
) ;
|
|
|
|
|
|
DWORD // not atomic!!!!
|
|
DhcpSetOptionValues( // set a bunch of options
|
|
IN LPWSTR ServerIpAddress,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
IN LPDHCP_OPTION_VALUE_ARRAY OptionValues
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpGetOptionValue( // fetch the required option at required level
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_OPTION_ID OptionID,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
OUT LPDHCP_OPTION_VALUE *OptionValue // allocate memory using MIDL_user_allocate
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpEnumOptionValues(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
|
|
IN DHCP_RESUME_HANDLE *ResumeHandle,
|
|
IN DWORD PreferredMaximum,
|
|
OUT LPDHCP_OPTION_VALUE_ARRAY *OptionValues,
|
|
OUT DWORD *OptionsRead,
|
|
OUT DWORD *OptionsTotal
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRemoveOptionValue(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_OPTION_ID OptionID,
|
|
IN LPDHCP_OPTION_SCOPE_INFO ScopeInfo
|
|
) ;
|
|
|
|
|
|
//DOC This function sets the superscope of a subnet, thereby creating the superscope
|
|
//DOC if required. Please see DhcpDsSetSScope for more details.
|
|
DWORD
|
|
DhcpSetSuperScopeV4( // set superscope in DS.
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN LPWSTR SuperScopeName,
|
|
IN BOOL ChangeExisting
|
|
) ;
|
|
|
|
|
|
//DOC This function removes the superscope, and resets any subnet with this
|
|
//DOC superscope.. so that all those subnets end up with no superscopes..
|
|
//DOC Please see DhcpDsDelSScope for more details.
|
|
DWORD
|
|
DhcpDeleteSuperScopeV4( // delete subnet sscope from DS
|
|
IN LPWSTR ServerIpAddress,
|
|
IN LPWSTR SuperScopeName
|
|
) ;
|
|
|
|
|
|
//DOC This function retrievs the supercsope info for each subnet that is
|
|
//DOC present for the given server. Please see DhcpDsGetSScopeInfo for more
|
|
//DOC details on this..
|
|
DWORD
|
|
DhcpGetSuperScopeInfoV4( // get sscope tbl from DS
|
|
IN LPWSTR ServerIpAddress,
|
|
OUT LPDHCP_SUPER_SCOPE_TABLE *SuperScopeTable
|
|
) ;
|
|
|
|
|
|
//DOC This function creates a subnet in the DS with the specified params.
|
|
//DOC Please see DhcpDsServerAddSubnet for more details on this function.
|
|
DWORD
|
|
DhcpCreateSubnet( // add subnet 2 DS for this srvr
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN LPDHCP_SUBNET_INFO SubnetInfo
|
|
) ;
|
|
|
|
|
|
//DOC Modify existing subnet with new parameters... some restrictions apply.
|
|
//DOC Please see DhcpDsServerModifySubnet for further details.
|
|
DWORD
|
|
DhcpSetSubnetInfo( // modify existing subnet params
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN LPDHCP_SUBNET_INFO SubnetInfo
|
|
) ;
|
|
|
|
|
|
//DOC Implemented in the DHCPDS module but not exported thru here
|
|
DWORD
|
|
DhcpGetSubnetInfo(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
OUT LPDHCP_SUBNET_INFO *SubnetInfo
|
|
) ;
|
|
|
|
|
|
//DOC Implemented in the DHCPDS module but not exported thru here
|
|
DWORD
|
|
DhcpEnumSubnets(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_RESUME_HANDLE *ResumeHandle,
|
|
IN DWORD PreferredMaximum,
|
|
IN LPDHCP_IP_ARRAY *EnumInfo,
|
|
IN DWORD *ElementsRead,
|
|
IN DWORD *ElementsTotal
|
|
) ;
|
|
|
|
|
|
//DOC This function deletes the subnet from the DS. For further information, pl
|
|
//DOC see DhcpDsServerDelSubnet..
|
|
DWORD
|
|
DhcpDeleteSubnet( // Del subnet from off DS
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN DHCP_FORCE_FLAG ForceFlag
|
|
) ;
|
|
|
|
|
|
//DOC This function sets some particular information for RESERVATIONS only
|
|
//DOC all other stuff it just ignores and returns success..
|
|
DWORD
|
|
DhcpSetClientInfo(
|
|
IN LPWSTR ServerIpAddresess,
|
|
IN LPDHCP_CLIENT_INFO ClientInfo
|
|
) ;
|
|
|
|
|
|
//DOC This function retrieves some particular client's information
|
|
//DOC for RESERVATIONS only.. For all other stuff it returns CALL_NOT_IMPLEMENTED
|
|
DWORD
|
|
DhcpGetClientInfo(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN LPDHCP_SEARCH_INFO SearchInfo,
|
|
OUT LPDHCP_CLIENT_INFO *ClientInfo
|
|
) ;
|
|
|
|
|
|
//DOC This function sets the client informatoin for RESERVATIONS only in DS
|
|
//DOC For all toher clients it returns ERROR_SUCCESS w/o doing anything
|
|
DWORD
|
|
DhcpSetClientInfoV4(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN LPDHCP_CLIENT_INFO_V4 ClientInfo
|
|
) ;
|
|
|
|
|
|
//DOC Thsi function sets the client information for RESERVATIONS only
|
|
//DOC For all others it returns ERROR_CALL_NOT_IMPLEMENTED
|
|
DWORD
|
|
DhcpGetClientInfoV4(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN LPDHCP_SEARCH_INFO SearchInfo,
|
|
OUT LPDHCP_CLIENT_INFO_V4 *ClientInfo
|
|
) ;
|
|
|
|
|
|
//DOC This function adds a subnet element to a subnet in the DS.
|
|
DWORD
|
|
DhcpAddSubnetElement(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN LPDHCP_SUBNET_ELEMENT_DATA AddElementInfo
|
|
) ;
|
|
|
|
|
|
//DOC This function adds a subnet element to a subnet in the DS.
|
|
DWORD
|
|
DhcpAddSubnetElementV4(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN LPDHCP_SUBNET_ELEMENT_DATA_V4 AddElementInfo
|
|
) ;
|
|
|
|
|
|
//DOC This is not yet implemented here..
|
|
DWORD
|
|
DhcpEnumSubnetElementsV4(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN DHCP_SUBNET_ELEMENT_TYPE EnumElementType,
|
|
IN OUT DHCP_RESUME_HANDLE *ResumeHandle,
|
|
IN DWORD PreferredMaximum,
|
|
OUT LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V4 *EnumElementInfo,
|
|
OUT DWORD *ElementsRead,
|
|
OUT DWORD *ElementsTotal
|
|
) ;
|
|
|
|
|
|
//DOC This is not yet implemented here..
|
|
DWORD
|
|
DhcpEnumSubnetElements(
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN DHCP_SUBNET_ELEMENT_TYPE EnumElementType,
|
|
IN OUT DHCP_RESUME_HANDLE *ResumeHandle,
|
|
IN DWORD PreferredMaximum,
|
|
OUT LPDHCP_SUBNET_ELEMENT_INFO_ARRAY *EnumElementInfo,
|
|
OUT DWORD *ElementsRead,
|
|
OUT DWORD *ElementsTotal
|
|
) ;
|
|
|
|
|
|
//DOC This function removes either an exclusion, ip range or reservation
|
|
//DOC from the subnet... in the DS.
|
|
DWORD
|
|
DhcpRemoveSubnetElement( // remove subnet element
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN LPDHCP_SUBNET_ELEMENT_DATA RemoveElementInfo,
|
|
IN DHCP_FORCE_FLAG ForceFlag
|
|
) ;
|
|
|
|
|
|
//DOC This function removes either an exclusion, ip range or reservation
|
|
//DOC from the subnet... in the DS.
|
|
DWORD
|
|
DhcpRemoveSubnetElementV4( // remove subnet element
|
|
IN LPWSTR ServerIpAddress,
|
|
IN DHCP_IP_ADDRESS SubnetAddress,
|
|
IN LPDHCP_SUBNET_ELEMENT_DATA_V4 RemoveElementInfo,
|
|
IN DHCP_FORCE_FLAG ForceFlag
|
|
) ;
|
|
|
|
|
|
#ifndef CONVERT_NAMES
|
|
#undef DhcpCreateSubnet
|
|
#undef DhcpSetSubnetInfo
|
|
#undef DhcpGetSubnetInfo
|
|
#undef DhcpEnumSubnets
|
|
#undef DhcpDeleteSubnet
|
|
#undef DhcpCreateOption
|
|
#undef DhcpSetOptionInfo
|
|
#undef DhcpGetOptionInfo
|
|
#undef DhcpRemoveOption
|
|
#undef DhcpSetOptionValue
|
|
#undef DhcpGetOptionValue
|
|
#undef DhcpEnumOptionValues
|
|
#undef DhcpRemoveOptionValue
|
|
#undef DhcpEnumOptions
|
|
#undef DhcpSetOptionValues
|
|
#undef DhcpAddSubnetElementV4
|
|
#undef DhcpEnumSubnetElementsV4
|
|
#undef DhcpRemoveSubnetElementV4
|
|
#undef DhcpAddSubnetElement
|
|
#undef DhcpEnumSubnetElements
|
|
#undef DhcpRemoveSubnetElement
|
|
#undef DhcpSetSuperScopeV4
|
|
#undef DhcpGetSuperScopeInfoV4
|
|
#undef DhcpDeleteSuperScopeV4
|
|
|
|
#undef DhcpSetClientInfo
|
|
#undef DhcpGetClientInfo
|
|
#undef DhcpSetClientInfoV4
|
|
#undef DhcpGetClientInfoV4
|
|
|
|
#undef DhcpCreateOptionV5
|
|
#undef DhcpSetOptionInfoV5
|
|
#undef DhcpGetOptionInfoV5
|
|
#undef DhcpEnumOptionsV5
|
|
#undef DhcpRemoveOptionV5
|
|
#undef DhcpSetOptionValueV5
|
|
#undef DhcpSetOptionValuesV5
|
|
#undef DhcpGetOptionValueV5
|
|
#undef DhcpEnumOptionValuesV5
|
|
#undef DhcpRemoveOptionValueV5
|
|
#undef DhcpCreateClass
|
|
#undef DhcpModifyClass
|
|
#undef DhcpDeleteClass
|
|
#undef DhcpGetClassInfo
|
|
#undef DhcpEnumClasses
|
|
#undef DhcpGetAllOptions
|
|
#undef DhcpGetAllOptionValues
|
|
#endif CONVERT_NAMES
|
|
|
|
|
|
#define DHCP_SERVER_ANOTHER_ENTERPRISE 0x01
|
|
typedef DHCPDS_SERVER DHCP_SERVER_INFO;
|
|
typedef PDHCPDS_SERVER PDHCP_SERVER_INFO;
|
|
typedef LPDHCPDS_SERVER LPDHCP_SERVER_INFO;
|
|
|
|
typedef DHCPDS_SERVERS DHCP_SERVER_INFO_ARRAY;
|
|
typedef PDHCPDS_SERVERS PDHCP_SERVER_INFO_ARRAY;
|
|
typedef LPDHCPDS_SERVERS LPDHCP_SERVER_INFO_ARRAY;
|
|
|
|
|
|
//DOC DhcpEnumServersDS lists the servers found in the DS along with the
|
|
//DOC addresses and other information. The whole server is allocated as a blob,
|
|
//DOC and should be freed in one shot. No parameters are currently used, other
|
|
//DOC than Servers which will be an OUT parameter only.
|
|
DWORD
|
|
DhcpEnumServersDS(
|
|
IN DWORD Flags,
|
|
IN LPVOID IdInfo,
|
|
OUT LPDHCP_SERVER_INFO_ARRAY *Servers,
|
|
IN LPVOID CallbackFn,
|
|
IN LPVOID CallbackData
|
|
) ;
|
|
|
|
|
|
//DOC DhcpAddServerDS adds a particular server to the DS. If the server exists,
|
|
//DOC then, this returns error. If the server does not exist, then this function
|
|
//DOC adds the server in DS, and also uploads the configuration from the server
|
|
//DOC to the ds.
|
|
DWORD
|
|
DhcpAddServerDS(
|
|
IN DWORD Flags,
|
|
IN LPVOID IdInfo,
|
|
IN LPDHCP_SERVER_INFO NewServer,
|
|
IN LPVOID CallbackFn,
|
|
IN LPVOID CallbackData
|
|
) ;
|
|
|
|
|
|
//DOC DhcpDeleteServerDS deletes the servers from off the DS and recursively
|
|
//DOC deletes the server object..(i.e everything belonging to the server is deleted).
|
|
//DOC If the server does not exist, it returns an error.
|
|
DWORD
|
|
DhcpDeleteServerDS(
|
|
IN DWORD Flags,
|
|
IN LPVOID IdInfo,
|
|
IN LPDHCP_SERVER_INFO NewServer,
|
|
IN LPVOID CallbackFn,
|
|
IN LPVOID CallbackData
|
|
) ;
|
|
|
|
|
|
//DOC DhcpDsInitDS initializes everything in this module.
|
|
DWORD
|
|
DhcpDsInitDS(
|
|
DWORD Flags,
|
|
LPVOID IdInfo
|
|
) ;
|
|
|
|
|
|
//DOC DhcpDsCleanupDS uninitiailzes everything in this module.
|
|
VOID
|
|
DhcpDsCleanupDS(
|
|
VOID
|
|
) ;
|
|
|
|
|
|
//DOC This function is defined in validate.c
|
|
//DOC Only the stub is here.
|
|
DWORD
|
|
DhcpDsValidateService( // check to validate for dhcp
|
|
IN LPWSTR Domain,
|
|
IN DWORD *Addresses OPTIONAL,
|
|
IN ULONG nAddresses,
|
|
IN LPWSTR UserName,
|
|
IN LPWSTR Password,
|
|
IN DWORD AuthFlags,
|
|
OUT LPBOOL Found,
|
|
OUT LPBOOL IsStandAlone
|
|
);
|
|
|
|
//DOC DhcpDsGetLastUpdateTime is defined in upndown.c --> see there for more details.
|
|
DWORD
|
|
DhcpDsGetLastUpdateTime( // last update time for server
|
|
IN LPWSTR ServerName, // this is server of interest
|
|
IN OUT LPFILETIME Time // fill in this w./ the time
|
|
);
|
|
|
|
//========================================================================
|
|
// end of file
|
|
//========================================================================
|