/*++ 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 ); }