Commit Graph

211 Commits

Author SHA1 Message Date
Pete Batard 60c66ef813 [misc] fix division by zero if the sector size is misreported
* 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)
2014-08-03 19:34:01 +01:00
Pete Batard c0d3f8e57c [core] fix VHD support
* Also fix various typos
2014-05-20 19:28:46 +01:00
Pete Batard b6bc17b7f4 [core] add KolibriOS support
* Closes #331
2014-05-15 21:17:12 +01:00
Pete Batard 266599e6fd [misc] fix various Coverity issues
* update DLL load/unload
* fix resources not being freed and potentially unsafe calls
* add extra checks
2014-05-10 22:20:22 +01:00
Pete Batard 9aa308213d [core] fix UEFI bootable DD images
* A DD image may have a zeroed MBR, yet be bootable through UEFI
* Also improve AnalyzePBR()
* Closes #320
2014-05-09 21:57:27 +01:00
Pete Batard 027d0d7c3a [core] add ReFS formatting support
* Windows 8.1 or later and fixed disks ONLY
2014-03-29 00:22:54 +00:00
Pete Batard 5519212dd3 [core] improve drive geometry detection
* 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
2014-03-29 00:17:41 +00:00
Pete Batard 94ce19d11f [ui] display size in the dropdown entry
* Also remove the "(Default)" from the FS selected, in the log messages
2014-03-01 00:09:40 +00:00
Pete Batard 24392b2fb6 v1.4.5 [TAKE TWO] (build 428)
* Fix a missing CloseHandle
* Closes #293
2014-02-27 21:40:12 +00:00
Pete Batard 8c1dd2ca91 [core] fix detection of fixed drives
* 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
2014-02-27 19:53:53 +00:00
Pete Batard 11917179b9 [core] fix drives not being detected when LVM is in use
* Also use IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS to retrieve the disk number
  as IOCTL_STORAGE_GET_DEVICE_NUMBER will fail for LVM
* Closes #290
2014-02-25 19:13:49 +00:00
Pete Batard b83b087b52 [misc] factorize SizeToHumanReadable() and ensure log sizes are in English
* Also use an allocated buffer for DD operations
2014-02-17 23:15:09 +00:00
Pete Batard 89a7a3deb1 [core] add uncompressed DD image support
* 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
2014-02-09 02:54:07 +00:00
Pete Batard f424229e0f [misc] add NTFS compression support
* 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)
2014-01-31 02:51:28 +00:00
Pete Batard 3ae7ec4af5 [core] detect, report and warn when multiple partitions are in use
* Closes #191
* Also fix various minor warnings
2014-01-21 23:09:30 +00:00
Pete Batard db41c1e63e [core] use custom partition type for old BIOS fix
* We will need that when we fix #191
* Also improve make sys_types.h more comprehensive and fix a small loc issue
2014-01-14 20:10:09 +00:00
Pete Batard 14fbbfaa2e [efi] zero the MBR when MBR/UEFI is used
* 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
2014-01-11 00:19:03 +00:00
Pete Batard 573ea45640 [core] add support for bare ReactOS boot record installation
* 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
2014-01-05 01:39:41 +00:00
Pete Batard 36693d2144 [core] detect memory cards in card readers
* Also remove drives with no media from the list
* Closes #18
2013-12-20 18:32:10 +00:00
Pete Batard 18c9df18b5 [loc] set log messages to use English locale
* This is done to ensure I can understand logs that are sent to me,
  even when a non English locale is used.
* Closes #188.
2013-12-19 23:56:40 +00:00
Pete Batard e899fc0e61 [core] fix a conflict with Windows automount drive letter assignation
* Closes #239
2013-12-10 19:30:12 +00:00
Pete Batard abb180c2c4 [core] layout buffer is to small for drives with weird partitioning
* If you have a bunch of extended partitions, 1024 may not be enough
* Issue reported by Bart Zorn
* Also fix a ChangeLog typo
2013-12-03 23:56:43 +00:00
Tom Thornhill a5f98d636f [format] fix large FAT32 format for GPT drives
* Also set FSCTL_ALLOW_EXTENDED_DASD_IO before locking a drive
* Closes #181
2013-11-23 22:55:17 +00:00
Pete Batard d298c2918b [core] UFD vs HDD improvements
* 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
2013-11-17 01:39:43 +00:00
Pete Batard aa0bf0ee2b [core] add HDD vs UFD detection
* 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
2013-11-14 01:21:50 +00:00
Pete Batard 803a4bff1c [core] SMART/ATA over USB initial support
* This is meant to be used as part of #219
* Also improve WindowsErrorString() so that it doesn't alter the current errcode
2013-11-13 01:07:32 +00:00
Pete Batard df06727416 [loc] add localization support
* This is a merge up to commit bd319269aa of the localization branch
* Also fixes Clang warnings
2013-10-15 23:25:54 +01:00
Pete Batard 4ac182830d [core] add UDF filesystem support
* 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
2013-07-09 00:14:29 +01:00
Pete Batard d81ca7de24 [core] reinstate the call to DeletePartitions()
* But use IOCTL_DISK_CREATE_DISK and not IOCTL_DISK_DELETE_DRIVE_LAYOUT
* Also improve messaging and increase detection timeout to 15 seconds
2013-07-05 22:20:46 +01:00
Pete Batard 967ad1da33 [core] remove the call to IOCTL_DISK_DELETE_DRIVE_LAYOUT
* As per issue #122, this creates problems when formatting a drive in FAT16
* Also remove an unnecessary backslash in icon.c
2013-07-04 22:51:15 +01:00
Pete Batard 6be21bbdbc [core] more drive handling improvements
* 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
2013-06-25 18:39:07 +01:00
Pete Batard cd5665881c [core] drive handling improvements
* 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
2013-06-25 02:55:25 +01:00
Pete Batard e1ff2a5273 [misc] improve messages and dialogs 2013-06-06 23:40:37 +01:00
Pete Batard d3238d7210 [misc] fix MinGW compilation issues 2013-06-04 00:44:49 +01:00
Pete Batard a17acd1a22 [ui] add fixed disk detection to the advanced options
* Tie unpartitioned drive listing to the fixed disk option
* Also ensure that the log and main dialog windows are the same size
2013-06-03 21:32:22 +01:00
Pete Batard 22808893bc [misc] small enhancements
* Add detection for user cancellation during between atomic format operations
* Clear existing PBR along with MBR/GPT data
* Improve log messages
2013-06-03 19:55:23 +01:00
Pete Batard 26f807530d [iso] fix broken bootmgr detection
* Closes #144
* Also fix broken WDK compilation
2013-05-19 23:02:16 +01:00
Pete Batard 199b9f4869 [misc] fix various minor issues
* 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
2013-05-01 23:43:44 +01:00
Pete Batard 8e9777579b [core] Fix active MBR partition not being set
* Related to issue #128
* Also reported by Owen Yang
2013-04-08 00:14:28 +01:00
Pete Batard 4da36fa321 [core] low level drive handling redesign
* 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
2013-04-08 00:10:58 +01:00
Pete Batard 63e6c02f02 [core] allow detection and format of "raw" drives
* 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
2013-02-10 21:56:21 +00:00
Pete Batard c51bf5ce45 [misc] set rufus-next to 1.3.3, update copyright
* 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
2013-02-02 15:47:56 +00:00
Pete Batard 0cc39d0222 [efi] add mbr UEFI marker for partition scheme reselection
* 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
2013-01-27 20:56:57 +00:00
Pete Batard 647d9f18ad [misc] refactoring and cleanup - part 2
* add GetResource() function call to handle resource loading and
  revert 98ff7a931a
