mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[img] add a retry for DD Images
* 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
This commit is contained in:
		
							parent
							
								
									89a7a3deb1
								
							
						
					
					
						commit
						cd4dd3cc47
					
				
					 7 changed files with 66 additions and 51 deletions
				
			
		|  | @ -2,7 +2,7 @@ o Version 1.4.4 (2013.02.??) | ||||||
|     Add *uncompressed* DD Image support (FreeBSD, FreeNAS, etc.) |     Add *uncompressed* DD Image support (FreeBSD, FreeNAS, etc.) | ||||||
|     Add right-to-left language support |     Add right-to-left language support | ||||||
|     Add NTFS Compression support (unofficial) |     Add NTFS Compression support (unofficial) | ||||||
|     Improve Syslinux v5+ support (requires an internet connection) |     Improve Syslinux v5+ support (requires an internet connection to download extra files) | ||||||
|     Improve hotplug detection |     Improve hotplug detection | ||||||
|     Fix detection for Toshiba drives (again) |     Fix detection for Toshiba drives (again) | ||||||
|     Fix support for latest gparted, ArchLinux, and other Syslinux v5+ based ISOs  |     Fix support for latest gparted, ArchLinux, and other Syslinux v5+ based ISOs  | ||||||
|  |  | ||||||
|  | @ -17,8 +17,12 @@ o Version 1.0.10 (2014.02.09) | ||||||
|   - *NEW* MSG_261 "Writing image: %0.1f%% completed" |   - *NEW* MSG_261 "Writing image: %0.1f%% completed" | ||||||
|   - *NEW* MSG_187 "Invalid image for selected boot option" |   - *NEW* MSG_187 "Invalid image for selected boot option" | ||||||
|   - *NEW* MSG_188 "The current image doesn't match the boot option selected..." (see rufus.loc for full text) |   - *NEW* MSG_188 "The current image doesn't match the boot option selected..." (see rufus.loc for full text) | ||||||
|  |   - Changed MSG_086 "No ISO image selected" -> "No image selected" | ||||||
|  |   - Changed MSG_087 "Please click on the disc button to select a bootable ISO..." -> "Please click on the disc button to select a bootable image..." (see rufus.loc for full text) | ||||||
|   - Changed MSG_088 "ISO too big" -> "Image is too big" |   - Changed MSG_088 "ISO too big" -> "Image is too big" | ||||||
|   - Changed MSG_089 "This ISO image is too big for the selected target." -> "The image is too big for the selected target." |   - Changed MSG_089 "This ISO image is too big for the selected target." -> "The image is too big for the selected target." | ||||||
|  |   - Changed MSG_202 "Scanning ISO image..." -> "Scanning image..." | ||||||
|  |   - Changed MSG_203 "Failed to scan ISO image" -> "Failed to scan image" | ||||||
| 
 | 
 | ||||||
| o Version 1.0.9 (2014.01.31) | o Version 1.0.9 (2014.01.31) | ||||||
|   - *NEW* MSG_260 "NTFS compression" |   - *NEW* MSG_260 "NTFS compression" | ||||||
|  |  | ||||||
|  | @ -63,9 +63,9 @@ t IDS_FILESYSTEM_TXT "File system" | ||||||
| t IDS_CLUSTERSIZE_TXT "Cluster size" | t IDS_CLUSTERSIZE_TXT "Cluster size" | ||||||
| t IDS_LABEL_TXT "New volume label" | t IDS_LABEL_TXT "New volume label" | ||||||
| t IDS_FORMAT_OPTIONS_GRP "Format Options       " | t IDS_FORMAT_OPTIONS_GRP "Format Options       " | ||||||
| t IDC_BADBLOCKS "Check device for bad blocks:" | t IDC_BADBLOCKS "Check device for bad blocks" | ||||||
| t IDC_QUICKFORMAT "Quick format" | t IDC_QUICKFORMAT "Quick format" | ||||||
| t IDC_BOOT "Create a bootable disk using:" | t IDC_BOOT "Create a bootable disk using" | ||||||
| t IDC_SET_ICON "Create extended label and icon files" | t IDC_SET_ICON "Create extended label and icon files" | ||||||
| t IDC_ABOUT "About..." | t IDC_ABOUT "About..." | ||||||
| t IDC_LOG "Log" | t IDC_LOG "Log" | ||||||
|  | @ -79,7 +79,7 @@ t IDC_EXTRA_PARTITION "Add fixes for old BIOSes (extra partition, align, etc.)" | ||||||
| # 'MBR': See http://en.wikipedia.org/wiki/Master_boot_record | # 'MBR': See http://en.wikipedia.org/wiki/Master_boot_record | ||||||
| # Rufus can install it's own custom MBR (the Rufus MBR), which also allows users | # Rufus can install it's own custom MBR (the Rufus MBR), which also allows users | ||||||
| # to specify a custom disk ID for the BIOS. Note: the tooltip for this control is MSG_167. | # to specify a custom disk ID for the BIOS. Note: the tooltip for this control is MSG_167. | ||||||
| t IDC_RUFUS_MBR "Use Rufus MBR with BIOS ID:" | t IDC_RUFUS_MBR "Use Rufus MBR with BIOS ID" | ||||||
| 
 | 
 | ||||||
