/* It will first initialize some of the internal states then build and send a RRQ request packet, at last, it will start receive for the downloading. */
EFI_STATUS Mtftp4RrqStart(IN MTFTP4_PROTOCOL *Instance, IN UINT16 Operation)
/* It will first initialize some of the internal states then build and send a RRQ request packet, at last, it will start receive for the downloading. */
EFI_STATUS Mtftp4RrqStart(IN MTFTP4_PROTOCOL *Instance, IN UINT16 Operation)
{
  EFI_STATUS  Status;
  Status = Mtftp4InitBlockRange (&Instance->Blocks, 1, 0xffff);
  if (EFI_ERROR (Status)) {
    return Status;
  }
  Status = Mtftp4SendRequest (Instance);
  if (EFI_ERROR (Status)) {
    return Status;
  }
  return UdpIoRecvDatagram (Instance->UnicastPort, Mtftp4RrqInput, Instance, 0);
}