* add separate BootCheck() call
* better handling of passes tooltip
* remove superfluous backslashes
* fix standalone EFI support
* add GPL v3 license file and update README.txt
2013-01-25 01:56:28 +00:00
Pete Batard bba1772940 [misc] refactoring and cleanup - part 1
* add stdfn.c and move the relevant standard calls there
* move most of GetDriveInfo() to drive.c
* rename IDC_DOS/hDos to IDC_BOOT/hBoot
2013-01-24 21:30:11 +00:00
Pete Batard c8acf1b84a [misc] cleanup and refactoring + fix WIM 7z minor issue
* remove hardcoded path from WimExtractFile_7z
* move some drive related functions to drive.c
* cleanup
2013-01-22 02:40:43 +00:00
Pete Batard c4cb9d03c1 [misc] fix VS2012 Code Analysis warnings
* Only for files that aren't part of external dependencies
* Also update copyright date
2013-01-09 21:54:28 +00:00
Pete Batard b3ed23647f [net] Check for application update (part 2)
* factorized token parser and added update file parsing
2012-11-12 01:53:34 +00:00
Pete Batard 8dc5429d9f [misc] various small improvements
* Less scary message from bad blocks
* Better error report for read/write_sectors
* Fix a WDK warning
2012-11-03 17:22:28 +00:00
Pete Batard 372b89ba3a [misc] address various TODOs and improve UI
* display comprehensive partition information
* improve tooltips
* remove TODOs that are no longer relevant
2012-05-29 17:47:24 +01:00
Pete Batard 4bd017ff07 [pe] initial WinPE support (BartPE, XP install disc)
* also switched MBR to Win7 one
* also switched version to rufus-next
2012-03-16 18:30:44 +00:00
Pete Batard e0f209a128 [misc] Misc. fixes
* Addresses issue #66 (insert media notification with empty card readers)
* Addresses issue #67 (devices without FriendlyName aren't listed)
* Addresses issue #68 (WinPE/AIK images don't boot)
* Also updates version to rufus-next
2012-03-09 01:38:52 +00:00
Pete Batard 3721b0a570 [misc] improved label and config handling
* 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
2012-03-01 19:19:12 +00:00
Pete Batard 352a796eff [core] only allow removable drives to be listed
* 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
2012-02-24 18:46:55 +00:00
Pete Batard 7e7c75169c [ui] enable setting of icon and extended label
* 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
2012-02-21 19:46:28 +00:00
Pete Batard bb0c0ecb1c [core] fixed non detection of USB drives on some platforms
* STORAGE_DEVICE_NUMBER.DeviceNumber is not unique! Optical drives and
  HDDs can have the same number
* Use GetDriveType() to filter unwanted devices
* closes #32
2012-02-02 19:47:08 +00:00
Pete Batard 3187f71933 v1.0.6 (#109)
* removed TODO (duplicates github feature)
* updated copyrights to 2012
* fixed MS only rufus VS2010 solution file
* fixed a Clang warning in SetLGP
2012-01-03 00:50:00 +00:00
Pete Batard 5722300063 v1.0.4 (#100)
* 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
2011-12-16 23:24:16 +00:00
Pete Batard df7a0b1fc3 [format] added volume unmount and improve logic
* acquire a vomume handle and unmount the volume before anything else
* remove the volume access check after partitioning - use a small delay instead
2011-12-11 02:19:38 +00:00
Pete Batard 7726071098 [misc] updated acronym
* Resourceful -> Reliable
* also removed standalone makefile (mkf)
2011-12-05 11:36:02 +00:00
Pete Batard 48f9dd47ae [misc] move source files to src/ directory 2011-12-05 10:49:45 +00:00
Renamed from drive.c (Browse further)