/* If the position upon start is 0, then the Ascii Boolean will be set. This should be maintained and not changed for all operations with the same file. */
CHAR16* EFIAPI FileHandleReturnLine(IN EFI_FILE_HANDLE Handle, IN OUT BOOLEAN *Ascii)
/* If the position upon start is 0, then the Ascii Boolean will be set. This should be maintained and not changed for all operations with the same file. */
CHAR16* EFIAPI FileHandleReturnLine(IN EFI_FILE_HANDLE Handle, IN OUT BOOLEAN *Ascii)
{
  CHAR16      *RetVal;
  UINTN       Size;
  EFI_STATUS  Status;
  Size   = 0;
  RetVal = NULL;
  Status = FileHandleReadLine (Handle, RetVal, &Size, FALSE, Ascii);
  if (Status == EFI_BUFFER_TOO_SMALL) {
    RetVal = AllocateZeroPool (Size);
    Status = FileHandleReadLine (Handle, RetVal, &Size, FALSE, Ascii);
  }
  ASSERT_EFI_ERROR (Status);
  if (EFI_ERROR (Status) && (RetVal != NULL)) {
    FreePool (RetVal);
    RetVal = NULL;
  }
  return (RetVal);
}