* Check compressed DD images for boot capability
* Add DisableLGP setting
* Silence libcdio errors when scanning non ISO images
* Ensure UI displays "No image selected" when relevant
* Also update Bled to latest
* Fix disappearance of "Start" button when selecting an ISO with
no target (reported by Sopor)
* Add commented sample ini file
* Add AC_PROG_AR macro in configure.ac
* Update ChangeLog for BETA
* Disable Windows To Go support for Windows 7 and earlier
* Fix placement of the advanced button on high DPI displays
* Reposition the log window for Windows 10
* Use a slightly larger and better scaling font for the info field,
and also fix the vertical text alignment
* This will randomly produce a message for users of a translation that
hasn't been updated in a while requesting help and pointing them to:
http://rufus.akeo.ie/translate
* Closes#435
* Also fix a WDK compilation issue with strtoll
* MinGW's gcc 4.9.2 seems to implement a broken "%lld" format 64 bit integer is
followed by more variables and the app executes on XP => use PRI macros
* Also fix partition ID being ignored when using Rufus MBR
* Also fix some global vars shadowing and add other improvements
* And work around Microsoft's moronic decision to PREVENT regular apps
from being able to determine the ACTUAL Windows version (Without the
extra manifest section, Windows 10 Preview 2 is detected as Windows 8.0)
* Application will start in portable mode if its name contains a 'p'
eg. "rufus_portable.exe" or "prufus.exe"
* Closes#264
* Also fix a couple smaller issues
* Add Windows To Go tooltips
* Set UEFI:TOGO partition type to EFI System Partition
* Improve apply-image progress report
* Fix MBR analysis for 4k disks
* Do not select Rufus MBR for Windows To Go
* Ignore partitions we don't care about
* Fix issues with AltMountVolume()
* Try to support 4k drives when setting up MS EFI partition
* Zero the start of the MSR partition to prevent leftover detection
* Fix unwanted use of MBR hidden sectors and redundant CloseHandle()
* Fix addon of BIOS compatibility extra partition
* Print apply image progress to info box
* Add apply support to WIM image handling
* Requires Windows 8 or later (Windows 7+ for WIM API support but Windows 8+ for ISO mount)
* Also fix an issue for Windows 7 x64 EFI mode
* Add a cheat mode for VMWare disk detection
* Add a cheat mode to delete the rufus_files directory
* Don't attempt a grub2 download in case we couldn't read the version
* Don't use a shared message buffer between info and status and also
use a more logical handling of low pri/high pri and timeout
* Also fix unwanted selection of info text on restore from minimize
* Also fix the localization generation and add more messages
* This allows no-sweat UEFI support of Windows installation ISOs
that contain a >4GB file for instance
* This is done through UEFI:TOGO (https://github.com/pbatard/uefi-togo)
and the efifs NTFS driver (http://efi.akeo.ie)
* Closes#414
* This will also be part of our implementation of #126
* And reverted grub2 to the one from b3947fc026 (reverts commit 8b47e95eb5)
since FreeNAS doesn't work with the older one.
Sorry "Super Grub2 Disk" and other older GRUB2 based tools, but you'll need to
update the Grub version you use if you want to be compatible with Rufus.
* Closes#244
* Since we want to display the full version, "Grub4DOS 0.4.5" needs to fit in advanced mode.
Plus, the extra width should help when we drop the separate progress dialog.
* Also ensure that the "Select ISO" button is the one that gets defaulted to when no USB is present.
* Greatly improves the display of non western character sets, such as CJK.
* Note: Since I'm no longer willing to go the extra mile for XP, the way we
handle the non availability of the Segoe font there is by doing the lazy
thing and duplicating all our UI resources, in a similar way as what we do
for RTL, and setting them with the old "MS Shell Dlg".
* Also update some Syslinux V5 refs to Syslinux V6.
* Closes#308
* Having AutoMount disabled when a Fixed drive is being used can
result in a failure during formatting (issue #386).
* Also set explicit FILE_ATTRIBUTE_NORMAL flag an normalize CreateFile usage
* Closes#386
* Linux has a MAJOR quirk in that labels such as "Contains Space"
get converted to "/dev/disk/by-label/Contains\x20Space".
* While Rufus already had smart label Syslinux handling (by replacing
the ones found in isolinux.cfg to their more limited FAT32 version)
there was absolutely NO WAY of guessing this quirk until ISOs
such as Red Hat 7 or CentOS 7 started to use spaces in their ISO
labels and people reported breakage!
* This commit also fixes an issue where psz_fullpath was modified when
it shouldn't, which broke Debian 7.7.0, and most likely any ISO
containing a subdirectory in the directory where a syslinux/isolinux
config file is located.
* Closes#396
* Closes#394
* Closes#388
* Closes#380
* Fix label control being reduced in size when a translation modifies it
* Minute adjustments to make the application look better on Windows 8
* Closes#356
* Fix missing DD-Image option when no drive is present
* Prevent formatting of a drive when using an image residing on same drive
* Fix ignored bootable checkbox when using a DD-Image
* Fix wrong title for error messages (due to too many concurrent loc messages)
* Add logic to mount/remount a DD image if it contains a partition we can handle
* Clear GPT structures before copying DD image in case it doesn't overwrites them
* Add a call to refresh the drive layout after copying a DD image
* Move the unlocking of logical drive further down. This may help with the
infamous "device in use by another process" error.
* With that obscene an amount of pre-releases of 6.03 (seriously, how
many more YEARS pre-release of the same version do you actually need?),
of course the syslinux people have managed to break the last remnants
of compatibility they had between a single major version, so we are now
forced to provide a smorgasbord of pre-release and out of band syslinux
binaries on our server, and make sure we detect and handle incompatible
syslinux versions clientside...
For instance, even after fixing the EFI vs isolinux issue, we find
that tails 1.1 is incompatible with 'pre19'. But it also uses its own
'20131220' extended identifier, instead of 'pre1', its closest
relative. So we have to multiply files and symbolic links to try to
keep everybody happy.
Talk about a MAJOR LETDOWN from the syslinux project...
* Closes#363
* It looks like some disks may report a sector size of zero
* Hopefully, this will address #352 (but some report about the
detected sector size from people observing the crash would be nice)
* The call for the node connection information will fail for device such as Mp3 media players
* In that case, we can still obtain the VID:PID from the Device ID
* Also improve mutex release for commandline hogger
* Tooltips were not properly displaying
* When displaying human readable size, the order for the size and suffix was wrong
* First character of "0x##" in the BIOS ID would not display as zero on an Arabic machine
* Closes#310
* Alt-I can now be used to disable ISO support. This is meant to be
used for dual ISO/DD images so that DD (disk image) mode will be used
* Also issue a message in the log to indicate whether slow or quick format is used
* Also change the cheat mode keys for force update and proper unit to C and U
* ReFS only applies for drives that are larger than 512MB
* Also fix error handling and messages in format.c
* Also add Alt-Q cheat mode for proper size units, and improve human readable size output
* Windows 8 or later uses "Microsoft Virtual Disk" whereas Windows 7
uses "Msft Virtual Disk SCSI Disk Device", so we just search for a
"Virtual Disk" substring.
* Closes#306
* Adds Microsoft VHD/VHDX mounted image support
* Also fix an issue where some devices would not be detected due to CM_Get_Device_ID_List_Size() returning a list size larger than actually required
* Closes#305
* Closes#139
* Listing an unpartitioned could result in all controls besides
drive selection dropdown being blank
* The bad blocks report was not displaying the right values
* Also update version to Rufus next
* Try IOCTL_DISK_GET_DRIVE_GEOMETRY_EX if IOCTL_DISK_GET_DRIVE_GEOMETRY fails in Large Fat32 code
* Report actual IOCTL errors
* Use a larger buffer for geometry
* Also add (guessed) FCC_DEVICE_NOT_READY handling to FormatEx
* Previous patch was creating an issue when creating an XP bootable drive for instance
* Also use our IsChecked() macro rather than IsDlgButtonChecked()
* Thanks to MS' shortsightedness, neither of IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
or IOCTL_STORAGE_GET_DEVICE_NUMBER alone are enough to retrieve a disk number:
IOCTL_STORAGE_GET_DEVICE_NUMBER doesn't work for LVM drives and
IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS doesn't work for USB fixed drives, so we
must use both. Isn't it great?
* Closes#292
* libcdio's unicode16_decode() was not decoding labels at all,
but simply stripping the MSB of the UDF USC-16 sequences
* use an actual conversion to UTF-8
* also update the rest of udf_fs.c to latest libcdio version
* closes#285
* Also try to ignore autorun.inf issues from idiotic antivirus solutions, when writing ISOs
* Also remove the columns in the English labels (improves high DPI display)
* Also update additional ISO related messages to make them more generic
* Also fix an issue with hotplug due to WM_DEVICECHANGE being filtered out
* Also improve AnalyzeMBR() and prevent failure on WriteMBR
* Also fix a couple issues with ISO and Syslinux handling
* Also remove "smart" uncheck of disabled checkboxes - not worth it
* Download the files from files/syslinux-4.07 on the server
* Save local copy in rufus_files/syslinux-4.07
* Move menu.c32/vesamenu.c32 check to BootCheck()
* Tests show that it should have much impact on UFD creation speed and helps shave ~15KB with gcc 4.8.x
* Also adjust the version nano so that it matches the number of commits seen by github
* This means there is NO build 399
* Only as a cheat mode (Alt-N)
* Also fixes inconsistent MBR partition numbering
* Also update a comment in vhd.c about callback progress (thanks to Erwan)
* Detect Syslinux version from isolinux.bin (Closes#272)
* Download required Syslinux v5+ files where needed (Closes#165)
* Also fix an issue where using a Syslinux based ISO didn't switch to ISO mode
* Also alter DownloadFile and ExtractISOFile to return a size
* This addresses the issue reported in #274:
Unable to access kernel32 DLL: [0x0000007F] The specified procedure could not be found.
* Problem was introduced in 897becd290 which was added for #189.
* This ensures that an MBR/UEFI UFD can only ever be booted in EFI mode
* Also fix an issue where the same drive was not properly detected ("U:" vs "U:\")
* Also update ReactOS copyright and fix a warning from Cppcheck in parser.c
* Attempt to remount the drive in case of failure (Closes#270)
* Minor fixes to localization
* Fix errors not being properly reported in DownloadFile()
* Also update ChangeLog.txt for beta
* A new "ReactOS" is now available under "Create a bootable disk" when running in advanced mode.
* Using this option will install the ReactOS bootblocks (MBR & FAT PBR) _only_.
You can then copy freeldr.sys and freeldr.ini to make the drive bootable.
* Also move Rufus MBR installation to ms-sys, and remove mbr.bin resource.
* Also add Rufus MBR detection, remove duplicate records and display MBR type on drive detection
* Also move PBR and MBR analysis calls to drive.c and add a drive.h header
* Also make extraction of embedded loc file more robust
* Vista and later use a different system message font than MS Shell Dlg
* For languages such as Chinese, it makes custom notifications look quite
different from system ones, which is not what we want
* Issue reported by Wayne Ying
* MSG_092 is still being used
* Typo in MSG_245
* Add example in English translation for changing the About->OK button text
* Issues reported by Wayne Ying
* Also update copyright year
* This slowdown was introduced in 897becd290 as the use of
SetThreadUILanguage apparently incurs a massive performance drawback.
* Closes#259
* Also fix a possible issue where the blocking operation message could appear twice
* Also improve the French translation
* Fix language not being applied when switching locale
* Disable controls when scanning is in progress
* Fix Cancel button staying disabled
* Also fix trailing whitespaces and typo in loc file
* Closes#258
* Also fix percentage not being displayed when using slow format
* Also use GetUserDefaultUILanguage() rather than GetUserDefaultLCID()
to get the user preferred locale.
* Closes#189
* Fixes the issue that caused a revert of 0206e2036e
(in c93798b877). The issue was that an active index
was being reused and modified, for ISO9660 images, which could wreck havoc when
writing the data blocks.
* Closes#176 (again)
* Fix missing DOS codepages for Asian languages (reported by Kyle)
* Fix wrong label being reported when an USB HDD is present (reported by NaJiyoun)
* Fix potential issue with error message reporting
* Fix ISO button being truncated on high DPI displays
* Improve French and Korean translations
* Improve launch of updated application
* move Spanish translation to its expected location
* set gitattributes for the loc file
* update license, factorize is_x64(), remove unwanted messages
* Closes#176
* Also fix a crash when displaying an error message (MSG_043 requires a parameter)
* Also display an informative message on interfering security solutions when writing an autorun.inf
* Also revert x64 MSVC target to non-XP so that it can be used for Code Analysis
* Fix an issue where the parsed drive_type was from the wrong drive
and remove the global variable
* Add a size check for the score, as well as a GetDriveSize call
* Also update the French translation to v1.0.3
* Initial scoring to try to differentiate UFDs from HDDs (#219)
* Also improve GetDriveLetter() and add a global for fixed vs removable
* Also fix a bug with reporting of VID:PID with multiple devices
* Also fix a warning in localization
* Fix a leak when freeing the hash table (actual size is htab_size+1)
* Use a better hash algorithm
* Use a larger table with a size already set to a prime
* Remove the need to maintain a new_translation.loc
* Add a sed invocation to remove comments and unwanted stuff
to generate a final embedded.loc
* Note: sed is only invoked for MinGW.
MS compilers still embed the unmodified rufus.loc.
* Also fix a small bug when parsing the version.
* This is meant to be used by translators for testing the UI
* Also fix the positioning and centering of boilerplate on the new version dialog
* French translation improvements
* This is meant to be used with resedit (http://www.resedit.net/) to find out the ID of the UI controls
* Also update names for the language selection menu
* Hashed string was missing the dialog ID. This means that something like:
g IDD_DIALOG1
t IDC_CONTROL "Hello"
g IDD_DIALOG2
t IDC_CONTROL "Goodbye"
would result in "Goodbye" appearing on dialog 1.
* Rufus wasn't overwriting the previous localization command
if an updated one was being provided.
* Add hash functions required for a more efficient lookup
* Also improve some French translations
* Fix missing [b]ase for Chinese and French
* Fix infinite loop when [b]ase is not available for default
* Fix resizing of main dialog forces forcing pos to 0,0
* Add support for LCID provision to option -l
* Fix French translation
* Fix memory leak for loc_filename
* Don't delete an external 'rufus.loc' file if present
* Use IETF normalized tags
* Add quick instructions and sample for translators in new_translation.loc
* Improve About dialog
* Some ISO9660 images (such as Ubuntu) use both Joliet and Rock Ridge,
so we have to make a choice which should be preferred.
* Since Rock Ridge allows a greater filename length compared to Joliet,
we perform our scan pass with Joliet disabled, to find out if RR is
being used and if a filename longer than 64 chars exist. If that is
the case, we'll perform the extraction using RR, else we'll use Joliet.
* Also add Alt-J and Alt-K to toggle Joliet/Rock Ridge
* Closes#178
* Only supported on Vista or later
* Also disable exFAT for XP (requires a KB => not worth it)
* Also improve display of partition data for type 0x07
* Also fix and issue where exFAT/UDF would try to modify PBR
* Also logically move and simplify some of the code
* Closes#157
* As the MSDN doc says, "Failing to properly terminate the (lplpszAcceptTypes)
array with a NULL pointer will cause a crash."
* Also switch to HttpSendRequestA() since we have no use for W there.
* Rufus was downloading c32 files in the last directory browsed, which
meant that the same file may have had to be downloaded more than once
* Closes#154
* Using "highestAvailable" elevation allows standard users to run Rufus
without being prompted for elevations, which prevents them from both
detecting and formatting USB drives
* Since non administrator access is useless, switch to "requireAdministrator"
* Closes#153
* Also fix small issues with saving log and syslinux detection report
* Shift main dialog left in case of overlap
* Fix loss of application focus when displaying the log
* Display Windows version in the log
* Also switch to LZMA for UPX compression
* Closes#148
* Use retries when locking the volume
* Wait for volume availability after partitioning
* Don't halt on errors that can be ignored
* Other small improvements and fixes
* The above should help with addressing #122
* Use IOCTL_DISK_UPDATE_PROPERTIES after partitioning
* Use IOCTL_DISK_DELETE_DRIVE_LAYOUT to invalidate partitions before formatting
* Fix handling of unpartitioned drives
* Increase delay after partitioning
* All of the above should help with the infamous #122
* Also fix display of error messages in ms-sys' file.c as well as stdio.c
* Also add commandline option -f to list fixed drives
* The creation of UFDs with >4GB files should be allowed for NTFS
* Closes#146
* Also switch MessageBoxA() to UTF8 and update some of the message titles
* Use .bss and .sys from Syslinux v5.10
* Advanced options allow you to choose between v4 and v5
* Rufus does not currently copy any ldlinux.c32 to the target
* This is not full Syslinux v5.0 support, but only to prevent the (vesa)menu.c32 message from displaying
* Uses the mandatory inclusion of ldlinux.c32 in Isolinux v5.x for the detection
* Part of a fix for #142
* Raise the size of vesamenu.c32 threshold, a per #140
* Fix a missing backslash when checking for autorun.inf
* Only set boot flag is requested by the user
* Better split of physical vs logical
* Add handling of unmounted volumes by GUID
* Force large FAT32 cheat mode
* Improve user messages and fix some UI issues
* eg. GPT drives with no partitions were not enumerated by default
* fixed disk mode needs to be enabled for this detection to occur
* also fix the unwanted use of a drive letter in GetDrivePartitionData
* also add a check for going over MAX_DRIVES
* also fix improper separator line in FreeDOS menu due to UTF-8 source
* closes#124
* add commandline usage guide
* use -w 150 instead of /W for updated app launch
* fix enabling/disabling of advanced options for UEFI/exFAT
* test for >4GB files for UEFI
* fix warning with freopen
* part of issue #111
* add getopt dependency for MS compilers
* enable the provision of an ISO as parameter
* also fixes shadowed sevenzip_path in vhd.c
* update copyright year
* switch relevant files to UTF-8 (without signature).
It's 2013 for crying out loud: if your file editor or file viewer
can't handle plain UTF-8, go back to the 1980s!
* also rename autogen.sh to bootstrap.sh
* On some systems, the UFD may boot as A:, not C:, in which case
FreeDOS and WinME DOS will fail to be setup properly
* Fix suggested by Klaus Hohenauer
* without the marker, an UFD created as MBR for UEFI will be seen
as MBR for BIOS + UEFI. We want Rufus to be able to select the
settings that were used for the drive creation.
* Also hides #116 under the carpet and fix non RUFUS_DEBUG compilation
* Contains the bulk of the code required to address #11
* Tested with Windows 8 Pro x64 (en-gb_windows_8_x64_dvd_915412.iso)
and Arch Linux (archlinux-2013.01.04-dual.iso) against an UEFI 2.1 BIOS
* Also fixes missing status report beta versions check
* If not, a VS2012 compiled Rufus will crash, as it doesn't allow
working directly on embedded resources
* Closes#118
* Also update ChangeLog for previous patch
* This was issue #90 and commit 261834e31f
* Unfortunately, the ArchLinux workaround breaks Windows XP installation
so ArchLinux ISOs will have to fix their ISO9660 compliance themselves...
* Add dialog for new release notification
* Do not check for updates during format or ISO ops
* Add RTF support for parser and security improvements
* Also improve init and exit of progress dialog
* Fixes only MS-DOS option being proposed when no drive is present
* Fixes only MS-DOS available when an empty card reader is detected first
* Fixes loss of user input label when switching between boot options
NB: ISO label is forced over user input as distros such as Arch Linux
want to see a specific label for the USB
* Closes#95
* Closes#96
* Due to Arch Linux (archlinux-2012.08.04-dual.iso) - See #90
* It is still possible that this patch will have unwanted effect
for ISO-9660 compliant images...
* Use \i386 always through SetupSourceDevice in txtsetup.sif
and prevent deletion of install directory
* Removed setupdd.sy_ patch. Now, none of the files in \i386 are modified
* Better /minint detection for MBR setup
* Also fixed an issue where mbr.bin resources would not be included
* Adds USB masquerading according to disk ID in USB part table
* Adds debug feature
* Closes#74 - was due to flags not being properly saved/restored
* Closes#71
* Fixes reentrant INT_13h for some platforms (eg. IBM t43p reenters
INT_13h to issue an SCSI passthrough, AH=0x50)
* Embed MBR as a resource rather than an ms-sys header
* Adds an MBR to prompt the use about USB or HDD boot
* If USB boot is not selected, an INT13h override is added to
make the second bootable drive think it is first (0x81 -> 0x80)
* USB drive BIOS index is left unmodified
* 32 bit bad blocks check is too limited for large drives
and result in erroneous computations
* 32 bit also means that 2TB would be absolute limit, which
may be too low in case for USB HDD checks
* This fix makes bad blocks check and related calls 64 bit compliant
* also improve on bad block reports
* add readout and display of extended autorun.inf label if available
* use improved isolinux config parsing
* also fix an issue that could leave drive unmounted on forced removal
* also add Alt-F cheatmode to toggle detection of fixed USB disks
* When using Win7 installation ISOs, XP would return the error:
[0x00000456] The media in the drive may have changed
* This seems to be due to unmounting of the drive before writing
the PBR
* Also, our ms-sys/NTFS code wasn't identifying NTFS properly on XP
* Our detection code, which is based on the HPUSBFW utility, allows fixed
drives such as USB HDDs to be listed
* Since Rufus lacks extra precautions for fixed disks, this may result in
people mistakenly formatting and HDD instead of a flash drive
* Until we have added HDD specific features (support for repartitioning or
existing partitions, >32GB FAT32, etc.) we prefer playing it safe by
not listing fixed disks.
* We will re-enable fixed disks when we feel enough safeties are in place
* Also fix an issue where ISO selection could crash if Rufus
was compiled for Vista and later and update version to rufus-next
* Creates an UTF-16 autoconf.inf with label, as well as autoconf.ico
* also fixed extended labels not displaying - closes#48
* also bumped version to rufus-next
* also factorized iso props analysis
* additional fixes
* Allow the use of vanilla Syslinux by creating a /syslinux.cfg
that references isolinux.cfg
* Fix#40 and #42
* Workaround for #44 by search and replace of ISO label in .cfg
* ISO9660 Joliet fixes
* Fix for broken UDF access with MSVC on some images
(eg. Arch Linux)
* Fix for broken Joliet access on ISO9660 images and
proper Joliet support in iso.c
* scan would fail on lowercase vs mixed case dir name comparison
due to Joliet (eg. using Slackware 13.37 ISO)
* extraction would fail for 4 GB ISO9660 ISOs
* also fixes cases issue when checking for isolinux/bootmgr
* also don't restrict NTFS labels
* DOS creation was broken due to missing unlock + close
* added label validation to prevent errors
* added ellipsis to status bar
* also bumped version to rufus next and fixed f/non-f
* required for Linux distros such as Arch Linux
* also added udf_get_logical_volume_id to libcdio and other fixes
* also prevents overwrite of ldlinux.sys from ISO
* closes#36
* bootmgr ISOs only
* extraction and ISO support UI improvements
* UTF8 support through CreateFileU
* cancellation on ISO file extraction
* switch to using CreateThread
* STORAGE_DEVICE_NUMBER.DeviceNumber is not unique! Optical drives and
HDDs can have the same number
* Use GetDriveType() to filter unwanted devices
* closes#32
* default is enabled (=> add --without-freedos to disable)
* also update the release process as a result
* also update version to rufus next
* also fixed FreeDOS embedded files lost when RC is edited in Visual Studio
* sets DOS locale using the same algorithm as MS' diskcopy.dll
* uses CONFIG.SYS menu to allow US vs non US selection
* only applies to WinME/MS-DOS for now (no FreeDOS)
* also renamed msdos.c -> dos.c with minor improvements
* also added missing FreeDOS credits in about dialog
* closes#22 (missing CloseHandle for FreeDOS' AUTOEXEC.BAT)
* split rufus and rufus_fd solution files (VS2010)
* error messages small improvements
* since we're on Windows, use .txt extension for README and TODO
* create an empty AUTOEXEC.BAT file to avoid date/time prompt
* use a patched version of KERNEL.SYS from 2011.12.16 FreeDOS SVN to avoid CHS warnings
see freedos/readme.txt for details
* also removed read-only attribute on COMMAND.COM and KERNEL.SYS to allow SYS CONFIG
* also
* closes#19
* closes#20
* Disk Drive ID fixup for FAT32 was already available in ms-sys with option -p
* modified code to add FAT16 as well as FAT32 support as well as minor fixes
* reverts previous patch write_fat_32_br() and write_fat_16_br()
* fixed issue #16 - crash during format on XP
* fixed issue #17 - non bootable drives when created in XP
* for more info on the problem and fix, see the issues above
* follow what MS/FormatEx actually allow
* closes#15
* also fixed potential empty selection in cluster size dropdown
* also improved Local Group Policy handling
* new drive notifications from explorer are annoying
* use Local Group Policy to temporarily disable them
* also fixed missing SetupDiDestroyDeviceInfoList call
* progress bar now reflects actual completion of process more closely
* dropped the use of UM_FORMAT_PROGRESS and introduced UpdateProgress() instead
* also reduced the number of rw test patterns from 4 to 2
* after a bb check, MBR could become garbage
* when that occurs, Windows might interpret a bad partition table and prevent MBR from being properly written
* force a complete zeroing of the whole MBR before partitioning to fix this
* also added error code for bb