3.2.4.58 R_DhcpCreateSubnetV6 (Opnum 57)

The R_DhcpCreateSubnetV6 method creates a new IPv6 prefix on the DHCPv6 server.

 DWORD R_DhcpCreateSubnetV6(
   [in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
   [in] DHCP_IPV6_ADDRESS SubnetAddress,
   [in, ref] LPDHCP_SUBNET_INFO_V6 SubnetInfo
 );

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

SubnetAddress: A pointer of type DHCP_IPV6_ADDRESS (section 2.2.1.2.28) that contains the IPv6 address of the subnet.

SubnetInfo: A pointer to a structure of type DHCP_SUBNET_INFO_V6 (section 2.2.1.2.56) that contains information about the IPv6 prefix to be added to the DHCPv6 server. The Prefix field is not stored in the database; any value specified for this field does not alter the behavior of this method.

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.

0x00004E2D

ERROR_DHCP_JET_ERROR

An error occurred while accessing the DHCP server database.

0x00004E7B

ERROR_DHCP_INVALID_SUBNET_PREFIX

The subnet prefix is invalid.

The opnum field value for this method is 57.

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 the SubnetInfo input parameter is NULL, return ERROR_INVALID_PARAMETER.

  • Validate that the subnet prefix specified in SubnetAddress is not a unicast address and that the scope level is not link-local; otherwise, return ERROR_DHCP_INVALID_SUBNET_PREFIX.<60>

  • If the subnet prefix specified in SubnetAddress is already configured on the DHCPv6 server, return ERROR_DUPLICATE_TAG.

  • Create a DHCPv6Scope object and initialize the DHCPv6Scope.SubnetInfoV6 object with the information contained in SubnetInfo. Initialize DHCPv6Scope.DHCPv6ExclusionRangeList, DHCPv6Scope.DHCPv6ReservationList, DHCPv6Scope.DHCPv6ClientInfoList, and DHCPv6Scope.DHCPv6ScopeOptionList objects as empty lists. Add this DHCPv6Scope object to DHCPv6ScopeList in sorted order of the SubnetAddress field of the DHCPv6Scope.SubnetInfoV6 object.

  • Return ERROR_SUCCESS.

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