mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[iso] add support for VMWare ESXi 5.1
* Closes #98 * Also closes #113 * Also improves on the ISO analysis report
This commit is contained in:
		
							parent
							
								
									638f7876c4
								
							
						
					
					
						commit
						13a6b6b751
					
				
					 5 changed files with 86 additions and 60 deletions
				
			
		
							
								
								
									
										49
									
								
								src/iso.c
									
										
									
									
									
								
							
							
						
						
									
										49
									
								
								src/iso.c
									
										
									
									
									
								
							|  | @ -58,10 +58,10 @@ static const char* psz_extract_dir; | ||||||
| static const char* bootmgr_name = "bootmgr"; | static const char* bootmgr_name = "bootmgr"; | ||||||
| static const char* ldlinux_name = "ldlinux.sys"; | static const char* ldlinux_name = "ldlinux.sys"; | ||||||
| static const char* isolinux_name[] = { "isolinux.cfg", "syslinux.cfg", "extlinux.conf"}; | static const char* isolinux_name[] = { "isolinux.cfg", "syslinux.cfg", "extlinux.conf"}; | ||||||
| static const char* vesamenu_name = "vesamenu.c32"; |  | ||||||
| static const char* pe_dirname[] = { "/i386", "/minint" }; | 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 int64_t old_vesamenu_threshold = 145000; | static 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 uint8_t i_joliet_level = 0; | static uint8_t i_joliet_level = 0; | ||||||
| static uint64_t total_blocks, nb_blocks; | static uint64_t total_blocks, nb_blocks; | ||||||
| static BOOL scan_only = FALSE; | static BOOL scan_only = FALSE; | ||||||
|  | @ -102,7 +102,7 @@ static void log_handler (cdio_log_level_t level, const char *message) | ||||||
|  * Scan and set ISO properties |  * Scan and set ISO properties | ||||||
|  * Returns true if the the current file does not need to be processed further |  * Returns true if the the current file does not need to be processed further | ||||||
|  */ |  */ | ||||||
| static __inline BOOL check_iso_props(const char* psz_dirname, BOOL* is_syslinux_cfg, BOOL* is_old_vesamenu,  | static __inline BOOL check_iso_props(const char* psz_dirname, BOOL* is_syslinux_cfg, BOOL* is_old_c32,  | ||||||
| 	int64_t i_file_length, const char* psz_basename, const char* psz_fullpath) | 	int64_t i_file_length, const char* psz_basename, const char* psz_fullpath) | ||||||
| { | { | ||||||
| 	size_t i, j; | 	size_t i, j; | ||||||
|  | @ -114,10 +114,11 @@ static __inline BOOL check_iso_props(const char* psz_dirname, BOOL* is_syslinux_ | ||||||
| 			*is_syslinux_cfg = TRUE; | 			*is_syslinux_cfg = TRUE; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Check for an old vesamenu.c32 file anywhere
 | 	// Check for an old incompatible c32 file anywhere
 | ||||||
| 	*is_old_vesamenu = FALSE; | 	for (i=0; i<NB_OLD_C32; i++) { | ||||||
| 	if ((safe_stricmp(psz_basename, vesamenu_name) == 0) && (i_file_length <= old_vesamenu_threshold)) { | 		is_old_c32[i] = FALSE; | ||||||
| 		*is_old_vesamenu = TRUE; | 		if ((safe_stricmp(psz_basename, old_c32_name[i]) == 0) && (i_file_length <= old_c32_threshold[i])) | ||||||
|  | 			is_old_c32[i] = TRUE; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (scan_only) { | 	if (scan_only) { | ||||||
|  | @ -137,8 +138,10 @@ static __inline BOOL check_iso_props(const char* psz_dirname, BOOL* is_syslinux_ | ||||||
| 			// Maintain a list of all the isolinux/syslinux configs identified so far
 | 			// Maintain a list of all the isolinux/syslinux configs identified so far
 | ||||||
| 			StrArrayAdd(&config_path, psz_fullpath); | 			StrArrayAdd(&config_path, psz_fullpath); | ||||||
| 		} | 		} | ||||||
| 		if (*is_old_vesamenu) | 		for (i=0; i<NB_OLD_C32; i++) { | ||||||
| 			iso_report.has_old_vesamenu = TRUE; | 			if (is_old_c32[i]) | ||||||
|  | 				iso_report.has_old_c32[i] = TRUE; | ||||||
|  | 		} | ||||||
| 		if (i_file_length >= FOUR_GIGABYTES) | 		if (i_file_length >= FOUR_GIGABYTES) | ||||||
| 			iso_report.has_4GB_file = TRUE; | 			iso_report.has_4GB_file = TRUE; | ||||||
| 		// Compute projected size needed
 | 		// Compute projected size needed
 | ||||||
|  | @ -161,7 +164,7 @@ static int udf_extract_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const cha | ||||||
| { | { | ||||||
| 	HANDLE file_handle = NULL; | 	HANDLE file_handle = NULL; | ||||||
| 	DWORD buf_size, wr_size; | 	DWORD buf_size, wr_size; | ||||||
| 	BOOL r, is_syslinux_cfg, is_old_vesamenu; | 	BOOL r, is_syslinux_cfg, is_old_c32[NB_OLD_C32]; | ||||||
| 	int i_length; | 	int i_length; | ||||||
| 	size_t i, nul_pos; | 	size_t i, nul_pos; | ||||||
| 	char* psz_fullpath = NULL; | 	char* psz_fullpath = NULL; | ||||||
|  | @ -195,7 +198,7 @@ static int udf_extract_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const cha | ||||||
| 			} | 			} | ||||||
| 		} else { | 		} else { | ||||||
| 			i_file_length = udf_get_file_length(p_udf_dirent); | 			i_file_length = udf_get_file_length(p_udf_dirent); | ||||||
| 			if (check_iso_props(psz_path, &is_syslinux_cfg, &is_old_vesamenu, i_file_length, psz_basename, psz_fullpath)) { | 			if (check_iso_props(psz_path, &is_syslinux_cfg, is_old_c32, i_file_length, psz_basename, psz_fullpath)) { | ||||||
| 				safe_free(psz_fullpath); | 				safe_free(psz_fullpath); | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
|  | @ -207,13 +210,17 @@ static int udf_extract_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const cha | ||||||
| 			SetWindowTextU(hISOFileName, psz_fullpath); | 			SetWindowTextU(hISOFileName, psz_fullpath); | ||||||
| 			// Remove the appended size for extraction
 | 			// Remove the appended size for extraction
 | ||||||
| 			psz_fullpath[nul_pos] = 0; | 			psz_fullpath[nul_pos] = 0; | ||||||
| 			if (is_old_vesamenu && use_own_vesamenu) { | 			for (i=0; i<NB_OLD_C32; i++) { | ||||||
| 				if (CopyFileA("vesamenu.c32", psz_fullpath, FALSE)) { | 				if (is_old_c32[i] && use_own_c32[i]) { | ||||||
|  | 					if (CopyFileA(old_c32_name[i], psz_fullpath, FALSE)) { | ||||||
| 						uprintf("  Replaced with local version\n"); | 						uprintf("  Replaced with local version\n"); | ||||||
| 					continue; | 						break; | ||||||
| 					} | 					} | ||||||
| 					uprintf("  Could not replace file: %s\n", WindowsErrorString()); | 					uprintf("  Could not replace file: %s\n", WindowsErrorString()); | ||||||
| 				} | 				} | ||||||
|  | 			} | ||||||
|  | 			if (i < NB_OLD_C32) | ||||||
|  | 				continue; | ||||||
| 			file_handle = CreateFileU(psz_fullpath, GENERIC_READ | GENERIC_WRITE, | 			file_handle = CreateFileU(psz_fullpath, GENERIC_READ | GENERIC_WRITE, | ||||||
| 				FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); | 				FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); | ||||||
| 			if (file_handle == INVALID_HANDLE_VALUE) { | 			if (file_handle == INVALID_HANDLE_VALUE) { | ||||||
|  | @ -270,7 +277,7 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path) | ||||||
| { | { | ||||||
| 	HANDLE file_handle = NULL; | 	HANDLE file_handle = NULL; | ||||||
| 	DWORD buf_size, wr_size; | 	DWORD buf_size, wr_size; | ||||||
| 	BOOL s, is_syslinux_cfg, is_old_vesamenu; | 	BOOL s, is_syslinux_cfg, is_old_c32[NB_OLD_C32]; | ||||||
| 	int i_length, r = 1; | 	int i_length, r = 1; | ||||||
| 	char psz_fullpath[1024], *psz_basename; | 	char psz_fullpath[1024], *psz_basename; | ||||||
| 	const char *psz_iso_name = &psz_fullpath[strlen(psz_extract_dir)]; | 	const char *psz_iso_name = &psz_fullpath[strlen(psz_extract_dir)]; | ||||||
|  | @ -310,7 +317,7 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path) | ||||||
| 				goto out; | 				goto out; | ||||||
| 		} else { | 		} else { | ||||||
| 			i_file_length = p_statbuf->size; | 			i_file_length = p_statbuf->size; | ||||||
| 			if (check_iso_props(psz_path, &is_syslinux_cfg, &is_old_vesamenu, i_file_length, psz_basename, psz_fullpath)) { | 			if (check_iso_props(psz_path, &is_syslinux_cfg, is_old_c32, i_file_length, psz_basename, psz_fullpath)) { | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 			// Replace slashes with backslashes and append the size to the path for UI display
 | 			// Replace slashes with backslashes and append the size to the path for UI display
 | ||||||
|  | @ -322,13 +329,17 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path) | ||||||
| 			// ISO9660 cannot handle backslashes
 | 			// ISO9660 cannot handle backslashes
 | ||||||
| 			for (i=0; i<nul_pos; i++) if (psz_fullpath[i] == '\\') psz_fullpath[i] = '/'; | 			for (i=0; i<nul_pos; i++) if (psz_fullpath[i] == '\\') psz_fullpath[i] = '/'; | ||||||
| 			psz_fullpath[nul_pos] = 0; | 			psz_fullpath[nul_pos] = 0; | ||||||
| 			if (is_old_vesamenu && use_own_vesamenu) { | 			for (i=0; i<NB_OLD_C32; i++) { | ||||||
| 				if (CopyFileA("vesamenu.c32", psz_fullpath, FALSE)) { | 				if (is_old_c32[i] && use_own_c32[i]) { | ||||||
|  | 					if (CopyFileA(old_c32_name[i], psz_fullpath, FALSE)) { | ||||||
| 						uprintf("  Replaced with local version\n"); | 						uprintf("  Replaced with local version\n"); | ||||||
| 					continue; | 						break; | ||||||
| 					} | 					} | ||||||
| 					uprintf("  Could not replace file: %s\n", WindowsErrorString()); | 					uprintf("  Could not replace file: %s\n", WindowsErrorString()); | ||||||
| 				} | 				} | ||||||
|  | 			} | ||||||
|  | 			if (i < NB_OLD_C32) | ||||||
|  | 				continue; | ||||||
| 			file_handle = CreateFileU(psz_fullpath, GENERIC_READ | GENERIC_WRITE, | 			file_handle = CreateFileU(psz_fullpath, GENERIC_READ | GENERIC_WRITE, | ||||||
| 				FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); | 				FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); | ||||||
| 			if (file_handle == INVALID_HANDLE_VALUE) { | 			if (file_handle == INVALID_HANDLE_VALUE) { | ||||||
|  |  | ||||||
|  | @ -81,7 +81,7 @@ static wchar_t* get_token_data_line(const wchar_t* wtoken, wchar_t* wline) | ||||||
| 	// locate end of string or quote
 | 	// locate end of string or quote
 | ||||||
| 	while ( (wline[i] != 0) && ((wline[i] != L'"') || ((wline[i] == L'"') && (!quoteth))) ) | 	while ( (wline[i] != 0) && ((wline[i] != L'"') || ((wline[i] == L'"') && (!quoteth))) ) | ||||||
| 		i++; | 		i++; | ||||||
| 	wline[i] = 0; | 	wline[i--] = 0; | ||||||
| 
 | 
 | ||||||
| 	// Eliminate trailing EOL characters
 | 	// Eliminate trailing EOL characters
 | ||||||
| 	while ((i>=r) && ((wline[i] == L'\r') || (wline[i] == L'\n'))) | 	while ((i>=r) && ((wline[i] == L'\r') || (wline[i] == L'\n'))) | ||||||
|  |  | ||||||
							
								
								
									
										44
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										44
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -103,7 +103,7 @@ float fScale = 1.0f; | ||||||
| int default_fs; | int default_fs; | ||||||
| HWND hDeviceList, hCapacity, hFileSystem, hClusterSize, hLabel, hDOSType, hNBPasses, hLog = NULL; | HWND hDeviceList, hCapacity, hFileSystem, hClusterSize, hLabel, hDOSType, hNBPasses, hLog = NULL; | ||||||
| HWND hISOProgressDlg = NULL, hLogDlg = NULL, hISOProgressBar, hISOFileName, hDiskID; | HWND hISOProgressDlg = NULL, hLogDlg = NULL, hISOProgressBar, hISOFileName, hDiskID; | ||||||
| BOOL use_own_vesamenu = FALSE, detect_fakes = TRUE, mbr_selected_by_user = FALSE; | BOOL use_own_c32[NB_OLD_C32] = {FALSE, FALSE}, detect_fakes = TRUE, mbr_selected_by_user = FALSE; | ||||||
| BOOL iso_op_in_progress = FALSE, format_op_in_progress = FALSE; | BOOL iso_op_in_progress = FALSE, format_op_in_progress = FALSE; | ||||||
| int dialog_showing = 0; | int dialog_showing = 0; | ||||||
| uint16_t rufus_version[4]; | uint16_t rufus_version[4]; | ||||||
|  | @ -1247,7 +1247,9 @@ DWORD WINAPI ISOScanThread(LPVOID param) | ||||||
| { | { | ||||||
| 	int i; | 	int i; | ||||||
| 	FILE* fd; | 	FILE* fd; | ||||||
| 	const char* vesamenu_filename = "vesamenu.c32"; | 	const char* old_c32_name[NB_OLD_C32] = OLD_C32_NAMES; | ||||||
|  | 	const char* new_c32_url[NB_OLD_C32] = NEW_C32_URL; | ||||||
|  | 	char msg[1024], msg_title[32]; | ||||||
| 
 | 
 | ||||||
| 	if (iso_path == NULL) | 	if (iso_path == NULL) | ||||||
| 		goto out; | 		goto out; | ||||||
|  | @ -1258,10 +1260,14 @@ DWORD WINAPI ISOScanThread(LPVOID param) | ||||||
| 		safe_free(iso_path); | 		safe_free(iso_path); | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
| 	uprintf("ISO label: '%s'\r\n size: %lld bytes, 4GB:%c, bootmgr:%c, winpe:%c (/minint:%c), isolinux:%c, old vesa:%c\n", | 	uprintf("ISO label: '%s'\r\n  Size: %lld bytes\r\n  Has a >4GB file: %s\r\n  Uses Bootmgr: %s\r\n  Uses WinPE: %s%s\r\n  Uses isolinux: %s\n", | ||||||
| 		iso_report.label, iso_report.projected_size, iso_report.has_4GB_file?'Y':'N', | 		iso_report.label, iso_report.projected_size, iso_report.has_4GB_file?"Yes":"No", iso_report.has_bootmgr?"Yes":"No", | ||||||
| 		iso_report.has_bootmgr?'Y':'N', IS_WINPE(iso_report.winpe)?'Y':'N', (iso_report.uses_minint)?'Y':'N', | 		IS_WINPE(iso_report.winpe)?"Yes":"No", (iso_report.uses_minint)?" (with /minint)":"", iso_report.has_isolinux?"Yes":"No"); | ||||||
| 		iso_report.has_isolinux?'Y':'N', iso_report.has_old_vesamenu?'Y':'N'); | 	if (iso_report.has_isolinux) { | ||||||
|  | 		for (i=0; i<NB_OLD_C32; i++) { | ||||||
|  | 			uprintf("    With an old %s: %s\n", old_c32_name[i], iso_report.has_old_c32[i]?"Yes":"No"); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	if ((!iso_report.has_bootmgr) && (!iso_report.has_isolinux) && (!IS_WINPE(iso_report.winpe))) { | 	if ((!iso_report.has_bootmgr) && (!iso_report.has_isolinux) && (!IS_WINPE(iso_report.winpe))) { | ||||||
| 		MessageBoxU(hMainDialog, "This version of Rufus only supports bootable ISOs\n" | 		MessageBoxU(hMainDialog, "This version of Rufus only supports bootable ISOs\n" | ||||||
| 			"based on 'bootmgr/WinPE' or 'isolinux'.\n" | 			"based on 'bootmgr/WinPE' or 'isolinux'.\n" | ||||||
|  | @ -1269,29 +1275,31 @@ DWORD WINAPI ISOScanThread(LPVOID param) | ||||||
| 		safe_free(iso_path); | 		safe_free(iso_path); | ||||||
| 		SetMBRProps(); | 		SetMBRProps(); | ||||||
| 	} else { | 	} else { | ||||||
| 		if (iso_report.has_old_vesamenu) { | 		for(i=0; i<NB_OLD_C32; i++) { | ||||||
| 			fd = fopen(vesamenu_filename, "rb"); | 			if (iso_report.has_old_c32[i]) { | ||||||
|  | 				fd = fopen(old_c32_name[i], "rb"); | ||||||
| 				if (fd != NULL) { | 				if (fd != NULL) { | ||||||
| 					// If a file already exists in the current directory, use that one
 | 					// If a file already exists in the current directory, use that one
 | ||||||
| 				uprintf("Will replace obsolete '%s' from ISO with the one found in current directory\n", vesamenu_filename); | 					uprintf("Will replace obsolete '%s' from ISO with the one found in current directory\n", old_c32_name[i]); | ||||||
| 					fclose(fd); | 					fclose(fd); | ||||||
| 				use_own_vesamenu = TRUE; | 					use_own_c32[i] = TRUE; | ||||||
| 				} else { | 				} else { | ||||||
| 				PrintStatus(0, FALSE, "Obsolete vesamenu.c32 detected"); | 					PrintStatus(0, FALSE, "Obsolete %s detected", old_c32_name[i]); | ||||||
| 				if (MessageBoxA(hMainDialog, | 					safe_sprintf(msg, sizeof(msg), "This ISO image seems to use an obsolete version of %s\n" | ||||||
| 					"This ISO image seems to use an obsolete version of vesamenu.c32\n" |  | ||||||
| 						"that may prevent boot menus from displaying properly...\n\n" | 						"that may prevent boot menus from displaying properly...\n\n" | ||||||
| 						"Rufus can fix this issue by downloading a newer version for you:\n" | 						"Rufus can fix this issue by downloading a newer version for you:\n" | ||||||
| 						"- Select 'Yes' to connect to the internet and replace the file.\n" | 						"- Select 'Yes' to connect to the internet and replace the file.\n" | ||||||
| 						"- Select 'No' to leave the existing ISO file unmodified.\n" | 						"- Select 'No' to leave the existing ISO file unmodified.\n" | ||||||
| 						"If you don't know what to do, you should select 'Yes'.\n\n" | 						"If you don't know what to do, you should select 'Yes'.\n\n" | ||||||
| 						"Note: the file will be downloaded in the current directory. Once a\n" | 						"Note: the file will be downloaded in the current directory. Once a\n" | ||||||
| 					"vesamenu.c32 exists there, it will always be used as replacement.\n", "Replace vesamenu.c32?", | 						"%s exists there, it will always be used as replacement.\n", old_c32_name[i], old_c32_name[i]); | ||||||
| 					MB_YESNO|MB_ICONWARNING) == IDYES) { | 					safe_sprintf(msg_title, sizeof(msg_title), "Replace %s?", old_c32_name[i]); | ||||||
|  | 					if (MessageBoxA(hMainDialog, msg, msg_title, MB_YESNO|MB_ICONWARNING) == IDYES) { | ||||||
| 						SetWindowTextU(hISOProgressDlg, "Downloading file..."); | 						SetWindowTextU(hISOProgressDlg, "Downloading file..."); | ||||||
| 					SetWindowTextU(hISOFileName, VESAMENU_URL); | 						SetWindowTextU(hISOFileName, new_c32_url[i]); | ||||||
| 					if (DownloadFile(VESAMENU_URL, vesamenu_filename, hISOProgressDlg)) | 						if (DownloadFile(new_c32_url[i], old_c32_name[i], hISOProgressDlg)) | ||||||
| 						use_own_vesamenu = TRUE; | 							use_own_c32[i] = TRUE; | ||||||
|  | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
							
								
								
									
										11
									
								
								src/rufus.h
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								src/rufus.h
									
										
									
									
									
								
							|  | @ -43,7 +43,6 @@ | ||||||
| #define WHITE                       RGB(255,255,255) | #define WHITE                       RGB(255,255,255) | ||||||
| #define SEPARATOR_GREY              RGB(223,223,223) | #define SEPARATOR_GREY              RGB(223,223,223) | ||||||
| #define RUFUS_URL                   "http://rufus.akeo.ie"
 | #define RUFUS_URL                   "http://rufus.akeo.ie"
 | ||||||
| #define VESAMENU_URL                "http://cloud.github.com/downloads/pbatard/rufus/vesamenu.c32"
 |  | ||||||
| #define IGNORE_RETVAL(expr)         do { (void)(expr); } while(0) | #define IGNORE_RETVAL(expr)         do { (void)(expr); } while(0) | ||||||
| #ifndef ARRAYSIZE | #ifndef ARRAYSIZE | ||||||
| #define ARRAYSIZE(A)                (sizeof(A)/sizeof((A)[0])) | #define ARRAYSIZE(A)                (sizeof(A)/sizeof((A)[0])) | ||||||
|  | @ -157,10 +156,17 @@ typedef struct { | ||||||
| 	} ClusterSize[FS_MAX]; | 	} ClusterSize[FS_MAX]; | ||||||
| } RUFUS_DRIVE_INFO; | } RUFUS_DRIVE_INFO; | ||||||
| 
 | 
 | ||||||
|  | /* Special handling for old .c32 files we need to replace */ | ||||||
|  | #define NB_OLD_C32          2 | ||||||
|  | #define OLD_C32_NAMES       {"menu.c32", "vesamenu.c32"} | ||||||
|  | #define OLD_C32_THRESHOLD   {53500, 145000} | ||||||
|  | #define NEW_C32_URL         {RUFUS_URL "/downloads/menu.c32", RUFUS_URL "/downloads/vesamenu.c32"} | ||||||
|  | 
 | ||||||
| /* ISO details that the application may want */ | /* ISO details that the application may want */ | ||||||
| #define WINPE_MININT    0x2A | #define WINPE_MININT    0x2A | ||||||
| #define WINPE_I386      0x15 | #define WINPE_I386      0x15 | ||||||
| #define IS_WINPE(r)     (((r&WINPE_MININT) == WINPE_MININT)||((r&WINPE_I386) == WINPE_I386)) | #define IS_WINPE(r)     (((r&WINPE_MININT) == WINPE_MININT)||((r&WINPE_I386) == WINPE_I386)) | ||||||
|  | 
 | ||||||
| typedef struct { | typedef struct { | ||||||
| 	char label[192];		/* 3*64 to account for UTF-8 */ | 	char label[192];		/* 3*64 to account for UTF-8 */ | ||||||
| 	char usb_label[192];	/* converted USB label for workaround */ | 	char usb_label[192];	/* converted USB label for workaround */ | ||||||
|  | @ -171,6 +177,7 @@ typedef struct { | ||||||
| 	BOOL has_bootmgr; | 	BOOL has_bootmgr; | ||||||
| 	BOOL has_isolinux; | 	BOOL has_isolinux; | ||||||
| 	BOOL has_autorun; | 	BOOL has_autorun; | ||||||
|  | 	BOOL has_old_c32[NB_OLD_C32]; | ||||||
| 	BOOL has_old_vesamenu; | 	BOOL has_old_vesamenu; | ||||||
| 	BOOL uses_minint; | 	BOOL uses_minint; | ||||||
| } RUFUS_ISO_REPORT; | } RUFUS_ISO_REPORT; | ||||||
|  | @ -217,7 +224,7 @@ extern char* iso_path; | ||||||
| extern DWORD FormatStatus; | extern DWORD FormatStatus; | ||||||
| extern RUFUS_DRIVE_INFO SelectedDrive; | extern RUFUS_DRIVE_INFO SelectedDrive; | ||||||
| extern const int nb_steps[FS_MAX]; | extern const int nb_steps[FS_MAX]; | ||||||
| extern BOOL use_own_vesamenu, detect_fakes, iso_op_in_progress, format_op_in_progress; | extern BOOL use_own_c32[NB_OLD_C32], detect_fakes, iso_op_in_progress, format_op_in_progress; | ||||||
| extern RUFUS_ISO_REPORT iso_report; | extern RUFUS_ISO_REPORT iso_report; | ||||||
| extern int64_t iso_blocking_status; | extern int64_t iso_blocking_status; | ||||||
| extern uint16_t rufus_version[4]; | extern uint16_t rufus_version[4]; | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -30,7 +30,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL | ||||||
| IDD_DIALOG DIALOGEX 12, 12, 206, 316 | IDD_DIALOG DIALOGEX 12, 12, 206, 316 | ||||||
| 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_APPWINDOW | EXSTYLE WS_EX_APPWINDOW | ||||||
| CAPTION "Rufus v1.3.0.210" | CAPTION "Rufus v1.3.0.211" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,94,278,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,94,278,50,14 | ||||||
|  | @ -274,8 +274,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 1,3,0,210 |  FILEVERSION 1,3,0,211 | ||||||
|  PRODUCTVERSION 1,3,0,210 |  PRODUCTVERSION 1,3,0,211 | ||||||
|  FILEFLAGSMASK 0x3fL |  FILEFLAGSMASK 0x3fL | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|  FILEFLAGS 0x1L |  FILEFLAGS 0x1L | ||||||
|  | @ -292,13 +292,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.3.0.210" |             VALUE "FileVersion", "1.3.0.211" | ||||||
|             VALUE "InternalName", "Rufus" |             VALUE "InternalName", "Rufus" | ||||||
|             VALUE "LegalCopyright", "(c) 2011-2012 Pete Batard (GPL v3)" |             VALUE "LegalCopyright", "(c) 2011-2012 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.3.0.210" |             VALUE "ProductVersion", "1.3.0.211" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue