/* Give up the control of the DHCP service to let other child resume. Don't change the service's DHCP state and the Client address and option list configure as required by RFC2131. */
VOID DhcpYieldControl(IN DHCP_SERVICE *DhcpSb)
/* Give up the control of the DHCP service to let other child resume. Don't change the service's DHCP state and the Client address and option list configure as required by RFC2131. */
VOID DhcpYieldControl(IN DHCP_SERVICE *DhcpSb)
{
  EFI_DHCP4_CONFIG_DATA  *Config;
  Config = &DhcpSb->ActiveConfig;
  DhcpSb->ServiceState = DHCP_UNCONFIGED;
  DhcpSb->ActiveChild  = NULL;
  if (Config->DiscoverTimeout != NULL) {
    FreePool (Config->DiscoverTimeout);
    Config->DiscoverTryCount = 0;
    Config->DiscoverTimeout  = NULL;
  }
  if (Config->RequestTimeout != NULL) {
    FreePool (Config->RequestTimeout);
    Config->RequestTryCount = 0;
    Config->RequestTimeout  = NULL;
  }
  Config->Dhcp4Callback   = NULL;
  Config->CallbackContext = NULL;
}