/* Destroy the MTFTP6 service. The MTFTP6 service may be partly initialized, or partly destroyed. If a resource is destroyed, it is marked as such in case the destroy failed and is called again later. */
VOID Mtftp6DestroyService(IN MTFTP6_SERVICE *Service)
/* Destroy the MTFTP6 service. The MTFTP6 service may be partly initialized, or partly destroyed. If a resource is destroyed, it is marked as such in case the destroy failed and is called again later. */
VOID Mtftp6DestroyService(IN MTFTP6_SERVICE *Service)
{
  ASSERT (Service->ChildrenNum == 0);
  if (Service->DummyUdpIo != NULL) {
    UdpIoFreeIo (Service->DummyUdpIo);
  }
  if (Service->Timer != NULL) {
    gBS->CloseEvent (Service->Timer);
  }
  FreePool (Service);
}