* This is a "stealth" update for the 3.0 release
* The issue was that we are picking the UTF16 file system name from
the dropdown, and where we use the "(Default)" suffixed version,
it now has an RLE at the beginning which we must skip.
* This prevented RTL languages from being able to format a drive as FAT32...
* Whole screen was being refreshed when calling InvalidateRect() in ResizeMoveCtrl()
* Progress bar bounding rectangle could be erased at 0.0%
* No progress was displayed when writing ISOHybrid images in DD mode
* Also fix an issue when write error would not display the error string
* File indexing is too much of an annoyance on removable drives anyway
and this should help with perf and access issues
* Alt-Q cheat mode is now changed to re-enable file indexing
* Also fix a rogue 'else' in the code
* Needed because native Windows produces obnoxious tearing on redrawing.
* Also rename global partition scheme variable back to 'pt'
* Also fix major and minor version numbers in the .rc
* If, for example, you have a truncated gz-compressed file and try to
write it to disk, bled_uncompress_with_handles() will return an error.
Previously, this was not reported back to the user.
* Closes#1040
* Required to support Debian Live 9.1 in ISO mode
* Note that this only works if the efi.img boot files do not require
additional content besides the one extracted from the ISO.
* Fix memory leaks due to not releasing the heap
* Also speed up lookups by not reopening the same process twice in a row
* Also make the usb_debug variable global so we can use uuprintf everywhere
* Enable the use of GPT on REMOVABLE drives, if the host is Windows 10 CU
* Don't display the message about REMOVABLE boot, if the target is Windows 10 CU
* Should only happen with Windows 10 Creator Update (1703)
* Closes#931
* Also silence the flow of bcdboot benign errors on WinToGo creation (unless USB Debug is enabled)
* Also ensure WaitForLogical() will not actually spends 15 seconds max before giving up
* Not having FILE_SHARE_WRITE on a disk or volume handle helps
prevent spurious accesses from the OS or other apps while we
are repartitioning/refomatting.
* It appears that 1.5TB and 2TB HDDs, accessed trough some Seagate ow WD USB ↔ SATA
controllers, can report that 0 bytes were written on WriteFile(), even though all
the data was effectively written. 1TB HDDs, accessed through the same controller,
do not report this issue. So add a workaround for that.
* Also see #787
* Such as WebConverger (webc-35.1.iso)
* Also fix non installation of Syslinux if Alt-E (dual UEFI/BIOS) is set
* Also update README and AppVeyor script
* The Windows APIs may further modify the label compared to our proposed
version (e.g. remove trailing spaces), and we need an exact label for
the Syslinux/GRUB config file update.
* This issue was reported against Springdale Linux, where the isolinux.cfg
label was patched using 'SPRINGDALE\x20' instead of 'SPRINGDALE'
* Closes#784
* Also ensure that we don't replace NULL buffers in msapi_utf8.h and add
GetVolumeInformationU()
* Downloadable content will now be indicating, in the log, whether it can be trusted with ✓ (validated) or ✗ (caution)
* Of course this validation only applies for files we know of, i.e. the downloadable content that existed at the time the DB was
created. So, if Syslinux 8.x gets released tomorrow and we put it on our server, you'll get an ✗ regardless of its integrity.
* Closes#758
* The root of the issue is that Windows IOCTL_DISK_CREATE_DISK does not properly
zero all of the MBR/GPT/PBR structure with PARTITION_STYLE_RAW (which is what
diskpart uses to clean a disk), and leaves plenty of partition artefacts behind.
* This means that, when an image with complex partitioning has been applied, such
as Chromium/ChromeOS, you may end up with a drive that can not be repartitioned
or reformatted in Windows (and this is completely independent of whether Rufus
was used to perform these operations - For instance you will get the same issue
if you use Win32DiskImager and diskpart + clean).
* The only option left for users then is to reset/repartition their drives in Linux
or some other OS, as Windows' VDS becomes incapacitated to handle the drive, as
the problem persists independently of reset/re-plug/Windows platform being used.
* To work around this, we ensure that we zero the MBR/GPT/PBR sectors BEFORE calling
IOCTL_DISK_CREATE_DISK.
* Also move zeroing of the drive before partition reset.
* Closes#759