Commit Graph

229 Commits

Author SHA1 Message Date
Pete Batard 6275c5b724 fix MinGW-w64 warnings 2018-09-03 13:41:29 +01:00
Pete Batard 71578459d7 [loc] fix spaces before full stops
* Also: "Asserts, it's not just for debug any more!"
2018-07-31 20:47:24 +01:00
Pete Batard 59aab9b61d [core] refactor fast-zeroing code and fix warnings
* Fox coverity and MinGW warnings
2018-07-15 12:27:21 +01:00
René van der Zee 77bf5c8a49 [core] add alternate cheat mode for fast zeroing
* Ctrl-Alt-Z can now be used to zero a drive, while skipping blocks that are detected empty
* Depending on your hardware, as well as the existing drive content, this strategy can greatly
  speed up zeroing operations, especially if the flash memory's read speed is much higher than
  its write speed.
* Closes #1174
2018-07-06 13:29:20 +01:00
Pete Batard a34cb1194e [ui] initial work for the display of a persistence option
* This doesn't mean we'll get persistence support any time soon, but any UI work
  on this needs to be carried out *MONTHS* in advance because of the translators.
2018-07-06 00:40:52 +01:00
Pete Batard 7c142fadbc [net] improve handling of invalid signatures
* Also make bPromptOnError an actual parameter to the download function calls
* Also prefer the use of assert() to custom assertion messages
2018-06-30 22:45:15 +01:00
Pete Batard 2d262df8f3 [bb] bad blocks check improvement
* Use a default block size of 128 KB (can speed up read operations)
* Reorganise patterns to suit different types of NAND cells (SLC, MLC and TLC)
* Only run fake drive test on first pass
* Also update rufus-next to 3.2
2018-06-28 16:25:13 +01:00
Mattiwatti dbc92e3adc [core] add support for Windows XP x64 and Server 2003 x64 ISOs
* Closes #1167
2018-06-25 15:51:19 +01:00
Pete Batard 5ab67c03d6 [core] improve write retry handling
* Add a proper delay before retrying a write operation and increase retry count to 4
* Add retries when clearing boot records or when zeroing a drive
* Also improve log output from USB device reset
2018-06-13 19:23:24 +01:00
Pete Batard b274388f95 [iso] fix file extraction for GRUB/Grub4DOS based ISOs
* We were switching the global boot type variable to something other than BT_IMAGE,
  which prevented ISO extraction whenever a GRUB secondary boot record was written.
* Closes #1145
2018-06-04 12:12:24 +01:00
Pete Batard dd1bf3b998 [core] fix unable to format as FAT32 for RTL languages
* 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...
2018-05-29 12:57:26 +01:00
Pete Batard cdacc6f342 [ui] fix whole screen refresh and progress bar issues
* 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
2018-05-08 20:28:23 +01:00
Pete Batard 7221dee4d1 [core] disable file indexing by default
* 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
2018-04-19 16:02:07 +01:00
Pete Batard 7fef3c6434 [ui] use our own custom bar with text
* 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
2018-04-16 17:05:23 +02:00
Pete Batard 1dbbe69a4b [ui] improve partition scheme default selection
* Also rename our variable to PartitionStyle/ps for clarity
2018-03-26 19:06:55 +01:00
Pete Batard a44518355f [ui] UI redesign
* Better guide the user through the flow of operations
* Also follow a concept design by Fahad Al-Riyami
* Closes #117
2018-03-22 23:14:21 +00:00
Pete Batard 903ac993f2 [misc] remove no longer needed XP workarounds 2017-11-13 14:30:25 +00:00
Pete Batard c5f4e5a2ee [misc] drop Clang support and move VS2017 project files to .vs 2017-11-11 15:41:04 +00:00
Will Thompson 88631806da [cmp] propagate decompression errors from bled
* 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
2017-10-13 10:48:37 +01:00
Pete Batard fe3004d17f [misc] use UTF-8 compatible _unlinkU() when deleting files 2017-08-30 11:24:47 +01:00
Pete Batard 90dc847e24 [misc] add static_strcat & static_strcpy and use static_ calls wherever possible
* Also set Rufus next to 2.17 and fix a warning
2017-08-10 19:43:52 +01:00
Pete Batard 5d371088cb [iso] add EFI boot support from 'efi.img' FAT images
* 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.
2017-08-09 16:27:11 +01:00
Pete Batard eb5087d504 [togo] fix a typo in index selection and add support for nonofficial ISOs
* Closes #991
2017-08-02 18:59:45 +01:00
Pete Batard a528bb3d83 [ui] report process(es) that are preventing access on error
* Also revert loc file changes that were introduced in f53b22a077
2017-07-11 17:50:38 +01:00
Pete Batard 390c134b7a [togo] be more verbose about the files being applied 2017-06-20 14:10:22 +01:00
Pete Batard 867177c5cd [misc] expand lock cheat mode to also apply to write sharing
* Also improve log messages
2017-05-03 14:48:24 +01:00
Pete Batard 23390bf911 [core] relax the FILE_SHARE_WRITE rules during enumeration
* Should allow enumeration of drives, that other process have open
  with RW access, back again (looking at you, Paragon!!!)
