+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiDhcp4Start (\r
+ IN EFI_DHCP4_PROTOCOL *This,\r
+ IN EFI_EVENT CompletionEvent OPTIONAL\r
+ );\r
+\r
+/**\r
+ Extends the lease time by sending a request packet.\r
+\r
+ The RenewRebind() function is used to manually extend the lease time when the\r
+ EFI DHCPv4 Protocol driver is in the Dhcp4Bound state and the lease time has\r
+ not expired yet. This function will send a request packet to the previously\r
+ found server (or to any server when RebindRequest is TRUE) and transfer the\r
+ state into the Dhcp4Renewing state (or Dhcp4Rebinding when RebindingRequest is\r
+ TRUE). When a response is received, the state is returned to Dhcp4Bound.\r
+ If no response is received before the try count is exceeded (the RequestTryCount\r
+ field that is specified in EFI_DHCP4_CONFIG_DATA) but before the lease time that\r
+ was issued by the previous server expires, the driver will return to the Dhcp4Bound\r
+ state and the previous configuration is restored. The outgoing and incoming packets\r
+ can be captured by the EFI_DHCP4_CALLBACK function.\r
+\r
+ @param[in] This Pointer to the EFI_DHCP4_PROTOCOL instance.\r
+ @param[in] RebindRequest If TRUE, this function broadcasts the request packets and enters\r
+ the Dhcp4Rebinding state. Otherwise, it sends a unicast\r
+ request packet and enters the Dhcp4Renewing state.\r
+ @param[in] CompletionEvent If not NULL, this event is signaled when the renew/rebind phase\r
+ completes or some error occurs.\r
+ EFI_DHCP4_PROTOCOL.GetModeData() can be called to\r
+ check the completion status. If NULL,\r
+ EFI_DHCP4_PROTOCOL.RenewRebind() will busy-wait\r
+ until the DHCP process finishes.\r
+\r
+ @retval EFI_SUCCESS The EFI DHCPv4 Protocol driver is now in the\r
+ Dhcp4Renewing state or is back to the Dhcp4Bound state.\r
+ @retval EFI_NOT_STARTED The EFI DHCPv4 Protocol driver is in the Dhcp4Stopped\r
+ state. EFI_DHCP4_PROTOCOL.Configure() needs to\r
+ be called.\r
+ @retval EFI_INVALID_PARAMETER This is NULL.\r
+ @retval EFI_TIMEOUT There was no response from the server when the try count was\r
+ exceeded.\r
+ @retval EFI_ACCESS_DENIED The driver is not in the Dhcp4Bound state.\r
+ @retval EFI_DEVICE_ERROR An unexpected system or network error occurred.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiDhcp4RenewRebind (\r
+ IN EFI_DHCP4_PROTOCOL *This,\r
+ IN BOOLEAN RebindRequest,\r
+ IN EFI_EVENT CompletionEvent OPTIONAL\r
+ );\r
+\r
+/**\r
+ Releases the current address configuration.\r
+\r
+ The Release() function releases the current configured IP address by doing either\r
+ of the following:\r
+ * Sending a DHCPRELEASE packet when the EFI DHCPv4 Protocol driver is in the\r
+ Dhcp4Bound state\r
+ * Setting the previously assigned IP address that was provided with the\r
+ EFI_DHCP4_PROTOCOL.Configure() function to 0.0.0.0 when the driver is in\r
+ Dhcp4InitReboot state\r
+ After a successful call to this function, the EFI DHCPv4 Protocol driver returns\r
+ to the Dhcp4Init state and any subsequent incoming packets will be discarded silently.\r
+\r
+ @param[in] This Pointer to the EFI_DHCP4_PROTOCOL instance.\r
+\r
+ @retval EFI_SUCCESS The EFI DHCPv4 Protocol driver is now in the Dhcp4Init phase.\r
+ @retval EFI_INVALID_PARAMETER This is NULL.\r
+ @retval EFI_ACCESS_DENIED The EFI DHCPv4 Protocol driver is not Dhcp4InitReboot state.\r
+ @retval EFI_DEVICE_ERROR An unexpected system or network error occurred.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiDhcp4Release (\r
+ IN EFI_DHCP4_PROTOCOL *This\r
+ );\r
+\r
+/**\r
+ Stops the current address configuration.\r