| # About dialog | # About dialog | ||||||
| g IDD_ABOUTBOX | g IDD_ABOUTBOX | ||||||
|  | @ -243,11 +243,11 @@ t MSG_084 "This ISO image seems to use an obsolete version of '%s'.\n" | ||||||
| 	"Note: The new file will be downloaded in the current directory and once a " | 	"Note: The new file will be downloaded in the current directory and once a " | ||||||
| 	"'%s' exists there, it will be reused automatically." | 	"'%s' exists there, it will be reused automatically." | ||||||
| t MSG_085 "Downloading %s" | t MSG_085 "Downloading %s" | ||||||
| t MSG_086 "No ISO image selected" | t MSG_086 "No image selected" | ||||||
| # The content between the quotes below (\"Create a bootable disk\") should match | # The content between the quotes below (\"Create a bootable disk\") should match | ||||||
| # the beginning of the IDC_BOOT text | # the beginning of the IDC_BOOT text | ||||||
| t MSG_087 "Please click on the disc button to select a bootable ISO, " | t MSG_087 "Please click on the disc button to select a bootable image, " | ||||||
| 	"or uncheck the \"Create a bootable disk...\" checkbox." | 	"or uncheck the \"Create a bootable disk using\" checkbox." | ||||||
| t MSG_088 "Image is too big" | t MSG_088 "Image is too big" | ||||||
| t MSG_089 "The image is too big for the selected target." | t MSG_089 "The image is too big for the selected target." | ||||||
| t MSG_090 "Unsupported ISO" | t MSG_090 "Unsupported ISO" | ||||||
|  | @ -355,8 +355,8 @@ t MSG_188 "The current image doesn't match the boot option selected. Please use | ||||||
| 
 | 
 | ||||||
| # Status messages - these messages will appear on the status bar | # Status messages - these messages will appear on the status bar | ||||||
| t MSG_201 "Cancelling - Please wait..." | t MSG_201 "Cancelling - Please wait..." | ||||||
| t MSG_202 "Scanning ISO image..." | t MSG_202 "Scanning image..." | ||||||
| t MSG_203 "Failed to scan ISO image" | t MSG_203 "Failed to scan image" | ||||||
| # Parameter: the name of an obsolete Syslinux .c32 module. eg: "Obsolete vesamenu.c32 detected" | # Parameter: the name of an obsolete Syslinux .c32 module. eg: "Obsolete vesamenu.c32 detected" | ||||||
| t MSG_204 "Obsolete %s detected" | t MSG_204 "Obsolete %s detected" | ||||||
| # Display the name of the ISO selected. eg: "Using ISO: en_win7_x64_sp1.iso" | # Display the name of the ISO selected. eg: "Using ISO: en_win7_x64_sp1.iso" | ||||||
|  | @ -1766,9 +1766,9 @@ t MSG_084 "Cette image ISO utilise une version obsolète du fichier '%s'.\n" | ||||||
| 	"Note : Le nouveau fichier sera téléchargé dans le répertoire courant. " | 	"Note : Le nouveau fichier sera téléchargé dans le répertoire courant. " | ||||||
| 	"Si un '%s' existe à cet endroit, il sera réutilisé automatiquement." | 	"Si un '%s' existe à cet endroit, il sera réutilisé automatiquement." | ||||||
| t MSG_085 "Téléchargement de %s" | t MSG_085 "Téléchargement de %s" | ||||||
| t MSG_086 "Aucune image ISO sélectionnée" | t MSG_086 "Aucune image sélectionnée" | ||||||
| t MSG_087 "Veuillez cliquer sur le bouton avec un disque pour choisir une image ISO démarrable " | t MSG_087 "Veuillez cliquer sur le bouton avec un disque pour sélectionner une image démarrable " | ||||||
| 	"ou décochez l'option \"Disque de démarrage...\"." | 	"ou décochez l'option \"Créer un disque de démarrage\"." | ||||||
| t MSG_088 "Image trop large" | t MSG_088 "Image trop large" | ||||||
| t MSG_089 "L'image est trop large pour être copiée sur le périphérique sélectionné." | t MSG_089 "L'image est trop large pour être copiée sur le périphérique sélectionné." | ||||||
| t MSG_090 "Image ISO on supportée" | t MSG_090 "Image ISO on supportée" | ||||||
|  | @ -1874,8 +1874,8 @@ t MSG_188 "L'image choisie ne correspond pas à l'option de démarrage sélectio | ||||||
| 
 | 
 | ||||||
