3.2.4.30 R_DhcpGetAllOptions (Opnum 29)

The R_DhcpGetAllOptions method retrieves all default option definitions, as well as specific user class and vendor class option definitions. The caller of this function can free the memory pointed to by OptionStruct, NonVendorOptions and other Options by calling the function midl_user_free (section 3).

 DWORD R_DhcpGetAllOptions(
   [in, unique, string] DHCP_SRV_HANDLE ServerIpAddress,
   [in] DWORD Flags,
   [out] LPDHCP_ALL_OPTIONS* OptionStruct
 );

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

Flags: This field MUST be set to zero.

OptionStruct: This is a pointer of type LPDHCP_ALL_OPTIONS (section 2.2.1.2.27) that points to a location that contains all the option definitions defined for a vendor class or default class.

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.

The opnum field value for this method is 29.

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

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

  • Validate if the Flags field is not 0, then return ERROR_INVALID_PARAMETER.

  • Iterate though the server ADM element DHCPv4OptionDefList and retrieve the DHCPv4OptionDef.DHCPv4ClassedOptDefList corresponding to the default vendor class configured on the DHCPv4 Server. If more than zero entries are retrieved, allocate the memory for the number of DHCPv4ClassedOptDef entries in this retrieved list, and copy the DHCPv4ClassedOptDef entries in the allocated memory.

  • Retrieve all the DHCPv4OptDef entries corresponding to the non-default vendor class. Calculate the number of DHCPv4ClassedOptDef entries in all DHCPv4ClassedOptDefList lists, and if there are more than zero entries, allocate the memory for these DHCPv4ClassedOptDef entries.

  • Copy the retrieved DHCPv4ClassedOptDef entries in the OptionStruct parameter and return it to the caller.

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