3.2.4.71 R_DhcpSetServerBindingInfoV6 (Opnum 70)

The R_DhcpSetServerBindingInfoV6 method sets/modifies the IPv6 interface bindings for the DHCPv6 server.

 DWORD R_DhcpSetServerBindingInfoV6(
   [in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
   [in] ULONG Flags,
   [in, ref] LPDHCPV6_BIND_ELEMENT_ARRAY BindElementsInfo
 );

ServerIpAddress: The IP address/host name of the DHCP server. This parameter is unused.

Flags: This flag is not used, and it MUST be set to 0.

BindElementsInfo: This is a pointer of type DHCPV6_BIND_ELEMENT_ARRAY (section 2.2.1.2.83) that points to the location that contains the information about the IPv6 interface binding.

Return Values: A 32-bit unsigned integer value that indicates return status. A return value ERROR_SUCCESS (0x00000000) indicates that the operation was completed successfully, else it contains a Win32 error code, as specified in [MS-ERREF]. This error code value can correspond to a DHCP-specific failure, which takes a value between 20000 and 20099, or any generic failure.

Return value/code

Description

0x00000000

ERROR_SUCCESS

The call was successful.

0x00004E52

ERROR_DHCP_NETWORK_CHANGED

The network has changed. Retry this operation after checking for the network changes. Network changes can be caused by interfaces that are new or no longer valid or by IPv6 addresses that are new or no longer valid.

0x00004E53

ERROR_DHCP_CANNOT_MODIFY_BINDING

The bindings to internal IPv6 addresses cannot be modified.

The opnum field value for this method is 70.

When processing this call, the DHCP server MUST do the following:

  • Validate if this method is authorized for read/write access per section 3.5.5. If not, return the error ERROR_ACCESS_DENIED.

  • If Flags is not 0 or BindElementsInfo is NULL, or there are no entries in the server ADM element DHCPv6ServerBindingInfoList, return ERROR_INVALID_PARAMETER.

  • If the IPv6 interface binding specified in BindElementsInfo has the Flags field in the Elements set to DHCP_ENDPOINT_FLAG_CANT_MODIFY and the fBoundToDHCPServer field is set to FALSE, return ERROR_DHCP_CANNOT_MODIFY_BINDINGS.

  • If the IPv6 interface binding specified in BindElementsInfo has the Flags field in the Elements set to DHCP_ENDPOINT_FLAG_CANT_MODIFY and the fBoundToDHCPServer field is set to TRUE, skip all further checks on that entry and do not attempt to modify it. If all entries are skipped, return ERROR_SUCCESS.

  • Retrieve the DHCPv6ServerBindingInfo object corresponding to the interface id specified in BindElementInfo from DHCPv6ServerBindingInfoList. If not found, return ERROR_DHCP_NETWORK_CHANGED.

  • Modify the matching DHCPv6ServerBindingInfo object with the value of fBoundToDHCPServer specified in BindElementsInfo.

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol [MS-RPCE].