| # Status messages | # Status messages | ||||||
| t MSG_201 "Annulation - Veuillez patienter..." | t MSG_201 "Annulation - Veuillez patienter..." | ||||||
| t MSG_202 "Analyse de l'image ISO..." | t MSG_202 "Analyse de l'image..." | ||||||
| t MSG_203 "Echec d'analyse de l'image ISO" | t MSG_203 "Echec d'analyse de l'image" | ||||||
| t MSG_204 "Fichier %s obsolète détecté" | t MSG_204 "Fichier %s obsolète détecté" | ||||||
| t MSG_205 "ISO utilisée : %s" | t MSG_205 "ISO utilisée : %s" | ||||||
| t MSG_206 "Fichier %s manquant" | t MSG_206 "Fichier %s manquant" | ||||||
|  |  | ||||||
							
								
								
									
										32
									
								
								src/format.c
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								src/format.c
									
										
									
									
									
								
							|  | @ -1172,7 +1172,6 @@ DWORD WINAPI CloseFormatPromptThread(LPVOID param) { | ||||||
|  *   Close the volume handle. |  *   Close the volume handle. | ||||||
|  */ |  */ | ||||||
| #define CHECK_FOR_USER_CANCEL 	if (IS_ERROR(FormatStatus)) goto out | #define CHECK_FOR_USER_CANCEL 	if (IS_ERROR(FormatStatus)) goto out | ||||||
| #define BSIZE 65536	// TODO: dual buffer and overlapped when writing an image
 |  | ||||||
| DWORD WINAPI FormatThread(void* param) | DWORD WINAPI FormatThread(void* param) | ||||||
| { | { | ||||||
| 	int i, r, pt, bt, fs, dt; | 	int i, r, pt, bt, fs, dt; | ||||||
|  | @ -1185,7 +1184,7 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 	FILE* log_fd; | 	FILE* log_fd; | ||||||
| 	LARGE_INTEGER li; | 	LARGE_INTEGER li; | ||||||
| 	uint64_t wb; | 	uint64_t wb; | ||||||
| 	uint8_t buffer[BSIZE]; | 	uint8_t buffer[65536]; | ||||||
| 	char *bb_msg, *guid_volume = NULL; | 	char *bb_msg, *guid_volume = NULL; | ||||||
| 	char drive_name[] = "?:\\"; | 	char drive_name[] = "?:\\"; | ||||||
| 	char drive_letters[27]; | 	char drive_letters[27]; | ||||||
|  | @ -1327,7 +1326,7 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 		// We poked the MBR, so we need to rewind
 | 		// We poked the MBR, so we need to rewind
 | ||||||
| 		li.QuadPart = 0; | 		li.QuadPart = 0; | ||||||
| 		SetFilePointerEx(hPhysicalDrive, li, NULL, FILE_BEGIN); | 		SetFilePointerEx(hPhysicalDrive, li, NULL, FILE_BEGIN); | ||||||
| 		hSourceImage = CreateFileU(iso_path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); | 		hSourceImage = CreateFileU(iso_path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL); | ||||||
| 		if (hSourceImage == INVALID_HANDLE_VALUE) { | 		if (hSourceImage == INVALID_HANDLE_VALUE) { | ||||||
| 			uprintf("Could not open image '%s': %s", iso_path, WindowsErrorString()); | 			uprintf("Could not open image '%s': %s", iso_path, WindowsErrorString()); | ||||||
| 			FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_OPEN_FAILED; | 			FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_OPEN_FAILED; | ||||||
|  | @ -1335,11 +1334,15 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		uprintf("Writing Image..."); | 		uprintf("Writing Image..."); | ||||||
|  | 		// Don't bother trying for something clever, using double buffering overlapped and whatnot:
 | ||||||
|  | 		// With Windows' default optimizations, sync read + sync write for sequential operations
 | ||||||
|  | 		// will be as fast, if not faster, than whatever async scheme you can come up with.
 | ||||||
| 		for (wb = 0; ; wb += wSize) { | 		for (wb = 0; ; wb += wSize) { | ||||||
| 			s = ReadFile(hSourceImage, buffer, BSIZE, &rSize, NULL); | 			s = ReadFile(hSourceImage, buffer, sizeof(buffer), &rSize, NULL); | ||||||
| 			if (!s) { | 			if (!s) { | ||||||
| 				FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_READ_FAULT; | 				FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_READ_FAULT; | ||||||
| 				uprintf("read error: %s", WindowsErrorString()); | 				uprintf("read error: %s", WindowsErrorString()); | ||||||
|  | 				goto out; | ||||||
| 			} | 			} | ||||||
| 			if (rSize == 0) | 			if (rSize == 0) | ||||||
| 				break; | 				break; | ||||||
|  | @ -1350,16 +1353,24 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 				UpdateProgress(OP_FORMAT, format_percent); | 				UpdateProgress(OP_FORMAT, format_percent); | ||||||
| 			} | 			} | ||||||
| 			CHECK_FOR_USER_CANCEL; | 			CHECK_FOR_USER_CANCEL; | ||||||
| 			// TODO: add a retry on write?
 | 			for (i=0; i<WRITE_RETRIES; i++) { | ||||||
| 			s = WriteFile(hPhysicalDrive, buffer, rSize, &wSize, NULL); | 				s = WriteFile(hPhysicalDrive, buffer, rSize, &wSize, NULL); | ||||||
| 			if (!s || wSize != rSize) { | 				if ((s) && (wSize == rSize)) | ||||||
| 				FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_WRITE_FAULT; | 					break; | ||||||
| 				if (s) | 				if (s) | ||||||
| 					uprintf("write error: Wrote %d bytes, expected %d bytes\n", wSize, rSize); | 					uprintf("write error: Wrote %d bytes, expected %d bytes\n", wSize, rSize); | ||||||
| 				else | 				else | ||||||
| 					uprintf("write error: %s", WindowsErrorString()); | 					uprintf("write error: %s", WindowsErrorString()); | ||||||
| 				goto out; | 				if (i < WRITE_RETRIES-1) { | ||||||
| 			}	 | 					li.QuadPart = wb; | ||||||
|  | 					SetFilePointerEx(hPhysicalDrive, li, NULL, FILE_BEGIN); | ||||||
|  | 					uprintf("  RETRYING...\n"); | ||||||
|  | 				} else { | ||||||
|  | 					FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_WRITE_FAULT; | ||||||
|  | 					goto out; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			if (i >= WRITE_RETRIES) goto out; | ||||||
| 		} | 		} | ||||||
| 		uprintf("Done"); | 		uprintf("Done"); | ||||||
| 		goto out; | 		goto out; | ||||||
|  | @ -1551,6 +1562,7 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| out: | out: | ||||||
| 	safe_free(guid_volume); | 	safe_free(guid_volume); | ||||||
| 	SendMessage(hISOProgressDlg, UM_ISO_EXIT, 0, 0); | 	SendMessage(hISOProgressDlg, UM_ISO_EXIT, 0, 0); | ||||||
|  | 	safe_closehandle(hSourceImage); | ||||||
| 	safe_unlockclose(hLogicalVolume); | 	safe_unlockclose(hLogicalVolume); | ||||||
| 	safe_unlockclose(hPhysicalDrive);	// This can take a while
 | 	safe_unlockclose(hPhysicalDrive);	// This can take a while
 | ||||||
| 	if (IS_ERROR(FormatStatus)) { | 	if (IS_ERROR(FormatStatus)) { | ||||||
|  |  | ||||||
							
								
								
									
										28
									
								
								src/iso.c
									
										
									
									
									
								
							
							
						
						
									
										28
									
								
								src/iso.c
									
										
									
									
									
								
							|  | @ -47,7 +47,6 @@ | ||||||
| // the progress bar for every block will bring extraction to a crawl
 | // the progress bar for every block will bring extraction to a crawl
 | ||||||
| #define PROGRESS_THRESHOLD        128 | #define PROGRESS_THRESHOLD        128 | ||||||
| #define FOUR_GIGABYTES            4294967296LL | #define FOUR_GIGABYTES            4294967296LL | ||||||
| #define WRITE_RETRIES             3 |  | ||||||
| 
 | 
 | ||||||
| // Needed for UDF ISO access
 | // Needed for UDF ISO access
 | ||||||
| CdIo_t* cdio_open (const char* psz_source, driver_id_t driver_id) {return NULL;} | CdIo_t* cdio_open (const char* psz_source, driver_id_t driver_id) {return NULL;} | ||||||
|  | @ -69,6 +68,9 @@ static const char* pe_dirname[] = { "/i386", "/minint" }; | ||||||
| static const char* pe_file[] = { "ntdetect.com", "setupldr.bin", "txtsetup.sif" }; | static const char* pe_file[] = { "ntdetect.com", "setupldr.bin", "txtsetup.sif" }; | ||||||
| static const char* reactos_name = "setupldr.sys"; // TODO: freeldr.sys doesn't seem to work
 | static const char* reactos_name = "setupldr.sys"; // TODO: freeldr.sys doesn't seem to work
 | ||||||
| static const char* autorun_name = "autorun.inf"; | static const char* autorun_name = "autorun.inf"; | ||||||
|  | static const char* stupid_antivirus = "  NOTE: This is usually caused by a poorly designed security solution. " | ||||||
|  | 	"See http://rufus.akeo.ie/compatibility.\r\n  This file will be skipped for now, but you should really " | ||||||
|  | 	"look into using a *SMARTER* antivirus solution."; | ||||||
| const char* old_c32_name[NB_OLD_C32] = OLD_C32_NAMES; | const char* old_c32_name[NB_OLD_C32] = OLD_C32_NAMES; | ||||||
| static const int64_t old_c32_threshold[NB_OLD_C32] = OLD_C32_THRESHOLD; | static const int64_t old_c32_threshold[NB_OLD_C32] = OLD_C32_THRESHOLD; | ||||||
| static uint8_t i_joliet_level = 0; | static uint8_t i_joliet_level = 0; | ||||||
|  | @ -283,13 +285,11 @@ static int udf_extract_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const cha | ||||||
| 			if (file_handle == INVALID_HANDLE_VALUE) { | 			if (file_handle == INVALID_HANDLE_VALUE) { | ||||||
| 				err = GetLastError(); | 				err = GetLastError(); | ||||||
| 				uprintf("  Unable to create file: %s\n", WindowsErrorString()); | 				uprintf("  Unable to create file: %s\n", WindowsErrorString()); | ||||||
| 				if ((err == ERROR_ACCESS_DENIED) && (safe_strcmp(&psz_fullpath[3], autorun_name) == 0)) { | 				if ((err == ERROR_ACCESS_DENIED) && (safe_strcmp(&psz_fullpath[3], autorun_name) == 0)) | ||||||
| 					uprintf("  NOTE: This may be caused by a poorly designed security solution. " | 					uprintf(stupid_antivirus); | ||||||
| 						"See http://rufus.akeo.ie/compatibility."); | 				else | ||||||
| 				} | 					goto out; | ||||||
| 				goto out; | 			} else while (i_file_length > 0) { | ||||||
| 			} |  | ||||||
| 			while (i_file_length > 0) { |  | ||||||
| 				if (FormatStatus) goto out; | 				if (FormatStatus) goto out; | ||||||
| 				memset(buf, 0, UDF_BLOCKSIZE); | 				memset(buf, 0, UDF_BLOCKSIZE); | ||||||
| 				i_read = udf_read_block(p_udf_dirent, buf, 1); | 				i_read = udf_read_block(p_udf_dirent, buf, 1); | ||||||
|  | @ -424,13 +424,11 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path) | ||||||
| 			if (file_handle == INVALID_HANDLE_VALUE) { | 			if (file_handle == INVALID_HANDLE_VALUE) { | ||||||
| 				err = GetLastError(); | 				err = GetLastError(); | ||||||
| 				uprintf("  Unable to create file: %s\n", WindowsErrorString()); | 				uprintf("  Unable to create file: %s\n", WindowsErrorString()); | ||||||
| 				if ((err == ERROR_ACCESS_DENIED) && (safe_strcmp(&psz_fullpath[3], autorun_name) == 0)) { | 				if ((err == ERROR_ACCESS_DENIED) && (safe_strcmp(&psz_fullpath[3], autorun_name) == 0)) | ||||||
| 					uprintf("  NOTE: This may be caused by a poorly designed security solution. " | 					uprintf(stupid_antivirus); | ||||||
| 						"See http://rufus.akeo.ie/compatibility."); | 				else | ||||||
| 				} | 					goto out; | ||||||
| 				goto out; | 			} else for (i=0; i_file_length>0; i++) { | ||||||
| 			} |  | ||||||
| 			for (i=0; i_file_length>0; i++) { |  | ||||||
| 				if (FormatStatus) goto out; | 				if (FormatStatus) goto out; | ||||||
| 				memset(buf, 0, ISO_BLOCKSIZE); | 				memset(buf, 0, ISO_BLOCKSIZE); | ||||||
| 				lsn = p_statbuf->lsn + (lsn_t)i; | 				lsn = p_statbuf->lsn + (lsn_t)i; | ||||||
|  |  | ||||||
|  | @ -52,6 +52,7 @@ | ||||||
| #define MAX_SECTORS_TO_CLEAR        128			// nb sectors to zap when clearing the MBR/GPT (must be >34)
 | #define MAX_SECTORS_TO_CLEAR        128			// nb sectors to zap when clearing the MBR/GPT (must be >34)
 | ||||||
| #define MBR_UEFI_MARKER             0x49464555	// 'U', 'E', 'F', 'I', as a 32 bit little endian longword
 | #define MBR_UEFI_MARKER             0x49464555	// 'U', 'E', 'F', 'I', as a 32 bit little endian longword
 | ||||||
| #define PROPOSEDLABEL_TOLERANCE     0.10 | #define PROPOSEDLABEL_TOLERANCE     0.10 | ||||||
|  | #define WRITE_RETRIES               3 | ||||||
| #define FS_DEFAULT                  FS_FAT32 | #define FS_DEFAULT                  FS_FAT32 | ||||||
| #define BADBLOCK_PATTERNS           {0xaa, 0x55, 0xff, 0x00} | #define BADBLOCK_PATTERNS           {0xaa, 0x55, 0xff, 0x00} | ||||||
| #define LARGE_FAT32_SIZE            (32*1073741824LL)	// Size at which we need to use fat32format
 | #define LARGE_FAT32_SIZE            (32*1073741824LL)	// Size at which we need to use fat32format
 | ||||||
|  |  | ||||||
							
								
								
									
										24
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL | ||||||
| 
 | 
 | ||||||
| IDD_DIALOG DIALOGEX 12, 12, 206, 329 | IDD_DIALOG DIALOGEX 12, 12, 206, 329 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||||
| CAPTION "Rufus 1.4.4.405" | CAPTION "Rufus 1.4.4.406" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,94,291,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,94,291,50,14 | ||||||
|  | @ -51,16 +51,16 @@ BEGIN | ||||||
|     GROUPBOX        "Format Options       ",IDS_FORMAT_OPTIONS_GRP,7,149,192,66 |     GROUPBOX        "Format Options       ",IDS_FORMAT_OPTIONS_GRP,7,149,192,66 | ||||||
|     LTEXT           "New volume label",IDS_LABEL_TXT,9,121,186,10 |     LTEXT           "New volume label",IDS_LABEL_TXT,9,121,186,10 | ||||||
|     EDITTEXT        IDC_LABEL,7,131,190,13,ES_AUTOHSCROLL |     EDITTEXT        IDC_LABEL,7,131,190,13,ES_AUTOHSCROLL | ||||||
|     CONTROL         "Check device for bad blocks:",IDC_BADBLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,161,101,10 |     CONTROL         "Check device for bad blocks",IDC_BADBLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,161,101,10 | ||||||
|     CONTROL         "Quick format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,173,106,10 |     CONTROL         "Quick format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,173,106,10 | ||||||
|     CONTROL         "Create a bootable disk using:",IDC_BOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,185,104,10 |     CONTROL         "Create a bootable disk using",IDC_BOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,185,104,10 | ||||||
|     CONTROL         "Create extended label and icon files",IDC_SET_ICON, |     CONTROL         "Create extended label and icon files",IDC_SET_ICON, | ||||||
|                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,198,181,10 |                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,198,181,10 | ||||||
|     CONTROL         "",IDC_PROGRESS,"msctls_progress32",PBS_SMOOTH | WS_BORDER,8,272,189,9 |     CONTROL         "",IDC_PROGRESS,"msctls_progress32",PBS_SMOOTH | WS_BORDER,8,272,189,9 | ||||||
|     COMBOBOX        IDC_NBPASSES,119,159,49,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP |     COMBOBOX        IDC_NBPASSES,119,159,49,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | ||||||
|     COMBOBOX        IDC_BOOTTYPE,119,183,49,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP |     COMBOBOX        IDC_BOOTTYPE,119,183,49,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | ||||||
|     PUSHBUTTON      "...",IDC_SELECT_ISO,171,182,22,14,BS_ICON |     PUSHBUTTON      "...",IDC_SELECT_ISO,171,182,22,14,BS_ICON | ||||||
|     CONTROL         "Use Rufus MBR with BIOS ID:",IDC_RUFUS_MBR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,248,106,10 |     CONTROL         "Use Rufus MBR with BIOS ID",IDC_RUFUS_MBR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,248,106,10 | ||||||
|     PUSHBUTTON      "",IDC_ADVANCED,63,148,14,10,BS_TOP | BS_FLAT |     PUSHBUTTON      "",IDC_ADVANCED,63,148,14,10,BS_TOP | BS_FLAT | ||||||
|     GROUPBOX        "Advanced Options",IDS_ADVANCED_OPTIONS_GRP,7,210,192,54 |     GROUPBOX        "Advanced Options",IDS_ADVANCED_OPTIONS_GRP,7,210,192,54 | ||||||
|     COMBOBOX        IDC_DISK_ID,119,246,73,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP |     COMBOBOX        IDC_DISK_ID,119,246,73,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | ||||||
|  | @ -165,7 +165,7 @@ END | ||||||
| RTL_IDD_DIALOG DIALOGEX 12, 12, 206, 329 | RTL_IDD_DIALOG DIALOGEX 12, 12, 206, 329 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||||
| EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL | EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL | ||||||
| CAPTION "Rufus 1.4.4.405" | CAPTION "Rufus 1.4.4.406" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,94,291,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,94,291,50,14 | ||||||
|  | @ -184,16 +184,16 @@ BEGIN | ||||||
|     GROUPBOX        "Format Options       ",IDS_FORMAT_OPTIONS_GRP,7,149,192,66 |     GROUPBOX        "Format Options       ",IDS_FORMAT_OPTIONS_GRP,7,149,192,66 | ||||||
|     LTEXT           "New volume label",IDS_LABEL_TXT,9,121,186,10 |     LTEXT           "New volume label",IDS_LABEL_TXT,9,121,186,10 | ||||||
|     EDITTEXT        IDC_LABEL,7,131,190,13,ES_AUTOHSCROLL |     EDITTEXT        IDC_LABEL,7,131,190,13,ES_AUTOHSCROLL | ||||||
|     CONTROL         "Check device for bad blocks:",IDC_BADBLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,161,101,10 |     CONTROL         "Check device for bad blocks",IDC_BADBLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,161,101,10 | ||||||
|     CONTROL         "Quick format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,173,106,10 |     CONTROL         "Quick format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,173,106,10 | ||||||
|     CONTROL         "Create a bootable disk using:",IDC_BOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,185,104,10 |     CONTROL         "Create a bootable disk using",IDC_BOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,185,104,10 | ||||||
|     CONTROL         "Create extended label and icon files",IDC_SET_ICON, |     CONTROL         "Create extended label and icon files",IDC_SET_ICON, | ||||||
|                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,198,181,10 |                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,198,181,10 | ||||||
|     CONTROL         "",IDC_PROGRESS,"msctls_progress32",PBS_SMOOTH | WS_BORDER,8,272,189,9 |     CONTROL         "",IDC_PROGRESS,"msctls_progress32",PBS_SMOOTH | WS_BORDER,8,272,189,9 | ||||||
|     COMBOBOX        IDC_NBPASSES,119,159,49,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP |     COMBOBOX        IDC_NBPASSES,119,159,49,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | ||||||
|     COMBOBOX        IDC_BOOTTYPE,119,183,49,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP |     COMBOBOX        IDC_BOOTTYPE,119,183,49,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | ||||||
|     PUSHBUTTON      "...",IDC_SELECT_ISO,171,182,22,14,BS_ICON |     PUSHBUTTON      "...",IDC_SELECT_ISO,171,182,22,14,BS_ICON | ||||||
|     CONTROL         "Use Rufus MBR with BIOS ID:",IDC_RUFUS_MBR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,248,106,10 |     CONTROL         "Use Rufus MBR with BIOS ID",IDC_RUFUS_MBR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,248,106,10 | ||||||
|     PUSHBUTTON      "",IDC_ADVANCED,63,148,14,10,BS_TOP | BS_FLAT |     PUSHBUTTON      "",IDC_ADVANCED,63,148,14,10,BS_TOP | BS_FLAT | ||||||
|     GROUPBOX        "Advanced Options",IDS_ADVANCED_OPTIONS_GRP,7,210,192,54 |     GROUPBOX        "Advanced Options",IDS_ADVANCED_OPTIONS_GRP,7,210,192,54 | ||||||
|     COMBOBOX        IDC_DISK_ID,119,246,73,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP |     COMBOBOX        IDC_DISK_ID,119,246,73,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | ||||||
|  | @ -427,8 +427,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 1,4,4,405 |  FILEVERSION 1,4,4,406 | ||||||
|  PRODUCTVERSION 1,4,4,405 |  PRODUCTVERSION 1,4,4,406 | ||||||
|  FILEFLAGSMASK 0x3fL |  FILEFLAGSMASK 0x3fL | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|  FILEFLAGS 0x1L |  FILEFLAGS 0x1L | ||||||
|  | @ -445,13 +445,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", "1.4.4.405" |             VALUE "FileVersion", "1.4.4.406" | ||||||
|             VALUE "InternalName", "Rufus" |             VALUE "InternalName", "Rufus" | ||||||
|             VALUE "LegalCopyright", "© 2011-2014 Pete Batard (GPL v3)" |             VALUE "LegalCopyright", "© 2011-2014 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", "1.4.4.405" |             VALUE "ProductVersion", "1.4.4.406" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue