3.1.4.46 R_DhcpSetClientInfoVQ (Opnum 45)

The R_DhcpSetClientInfoVQ method sets/modifies an existing DHCPv4 client lease record on the DHCPv4 server database.

 DWORD R_DhcpSetClientInfoVQ(
   [in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
   [in, ref] LPDHCP_CLIENT_INFO_VQ ClientInfo
 );

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

ClientInfo: A pointer of type DHCP_CLIENT_INFO_VQ (section 2.2.1.2.19) structure that contains the DHCPv4 client lease record information that needs to be modified on the DHCPv4 server database. The caller MUST pass the ClientIPAddress and ClientHardwareAddress members when modifying a DHCPv4 client lease record stored in the DHCPv4 server database. The ClientHardwareAddress member represents a DHCPv4 client-identifier (section 2.2.1.2.5.1). The members ClientName, ClientComment, ClientLeaseExpires, and OwnerHost are modified in the DHCPv4 client lease record identified by the ClientIPAddress member.

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 or the client entry is not present in the database.

The opnum field value for this method is 45.

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.

  • Validate if DHCPv4 client's hardware address data and its length are non-NULL. If they are NULL, return the error ERROR_INVALID_PARAMETER.

  • Iterate through the server ADM element DHCPv4ScopesList, and retrieve the DHCPv4Scope ADM element entry whose DHCPv4ClientsList ADM element contains the DHCPv4Client ADM element entry corresponding to the ClientIpAddress member of the ClientInfo parameter. In case of error, return ERROR_INVALID_PARAMETER.

  • Create the DHCPv4 client unique ID (section 2.2.1.2.5.2) from the ScopeInfo.SubnetAddress ADM element of the specified DHCPv4Scope ADM element, and the DHCPv4 client-identifier that is the ClientHardwareAddress member, as specified in the ClientInfo parameter.

  • Retrieve the DHCPv4Client ADM element entry corresponding to the ClientIPAddress member of the ClientInfo parameter from the DHCPv4Scope.DHCPv4ClientsList ADM element. Set, or modify, the DHCPv4Client ADM element entry with the information in members QuarantineStatus, ProbationEnds, and QuarantineCapable stored in the ClientInfo parameter.<41> Set the DHCPv4Client.ClientHardWareAddress ADM element with the DHCPv4 client unique ID created in the previous step. Set the DHCPv4Client ADM element entry with the IPAddress member inside the Ownerhost member of the ClientInfo parameter. Other members of OwnerHost, namely NetBIOSName and HostName, are ignored.

  • Set the DHCPv4Client.AddressState ADM element to ADDRESS_STATE_ACTIVE.

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