3.3.4.49 FindAvailableDhcpServersForReservation

The FindAvailableDhcpServersForReservation operation can be used to retrieve the list of DHCP server instances where an address reservation can be created.

 <wsdl:operation name="FindAvailableDhcpServersForReservation">
   <wsdl:input wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/FindAvailableDhcpServersForReservation" message="ipam:IIpamServer_FindAvailableDhcpServersForReservation_InputMessage" />
   <wsdl:output wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/FindAvailableDhcpServersForReservationResponse" message="ipam:IIpamServer_FindAvailableDhcpServersForReservation_OutputMessage" />
 </wsdl:operation>

Upon receiving the IIpamServer_FindAvailableDhcpServersForReservation_InputMessage request message, the server performs the following processing steps. Upon successful completion of the steps specified below, the server MUST respond with the IIpamServer_FindAvailableDhcpServersForReservation_OutputMessage message. In the event of a failure, an appropriate SOAP fault MUST be sent to the client as specified in section 2.2.2.1:

  1. If FindAvailableDhcpServersForReservation.addressFamily is InterNetwork, the rest of the processing is done with the Ipv4-specific tables. FindAvailableDhcpServersForReservationResponse.FindAvailableDhcpServersForReservationResult will consist of a collection of DhcpServerV4. Otherwise IPv6-specific tables are used for further processing. FindAvailableDhcpServersForReservationResponse.FindAvailableDhcpServersForReservationResult will consist of a collection of DhcpServerV6.

  2. Initialize FindAvailableDhcpServersForReservationResponse.FindAvailableDhcpServersForReservationResult to an empty collection.

  3. Enumerate the rows in ADM_DHCPScopesTable which meet the following conditions:

    • StartAddress is lesser than or equal to FindAvailableDhcpServersForReservation.address.

    • EndAddress is greater than or equal to FindAvailableDhcpServersForReservation.address.

  4. For each row enumerated earlier:

    1. Get the DHCPServerRecordId. If the server instance corresponding to DHCPServerRecordId is not already found in FindAvailableDhcpServersForReservationResponse.FindAvailableDhcpServersForReservationResult:

      1. Call the procedure GetDHCPServerFromTable passing DHCPServerRecordId as Param_Id and FindAvailableDhcpServersForReservation.addressFamily as Param_addressFamily.

      2. Add Result_server to FindAvailableDhcpServersForReservationResponse. FindAvailableDhcpServersForReservationResult.