Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

455 lines
10 KiB

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
dhcpsrv.idl
Abstract:
Contains the DHCP Server Service API.
Also contains the RPC specific data structures for these API.
Author:
Madan Appiah (madana) 10-Sep-1993
Environment:
User Mode - Win32 - MIDL
Revision History:
Cheng Yang (t-cheny) 12-Jun-1996 superscope
Cheng Yang (t-cheny) 17-Jul-1996 vendor specific information
Notes:
Do not change this interface!!! The stub code produced by this interface
has been hand modified and checked in to fix bug #66798. If you need to
add new functions, create a v2 interface. See #66798 for details.
--*/
//
// Interface Attributes
//
[
uuid(6BFFD098-A112-3610-9833-46C3F874532D),
version(1.0),
pointer_default(unique)
]
//
// Interface Keyword
//
interface dhcpsrv
//
// Interface Body
//
{
import "imports.idl";
//
// ---------------------------------------------------------------//
//
typedef [handle] LPWSTR DHCP_SRV_HANDLE;
//
// DHCP Server APIs
//
//
// Subnet APIs
//
DWORD
R_DhcpCreateSubnet(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, ref] LPDHCP_SUBNET_INFO SubnetInfo
);
DWORD
R_DhcpSetSubnetInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, ref] LPDHCP_SUBNET_INFO SubnetInfo
);
DWORD
R_DhcpGetSubnetInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[out] LPDHCP_SUBNET_INFO *SubnetInfo
);
DWORD
R_DhcpEnumSubnets(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, out] DHCP_RESUME_HANDLE *ResumeHandle,
[in] DWORD PreferredMaximum,
[out] LPDHCP_IP_ARRAY *EnumInfo,
[out] DWORD *ElementsRead,
[out] DWORD *ElementsTotal
);
DWORD
R_DhcpAddSubnetElement(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, ref] LPDHCP_SUBNET_ELEMENT_DATA AddElementInfo
);
DWORD
R_DhcpEnumSubnetElements(
[in, unique, string] DHCP_SRV_HANDLE 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
);
DWORD
R_DhcpRemoveSubnetElement(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, ref] LPDHCP_SUBNET_ELEMENT_DATA RemoveElementInfo,
[in] DHCP_FORCE_FLAG ForceFlag
);
DWORD
R_DhcpDeleteSubnet(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in] DHCP_FORCE_FLAG ForceFlag
);
//
// Option APIs
//
DWORD
R_DhcpCreateOption(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID,
[in, ref] LPDHCP_OPTION OptionInfo
);
DWORD
R_DhcpSetOptionInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID,
[in, ref] LPDHCP_OPTION OptionInfo
);
DWORD
R_DhcpGetOptionInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID,
[out] LPDHCP_OPTION *OptionInfo
);
DWORD
R_DhcpRemoveOption(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID
);
DWORD
R_DhcpSetOptionValue(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID,
[in, ref] LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
[in, ref] LPDHCP_OPTION_DATA OptionValue
);
DWORD
R_DhcpGetOptionValue(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID,
[in, ref] LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
[out] LPDHCP_OPTION_VALUE *OptionValue
);
DWORD
R_DhcpEnumOptionValues(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
[in, out] DHCP_RESUME_HANDLE *ResumeHandle,
[in] DWORD PreferredMaximum,
[out] LPDHCP_OPTION_VALUE_ARRAY *OptionValues,
[out] DWORD *OptionsRead,
[out] DWORD *OptionsTotal
);
DWORD
R_DhcpRemoveOptionValue(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID,
[in, ref] LPDHCP_OPTION_SCOPE_INFO ScopeInfo
);
//
// Client APIs
//
DWORD
R_DhcpCreateClientInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_CLIENT_INFO ClientInfo
);
DWORD
R_DhcpSetClientInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_CLIENT_INFO ClientInfo
);
DWORD
R_DhcpGetClientInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_SEARCH_INFO SearchInfo,
[out] LPDHCP_CLIENT_INFO *ClientInfo
);
DWORD
R_DhcpDeleteClientInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_SEARCH_INFO ClientInfo
);
DWORD
R_DhcpEnumSubnetClients(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, out] DHCP_RESUME_HANDLE *ResumeHandle,
[in] DWORD PreferredMaximum,
[out] LPDHCP_CLIENT_INFO_ARRAY *ClientInfo,
[out] DWORD *ClientsRead,
[out] DWORD *ClientsTotal
);
DWORD
R_DhcpGetClientOptions(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS ClientIpAddress,
[in] DHCP_IP_MASK ClientSubnetMask,
[out] LPDHCP_OPTION_LIST *ClientOptions
);
DWORD
R_DhcpGetMibInfo(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[out] LPDHCP_MIB_INFO *MibInfo
);
DWORD
R_DhcpEnumOptions(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, out] DHCP_RESUME_HANDLE *ResumeHandle,
[in] DWORD PreferredMaximum,
[out] LPDHCP_OPTION_ARRAY *Options,
[out] DWORD *OptionsRead,
[out] DWORD *OptionsTotal
);
DWORD
R_DhcpSetOptionValues(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
[in, ref] LPDHCP_OPTION_VALUE_ARRAY OptionValues
);
DWORD
R_DhcpServerSetConfig(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DWORD FieldsToSet,
[in, ref] LPDHCP_SERVER_CONFIG_INFO ConfigInfo
);
DWORD
R_DhcpServerGetConfig(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[out] LPDHCP_SERVER_CONFIG_INFO *ConfigInfo
);
DWORD
R_DhcpScanDatabase(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in] DWORD FixFlag,
[out] LPDHCP_SCAN_LIST *ScanList
);
DWORD
R_DhcpGetVersion(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[out] LPDWORD MajorVersion,
[out] LPDWORD MinorVersion
);
#ifdef VENDOR_SPECIFIC_OPTIONS_ENABLED
DWORD
R_DhcpSetOptionValueForVendor(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID,
[in, ref] LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
[in, ref] LPWSTR VendorName,
[in, ref] LPDHCP_OPTION_DATA OptionValue
);
DWORD
R_DhcpGetOptionValueForVendor(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_OPTION_ID OptionID,
[in, ref] LPDHCP_OPTION_SCOPE_INFO ScopeInfo,
[in, ref] LPWSTR VendorName,
[out] LPDHCP_OPTION_VALUE *OptionValue
);
#endif
//
// NT4 SP1 interface
//
//
// new subnet interface
//
DWORD
R_DhcpAddSubnetElementV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, ref] LPDHCP_SUBNET_ELEMENT_DATA_V4 AddElementInfo
);
DWORD
R_DhcpEnumSubnetElementsV4(
[in, unique, string] DHCP_SRV_HANDLE 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
);
DWORD
R_DhcpRemoveSubnetElementV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, ref] LPDHCP_SUBNET_ELEMENT_DATA_V4 RemoveElementInfo,
[in] DHCP_FORCE_FLAG ForceFlag
);
//
// Client APIs
//
DWORD
R_DhcpCreateClientInfoV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_CLIENT_INFO_V4 ClientInfo
);
DWORD
R_DhcpSetClientInfoV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_CLIENT_INFO_V4 ClientInfo
);
DWORD
R_DhcpGetClientInfoV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref] LPDHCP_SEARCH_INFO SearchInfo,
[out] LPDHCP_CLIENT_INFO_V4 *ClientInfo
);
DWORD
R_DhcpEnumSubnetClientsV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, out] DHCP_RESUME_HANDLE *ResumeHandle,
[in] DWORD PreferredMaximum,
[out] LPDHCP_CLIENT_INFO_ARRAY_V4 *ClientInfo,
[out] DWORD *ClientsRead,
[out] DWORD *ClientsTotal
);
//
// Superscope support
//
DWORD
R_DhcpSetSuperScopeV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DHCP_IP_ADDRESS SubnetAddress,
[in, unique, string] WCHAR *SuperScopeName,
[in] BOOL ChangeExisting
);
DWORD
R_DhcpGetSuperScopeInfoV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[out] LPDHCP_SUPER_SCOPE_TABLE *SuperScopeTable
);
DWORD
R_DhcpDeleteSuperScopeV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in, ref, string] WCHAR *SuperScopeName
);
//
// Global configuration
//
DWORD
R_DhcpServerSetConfigV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[in] DWORD FieldsToSet,
[in, ref] LPDHCP_SERVER_CONFIG_INFO_V4 ConfigInfo
);
DWORD
R_DhcpServerGetConfigV4(
[in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
[out] LPDHCP_SERVER_CONFIG_INFO_V4 *ConfigInfo
);
}