1
1
Fork 0
mirror of https://github.com/pbatard/rufus.git synced 2024-08-14 23:57:05 +00:00

[ui] improve removal of <8MB devices

* Closes #692
This commit is contained in:
Pete Batard 2016-02-19 12:10:17 +00:00
parent 9ebdecc124
commit d3c9afa2fd
4 changed files with 12 additions and 10 deletions

View file

@ -227,10 +227,6 @@ static BOOL DefineClusterSizes(void)
default_fs = FS_UNKNOWN; default_fs = FS_UNKNOWN;
memset(&SelectedDrive.ClusterSize, 0, sizeof(SelectedDrive.ClusterSize)); memset(&SelectedDrive.ClusterSize, 0, sizeof(SelectedDrive.ClusterSize));
if (SelectedDrive.DiskSize < 8*MB) {
uprintf("Device was eliminated because it is smaller than 8 MB\n");
goto out;
}
/* /*
* The following are MS's allowed cluster sizes for FAT16 and FAT32: * The following are MS's allowed cluster sizes for FAT16 and FAT32:
@ -343,7 +339,6 @@ static BOOL DefineClusterSizes(void)
} }
} }
out:
// Only add the filesystems we can service // Only add the filesystems we can service
for (fs=0; fs<FS_MAX; fs++) { for (fs=0; fs<FS_MAX; fs++) {
// Remove all cluster sizes that are below the sector size // Remove all cluster sizes that are below the sector size

View file

@ -48,6 +48,7 @@
#define DRIVE_ACCESS_RETRIES 60 // How many times we should retry #define DRIVE_ACCESS_RETRIES 60 // How many times we should retry
#define DRIVE_INDEX_MIN 0x00000080 #define DRIVE_INDEX_MIN 0x00000080
#define DRIVE_INDEX_MAX 0x000000C0 #define DRIVE_INDEX_MAX 0x000000C0
#define MIN_DRIVE_SIZE 8 // Minimum size a drive must have, to be formattable (in MB)
#define MIN_EXTRA_PART_SIZE (1024*1024) // Minimum size of the extra partition, in bytes #define MIN_EXTRA_PART_SIZE (1024*1024) // Minimum size of the extra partition, in bytes
#define MAX_DRIVES (DRIVE_INDEX_MAX - DRIVE_INDEX_MIN) #define MAX_DRIVES (DRIVE_INDEX_MAX - DRIVE_INDEX_MIN)
#define MAX_TOOLTIPS 128 #define MAX_TOOLTIPS 128

View file

@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG DIALOGEX 12, 12, 242, 376 IDD_DIALOG DIALOGEX 12, 12, 242, 376
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES EXSTYLE WS_EX_ACCEPTFILES
CAPTION "Rufus 2.8.859" CAPTION "Rufus 2.8.860"
FONT 8, "Segoe UI Symbol", 400, 0, 0x0 FONT 8, "Segoe UI Symbol", 400, 0, 0x0
BEGIN BEGIN
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8 LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
@ -320,8 +320,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,8,859,0 FILEVERSION 2,8,860,0
PRODUCTVERSION 2,8,859,0 PRODUCTVERSION 2,8,860,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -338,13 +338,13 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
VALUE "FileDescription", "Rufus" VALUE "FileDescription", "Rufus"
VALUE "FileVersion", "2.8.859" VALUE "FileVersion", "2.8.860"
VALUE "InternalName", "Rufus" VALUE "InternalName", "Rufus"
VALUE "LegalCopyright", "© 2011-2016 Pete Batard (GPL v3)" VALUE "LegalCopyright", "© 2011-2016 Pete Batard (GPL v3)"
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
VALUE "OriginalFilename", "rufus.exe" VALUE "OriginalFilename", "rufus.exe"
VALUE "ProductName", "Rufus" VALUE "ProductName", "Rufus"
VALUE "ProductVersion", "2.8.859" VALUE "ProductVersion", "2.8.860"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -537,6 +537,12 @@ BOOL GetUSBDevices(DWORD devnum)
safe_free(devint_detail_data); safe_free(devint_detail_data);
break; break;
} }
if (GetDriveSize(drive_index) < (MIN_DRIVE_SIZE*1024*1024)) {
uprintf("Device eliminated because it is smaller than %d MB\n", MIN_DRIVE_SIZE);
safe_closehandle(hDrive);
safe_free(devint_detail_data);
break;
}
if (GetDriveLabel(drive_index, drive_letters, &label)) { if (GetDriveLabel(drive_index, drive_letters, &label)) {
if ((props.is_SCSI) && (!props.is_UASP) && (!props.is_VHD)) { if ((props.is_SCSI) && (!props.is_UASP) && (!props.is_VHD)) {