2017-05-02 00:56:07 +01:00
Pete Batard 3b4b742772 [wintogo] add an error popup if we can't select the version 2017-05-02 00:38:40 +01:00
Pete Batard 7b86943266 [ui] don't report an error on chkdsk failure 2017-05-01 16:40:14 +01:00
Pete Batard 30137de7cb [iso] improve handling of image size
* Don't use the projected size where the actual image size should be used
* Also fix an issue with the projected size computation
2017-05-01 16:22:34 +01:00
Pete Batard d1927ac1ef [core] handle search improvements
* 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
2017-04-29 17:14:16 +01:00
Pete Batard aec2736245 [togo] improve Windows To Go support for Windows 10 Creators Update
* 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
2017-04-19 11:30:24 +01:00
Pete Batard caa9b06426 [core] work around Windows 10 CU potentially selecting the UEFI:NTFS partition for formatting
* 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
2017-04-11 22:15:05 +01:00
Pete Batard 477ff95f93 [core] display device paths in GetHandle()
* Also reorder bLockDrive and bWriteAccess parameters
2017-04-08 21:58:10 +01:00
Pete Batard edcfd43ed5 [misc] fix multiple VS Code Analysis warnings 2017-03-10 19:07:48 +01:00
Pete Batard 2f81e4f177 [core] avoid the use of FILE_SHARE_WRITE
* 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.
2017-02-16 14:13:30 +00:00
Pete Batard c72aa7be0a [core] don't clean up partition data before writing a disk image
* This workaround seems to be needed for the upcoming Windows 10 rs2_release (see #883)
* Also some minor fixes
* Closes #883
2017-02-14 12:44:25 +00:00
Pete Batard 5170706695 [misc] fix coverity warnings 2017-01-04 18:07:58 +00:00
Pete Batard d7e977e1f1 [core] enable FAT32 for Windows install when dual UEFI+BIOS is enabled 2017-01-03 16:56:30 +00:00
Pete Batard d783573178 [syslinux] enable NTFS selection for Syslinux 6.x or later
* Tested with latest Arch, Debian and Ubuntu
2016-12-15 16:28:00 +00:00
Pete Batard f4ebe1b6c2 [togo] prompt user to select a version before formatting 2016-12-15 12:04:19 +00:00
Pete Batard 104b33a7ba [core] remove 'MBR for BIOS' option for pure UEFI images
* Closes #832
* Also refactor image property macros
2016-12-14 23:27:41 +00:00
Pete Batard 7d302d340f [togo] enable selection of Windows version
* Closes #847
* Also set rufus-next to 2.12
2016-12-13 14:26:27 +00:00
Pete Batard 5113be0a39 [iso] add dumping of ISOs from optical media (Alt-O) 2016-12-06 11:47:19 +00:00
Pete Batard aa4baab194 [core] add a workaround for >1TB HDDs that mistakenly report short writes
* 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
2016-09-06 18:31:30 +01:00
Pete Batard 8ca644de5a [core] fix sanitizing of exFAT labels
* Closes #818
2016-08-31 13:01:39 +01:00
Pete Batard 08566fa127 [core] add half workaround for an XP issue
* This is not a complete workaround, but it will do for
  until we drop support for XP altogether.
* Closes #810
2016-08-31 12:21:10 +01:00
Pete Batard 5d3be6ca51 [misc] add a cheat mode to disable file indexing after format
* New cheat mode is Alt-Q, and gets preserved between sessions
* Only for file systems that support it (NTFS, UDF and ReFS)
2016-08-27 18:06:06 +01:00
Pete Batard d9a928f5bc [core] fix handling of BFD drives
* A BFD (Big Floppy Disk) is a disk that isn't actually partitioned,
  but where the first data sector starts at sector 0
* Closes #814
2016-08-21 14:06:15 +02:00
Pete Batard e7578bc12d [syslinux] support ISOs that use boot.bin instead of isolinux.bin
* 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
2016-08-07 18:41:47 +02:00