mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[core] add x86_32 boot for UEFI:NTFS
* NB: This increases the compressed executable size by 25K :( * Also set rufus-next to 2.1
This commit is contained in:
		
							parent
							
								
									af965e8ff9
								
							
						
					
					
						commit
						66edd53b2c
					
				
					 10 changed files with 58 additions and 54 deletions
				
			
		
							
								
								
									
										20
									
								
								configure
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								configure
									
										
									
									
										vendored
									
									
								
							|  | @ -1,6 +1,6 @@ | ||||||
| #! /bin/sh | #! /bin/sh | ||||||
| # Guess values for system-dependent variables and create Makefiles. | # Guess values for system-dependent variables and create Makefiles. | ||||||
| # Generated by GNU Autoconf 2.69 for rufus 2.0. | # Generated by GNU Autoconf 2.69 for rufus 2.1. | ||||||
| # | # | ||||||
| # Report bugs to <https://github.com/pbatard/rufus/issues>. | # Report bugs to <https://github.com/pbatard/rufus/issues>. | ||||||
| # | # | ||||||
|  | @ -580,8 +580,8 @@ MAKEFLAGS= | ||||||
| # Identity of this package. | # Identity of this package. | ||||||
| PACKAGE_NAME='rufus' | PACKAGE_NAME='rufus' | ||||||
| PACKAGE_TARNAME='rufus' | PACKAGE_TARNAME='rufus' | ||||||
| PACKAGE_VERSION='2.0' | PACKAGE_VERSION='2.1' | ||||||
| PACKAGE_STRING='rufus 2.0' | PACKAGE_STRING='rufus 2.1' | ||||||
| PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues' | PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues' | ||||||
| PACKAGE_URL='http://rufus.akeo.ie' | PACKAGE_URL='http://rufus.akeo.ie' | ||||||
| 
 | 
 | ||||||
|  | @ -1227,7 +1227,7 @@ if test "$ac_init_help" = "long"; then | ||||||
|   # Omit some internal or obsolete options to make the list less imposing. |   # Omit some internal or obsolete options to make the list less imposing. | ||||||
|   # This message is too long to be a string in the A/UX 3.1 sh. |   # This message is too long to be a string in the A/UX 3.1 sh. | ||||||
|   cat <<_ACEOF |   cat <<_ACEOF | ||||||
| \`configure' configures rufus 2.0 to adapt to many kinds of systems. | \`configure' configures rufus 2.1 to adapt to many kinds of systems. | ||||||
| 
 | 
 | ||||||
| Usage: $0 [OPTION]... [VAR=VALUE]... | Usage: $0 [OPTION]... [VAR=VALUE]... | ||||||
| 
 | 
 | ||||||
|  | @ -1293,7 +1293,7 @@ fi | ||||||
| 
 | 
 | ||||||
| if test -n "$ac_init_help"; then | if test -n "$ac_init_help"; then | ||||||
|   case $ac_init_help in |   case $ac_init_help in | ||||||
|      short | recursive ) echo "Configuration of rufus 2.0:";; |      short | recursive ) echo "Configuration of rufus 2.1:";; | ||||||
|    esac |    esac | ||||||
|   cat <<\_ACEOF |   cat <<\_ACEOF | ||||||
| 
 | 
 | ||||||
|  | @ -1383,7 +1383,7 @@ fi | ||||||
| test -n "$ac_init_help" && exit $ac_status | test -n "$ac_init_help" && exit $ac_status | ||||||
| if $ac_init_version; then | if $ac_init_version; then | ||||||
|   cat <<\_ACEOF |   cat <<\_ACEOF | ||||||
| rufus configure 2.0 | rufus configure 2.1 | ||||||
| generated by GNU Autoconf 2.69 | generated by GNU Autoconf 2.69 | ||||||
| 
 | 
 | ||||||
| Copyright (C) 2012 Free Software Foundation, Inc. | Copyright (C) 2012 Free Software Foundation, Inc. | ||||||
|  | @ -1438,7 +1438,7 @@ cat >config.log <<_ACEOF | ||||||
| This file contains any messages produced by compilers while | This file contains any messages produced by compilers while | ||||||
| running configure, to aid debugging if configure makes a mistake. | running configure, to aid debugging if configure makes a mistake. | ||||||
| 
 | 
 | ||||||
| It was created by rufus $as_me 2.0, which was | It was created by rufus $as_me 2.1, which was | ||||||
| generated by GNU Autoconf 2.69.  Invocation command line was | generated by GNU Autoconf 2.69.  Invocation command line was | ||||||
| 
 | 
 | ||||||
|   $ $0 $@ |   $ $0 $@ | ||||||
|  | @ -2301,7 +2301,7 @@ fi | ||||||
| 
 | 
 | ||||||
| # Define the identity of the package. | # Define the identity of the package. | ||||||
|  PACKAGE='rufus' |  PACKAGE='rufus' | ||||||
|  VERSION='2.0' |  VERSION='2.1' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| cat >>confdefs.h <<_ACEOF | cat >>confdefs.h <<_ACEOF | ||||||
|  | @ -4466,7 +4466,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||||||
| # report actual input values of CONFIG_FILES etc. instead of their | # report actual input values of CONFIG_FILES etc. instead of their | ||||||
| # values after options handling. | # values after options handling. | ||||||
| ac_log=" | ac_log=" | ||||||
| This file was extended by rufus $as_me 2.0, which was | This file was extended by rufus $as_me 2.1, which was | ||||||
| generated by GNU Autoconf 2.69.  Invocation command line was | generated by GNU Autoconf 2.69.  Invocation command line was | ||||||
| 
 | 
 | ||||||
|   CONFIG_FILES    = $CONFIG_FILES |   CONFIG_FILES    = $CONFIG_FILES | ||||||
|  | @ -4520,7 +4520,7 @@ _ACEOF | ||||||
| cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||||||
| ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" | ||||||
| ac_cs_version="\\ | ac_cs_version="\\ | ||||||
| rufus config.status 2.0 | rufus config.status 2.1 | ||||||
| configured by $0, generated by GNU Autoconf 2.69, | configured by $0, generated by GNU Autoconf 2.69, | ||||||
|   with options \\"\$ac_cs_config\\" |   with options \\"\$ac_cs_config\\" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| AC_INIT([rufus], [2.0], [https://github.com/pbatard/rufus/issues], [rufus], [http://rufus.akeo.ie]) | AC_INIT([rufus], [2.1], [https://github.com/pbatard/rufus/issues], [rufus], [http://rufus.akeo.ie]) | ||||||
| AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies]) | AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies]) | ||||||
| AC_CONFIG_SRCDIR([src/rufus.c]) | AC_CONFIG_SRCDIR([src/rufus.c]) | ||||||
| AC_CONFIG_MACRO_DIR([m4]) | AC_CONFIG_MACRO_DIR([m4]) | ||||||
|  |  | ||||||
|  | @ -1,12 +1,16 @@ | ||||||
| This directory contains a flat image of the FAT UEFI:TOGO partition added by | This directory contains a flat image of the FAT UEFI:NTFS partition added by | ||||||
| Rufus for Windows To Go UEFI mode support as well as seamless installation of | Rufus for NTFS UEFI boot support. See https://github.com/pbatard/uefi-ntfs. | ||||||
| Windows in UEFI, in the case where the original media contains a >4GB file. |  | ||||||
| 
 | 
 | ||||||
| This image, which you can mount as FAT filesystem or open in 7-zip, contains | This image, which you can mount as FAT filesystem or open in 7-zip, contains | ||||||
| the following data: | the following data: | ||||||
| o The NTFS UEFI driver from efifs (https://github.com/pbatard/efifs) which was | o The NTFS UEFI drivers from efifs (https://github.com/pbatard/efifs) which were | ||||||
|   compiled, with compression disabled, using Visual Studio 2013 Community Edition. |   compiled, with compression disabled, using Visual Studio 2013 Community Edition. | ||||||
|   This is the \EFI\Rufus\ntfs_x64.efi file. |   These are the \EFI\Rufus\ntfs_[x32|x64].efi files. | ||||||
| o The UEFI:TOGO binary (https://github.com/pbatard/uefi-togo), which was compiled | o The UEFI:NTFS binaries (https://github.com/pbatard/uefi-ntfs), which were also | ||||||
|   using Visual Studio 2013 Community Edition. |   compiled using Visual Studio 2013 Community Edition. | ||||||
|   This is the \EFI\Boot\bootx64.efi file. |   These are the \EFI\Boot\boot[ia32|x64].efi files. | ||||||
|  | 
 | ||||||
|  | The FAT partition was created on Debian GNU/Linux using the following commands | ||||||
|  |   dd if=/dev/zero of=uefi-togo.img bs=512 count=512 | ||||||
|  |   mkfs.vfat uefi-ntfs.img | ||||||
|  | and then mounting the `uefi-ntfs.img` and copying the relevant files. | ||||||
|  |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								res/uefi/uefi-ntfs.img
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								res/uefi/uefi-ntfs.img
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										44
									
								
								src/drive.c
									
										
									
									
									
								
							
							
						
						
									
										44
									
								
								src/drive.c
									
										
									
									
									
								
							|  | @ -54,7 +54,7 @@ const GUID PARTITION_SYSTEM_GUID = | ||||||
|  * Globals |  * Globals | ||||||
|  */ |  */ | ||||||
| RUFUS_DRIVE_INFO SelectedDrive; | RUFUS_DRIVE_INFO SelectedDrive; | ||||||
| size_t uefi_togo_size = 0; | size_t uefi_ntfs_size = 0; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * The following methods get or set the AutoMount setting (which is different from AutoRun) |  * The following methods get or set the AutoMount setting (which is different from AutoRun) | ||||||
|  | @ -656,7 +656,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys | ||||||
| { | { | ||||||
| 	// MBR partition types that can be mounted in Windows
 | 	// MBR partition types that can be mounted in Windows
 | ||||||
| 	const uint8_t mbr_mountable[] = { 0x01, 0x04, 0x06, 0x07, 0x0b, 0x0c, 0x0e, 0xef }; | 	const uint8_t mbr_mountable[] = { 0x01, 0x04, 0x06, 0x07, 0x0b, 0x0c, 0x0e, 0xef }; | ||||||
| 	BOOL r, ret = FALSE, isUefiTogo = FALSE; | 	BOOL r, ret = FALSE, isUefiNtfs = FALSE; | ||||||
| 	HANDLE hPhysical; | 	HANDLE hPhysical; | ||||||
| 	DWORD size; | 	DWORD size; | ||||||
| 	BYTE geometry[256] = {0}, layout[4096] = {0}, part_type; | 	BYTE geometry[256] = {0}, layout[4096] = {0}, part_type; | ||||||
|  | @ -682,8 +682,8 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys | ||||||
| 	if (hPhysical == INVALID_HANDLE_VALUE) | 	if (hPhysical == INVALID_HANDLE_VALUE) | ||||||
| 		return 0; | 		return 0; | ||||||
| 
 | 
 | ||||||
| 	if (uefi_togo_size == 0) | 	if (uefi_ntfs_size == 0) | ||||||
| 		uefi_togo_size = GetResourceSize(hMainInstance, MAKEINTRESOURCEA(IDR_UEFI_TOGO), _RT_RCDATA, "uefi-togo.img"); | 		uefi_ntfs_size = GetResourceSize(hMainInstance, MAKEINTRESOURCEA(IDR_UEFI_NTFS), _RT_RCDATA, "uefi-ntfs.img"); | ||||||
| 
 | 
 | ||||||
| 	r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, | 	r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, | ||||||
| 			NULL, 0, geometry, sizeof(geometry), &size, NULL); | 			NULL, 0, geometry, sizeof(geometry), &size, NULL); | ||||||
|  | @ -731,9 +731,9 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys | ||||||
| 		for (i=0; i<DriveLayout->PartitionCount; i++) { | 		for (i=0; i<DriveLayout->PartitionCount; i++) { | ||||||
| 			if (DriveLayout->PartitionEntry[i].Mbr.PartitionType != PARTITION_ENTRY_UNUSED) { | 			if (DriveLayout->PartitionEntry[i].Mbr.PartitionType != PARTITION_ENTRY_UNUSED) { | ||||||
| 				part_type = DriveLayout->PartitionEntry[i].Mbr.PartitionType; | 				part_type = DriveLayout->PartitionEntry[i].Mbr.PartitionType; | ||||||
| 				isUefiTogo = (i == 1) && (part_type == 0xef) && | 				isUefiNtfs = (i == 1) && (part_type == 0xef) && | ||||||
| 					(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart == uefi_togo_size); | 					(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart == uefi_ntfs_size); | ||||||
| 				suprintf("Partition %d%s:\n", i+1, isUefiTogo?" (UEFI:TOGO)":""); | 				suprintf("Partition %d%s:\n", i+1, isUefiNtfs?" (UEFI:NTFS)":""); | ||||||
| 				for (j=0; j<ARRAYSIZE(mbr_mountable); j++) { | 				for (j=0; j<ARRAYSIZE(mbr_mountable); j++) { | ||||||
| 					if (part_type == mbr_mountable[j]) { | 					if (part_type == mbr_mountable[j]) { | ||||||
| 						ret = TRUE; | 						ret = TRUE; | ||||||
|  | @ -747,7 +747,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys | ||||||
| 					DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, DriveLayout->PartitionEntry[i].Mbr.HiddenSectors, | 					DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, DriveLayout->PartitionEntry[i].Mbr.HiddenSectors, | ||||||
| 					DriveLayout->PartitionEntry[i].Mbr.BootIndicator?"Yes":"No", | 					DriveLayout->PartitionEntry[i].Mbr.BootIndicator?"Yes":"No", | ||||||
| 					DriveLayout->PartitionEntry[i].Mbr.RecognizedPartition?"Yes":"No"); | 					DriveLayout->PartitionEntry[i].Mbr.RecognizedPartition?"Yes":"No"); | ||||||
| 				if ((part_type == RUFUS_EXTRA_PARTITION_TYPE) || (isUefiTogo)) | 				if ((part_type == RUFUS_EXTRA_PARTITION_TYPE) || (isUefiNtfs)) | ||||||
| 					// This is a partition Rufus created => we can safely ignore it
 | 					// This is a partition Rufus created => we can safely ignore it
 | ||||||
| 					--SelectedDrive.nPartitions; | 					--SelectedDrive.nPartitions; | ||||||
| 				if (part_type == 0xee)	// Flag a protective MBR for non GPT platforms (XP)
 | 				if (part_type == 0xee)	// Flag a protective MBR for non GPT platforms (XP)
 | ||||||
|  | @ -772,7 +772,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys | ||||||
| 				DriveLayout->PartitionEntry[i].PartitionLength, DriveLayout->PartitionEntry[i].StartingOffset.QuadPart / DiskGeometry->Geometry.BytesPerSector, | 				DriveLayout->PartitionEntry[i].PartitionLength, DriveLayout->PartitionEntry[i].StartingOffset.QuadPart / DiskGeometry->Geometry.BytesPerSector, | ||||||
| 				DriveLayout->PartitionEntry[i].Gpt.Attributes); | 				DriveLayout->PartitionEntry[i].Gpt.Attributes); | ||||||
| 			// Don't register the partitions that we don't care about destroying
 | 			// Don't register the partitions that we don't care about destroying
 | ||||||
| 			if ( (strcmp(tmp, "UEFI:TOGO") == 0) || | 			if ( (strcmp(tmp, "UEFI:NTFS") == 0) || | ||||||
| 				 (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_MSFT_RESERVED_GUID)) || | 				 (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_MSFT_RESERVED_GUID)) || | ||||||
| 				 (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_SYSTEM_GUID)) ) | 				 (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_SYSTEM_GUID)) ) | ||||||
| 				--SelectedDrive.nPartitions; | 				--SelectedDrive.nPartitions; | ||||||
|  | @ -1031,9 +1031,9 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | ||||||
| 
 | 
 | ||||||
| 	PrintInfoDebug(0, MSG_238, PartitionTypeName[partition_style]); | 	PrintInfoDebug(0, MSG_238, PartitionTypeName[partition_style]); | ||||||
| 
 | 
 | ||||||
| 	if ((extra_partitions & XP_UEFI_TOGO) && (uefi_togo_size == 0)) { | 	if ((extra_partitions & XP_UEFI_NTFS) && (uefi_ntfs_size == 0)) { | ||||||
| 		uefi_togo_size = GetResourceSize(hMainInstance, MAKEINTRESOURCEA(IDR_UEFI_TOGO), _RT_RCDATA, "uefi-togo.img"); | 		uefi_ntfs_size = GetResourceSize(hMainInstance, MAKEINTRESOURCEA(IDR_UEFI_NTFS), _RT_RCDATA, "uefi-ntfs.img"); | ||||||
| 		if (uefi_togo_size == 0) | 		if (uefi_ntfs_size == 0) | ||||||
| 			return FALSE; | 			return FALSE; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -1091,7 +1091,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | ||||||
| 			else | 			else | ||||||
| 				ms_efi_size = 1200*1024*1024;	// That'll teach you to have a nonstandard disk!
 | 				ms_efi_size = 1200*1024*1024;	// That'll teach you to have a nonstandard disk!
 | ||||||
| 			extra_part_size_in_tracks = (ms_efi_size + bytes_per_track - 1) / bytes_per_track; | 			extra_part_size_in_tracks = (ms_efi_size + bytes_per_track - 1) / bytes_per_track; | ||||||
| 		} else if (extra_partitions & XP_UEFI_TOGO) | 		} else if (extra_partitions & XP_UEFI_NTFS) | ||||||
| 			extra_part_size_in_tracks = (MIN_EXTRA_PART_SIZE + bytes_per_track - 1) / bytes_per_track; | 			extra_part_size_in_tracks = (MIN_EXTRA_PART_SIZE + bytes_per_track - 1) / bytes_per_track; | ||||||
| 		else if (extra_partitions & XP_COMPAT) | 		else if (extra_partitions & XP_COMPAT) | ||||||
| 			extra_part_size_in_tracks = 1;	// One track for the extra partition
 | 			extra_part_size_in_tracks = 1;	// One track for the extra partition
 | ||||||
|  | @ -1134,30 +1134,30 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | ||||||
| 		// Should end on a track boundary
 | 		// Should end on a track boundary
 | ||||||
| 		DriveLayoutEx.PartitionEntry[pn].StartingOffset.QuadPart = DriveLayoutEx.PartitionEntry[pn-1].StartingOffset.QuadPart + | 		DriveLayoutEx.PartitionEntry[pn].StartingOffset.QuadPart = DriveLayoutEx.PartitionEntry[pn-1].StartingOffset.QuadPart + | ||||||
| 			DriveLayoutEx.PartitionEntry[pn-1].PartitionLength.QuadPart; | 			DriveLayoutEx.PartitionEntry[pn-1].PartitionLength.QuadPart; | ||||||
| 		DriveLayoutEx.PartitionEntry[pn].PartitionLength.QuadPart = (extra_partitions & XP_UEFI_TOGO)?uefi_togo_size: | 		DriveLayoutEx.PartitionEntry[pn].PartitionLength.QuadPart = (extra_partitions & XP_UEFI_NTFS)?uefi_ntfs_size: | ||||||
| 			extra_part_size_in_tracks * SelectedDrive.Geometry.SectorsPerTrack * SelectedDrive.Geometry.BytesPerSector; | 			extra_part_size_in_tracks * SelectedDrive.Geometry.SectorsPerTrack * SelectedDrive.Geometry.BytesPerSector; | ||||||
| 		if (partition_style == PARTITION_STYLE_GPT) { | 		if (partition_style == PARTITION_STYLE_GPT) { | ||||||
| 			DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = (extra_partitions & XP_UEFI_TOGO)? | 			DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = (extra_partitions & XP_UEFI_NTFS)? | ||||||
| 				PARTITION_BASIC_DATA_GUID:PARTITION_SYSTEM_GUID; | 				PARTITION_BASIC_DATA_GUID:PARTITION_SYSTEM_GUID; | ||||||
| 			IGNORE_RETVAL(CoCreateGuid(&DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionId)); | 			IGNORE_RETVAL(CoCreateGuid(&DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionId)); | ||||||
| 			wcscpy(DriveLayoutEx.PartitionEntry[pn].Gpt.Name, (extra_partitions & XP_UEFI_TOGO)?L"UEFI:TOGO":L"EFI system partition"); | 			wcscpy(DriveLayoutEx.PartitionEntry[pn].Gpt.Name, (extra_partitions & XP_UEFI_NTFS)?L"UEFI:NTFS":L"EFI system partition"); | ||||||
| 		} else { | 		} else { | ||||||
| 			DriveLayoutEx.PartitionEntry[pn].Mbr.PartitionType = (extra_partitions & XP_UEFI_TOGO)?0xef:RUFUS_EXTRA_PARTITION_TYPE; | 			DriveLayoutEx.PartitionEntry[pn].Mbr.PartitionType = (extra_partitions & XP_UEFI_NTFS)?0xef:RUFUS_EXTRA_PARTITION_TYPE; | ||||||
| 			if (extra_partitions & XP_COMPAT) | 			if (extra_partitions & XP_COMPAT) | ||||||
| 				// Set the one track compatibility partition to be all hidden sectors
 | 				// Set the one track compatibility partition to be all hidden sectors
 | ||||||
| 				DriveLayoutEx.PartitionEntry[pn].Mbr.HiddenSectors = SelectedDrive.Geometry.SectorsPerTrack; | 				DriveLayoutEx.PartitionEntry[pn].Mbr.HiddenSectors = SelectedDrive.Geometry.SectorsPerTrack; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// We need to write the TOGO partition before we refresh the disk
 | 		// We need to write the UEFI:NTFS partition before we refresh the disk
 | ||||||
| 		if (extra_partitions & XP_UEFI_TOGO) { | 		if (extra_partitions & XP_UEFI_NTFS) { | ||||||
| 			uprintf("Writing UEFI:TOGO partition..."); | 			uprintf("Writing UEFI:NTFS partition..."); | ||||||
| 			if (!SetFilePointerEx(hDrive, DriveLayoutEx.PartitionEntry[pn].StartingOffset, NULL, FILE_BEGIN)) { | 			if (!SetFilePointerEx(hDrive, DriveLayoutEx.PartitionEntry[pn].StartingOffset, NULL, FILE_BEGIN)) { | ||||||
| 				uprintf("Unable to set position"); | 				uprintf("Unable to set position"); | ||||||
| 				return FALSE; | 				return FALSE; | ||||||
| 			} | 			} | ||||||
| 			buffer = GetResource(hMainInstance, MAKEINTRESOURCEA(IDR_UEFI_TOGO), _RT_RCDATA, "uefi-togo.img", &bufsize, FALSE); | 			buffer = GetResource(hMainInstance, MAKEINTRESOURCEA(IDR_UEFI_NTFS), _RT_RCDATA, "uefi-ntfs.img", &bufsize, FALSE); | ||||||
| 			if (buffer == NULL) { | 			if (buffer == NULL) { | ||||||
| 				uprintf("Could not access uefi-togo.img"); | 				uprintf("Could not access uefi-ntfs.img"); | ||||||
| 				return FALSE; | 				return FALSE; | ||||||
| 			} | 			} | ||||||
| 			r = WriteFile(hDrive, buffer, bufsize, &size, NULL); | 			r = WriteFile(hDrive, buffer, bufsize, &size, NULL); | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ | ||||||
| 
 | 
 | ||||||
| #define XP_MSR       0x01 | #define XP_MSR       0x01 | ||||||
| #define XP_EFI       0x02 | #define XP_EFI       0x02 | ||||||
| #define XP_UEFI_TOGO 0x04 | #define XP_UEFI_NTFS 0x04 | ||||||
| #define XP_COMPAT    0x08 | #define XP_COMPAT    0x08 | ||||||
| 
 | 
 | ||||||
| /* We need a redef of these MS structure */ | /* We need a redef of these MS structure */ | ||||||
|  |  | ||||||
|  | @ -1498,7 +1498,7 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 		// http://msdn.microsoft.com/en-us/library/windows/hardware/dn640535.aspx#gpt_faq_what_disk_require_msr
 | 		// http://msdn.microsoft.com/en-us/library/windows/hardware/dn640535.aspx#gpt_faq_what_disk_require_msr
 | ||||||
| 		extra_partitions = XP_MSR | XP_EFI; | 		extra_partitions = XP_MSR | XP_EFI; | ||||||
| 	else if ((fs == FS_NTFS) && (dt == DT_ISO) && (iso_report.has_efi) && ((bt == BT_UEFI) || (windows_to_go))) | 	else if ((fs == FS_NTFS) && (dt == DT_ISO) && (iso_report.has_efi) && ((bt == BT_UEFI) || (windows_to_go))) | ||||||
| 		extra_partitions = XP_UEFI_TOGO; | 		extra_partitions = XP_UEFI_NTFS; | ||||||
| 	else if (IsChecked(IDC_EXTRA_PARTITION)) | 	else if (IsChecked(IDC_EXTRA_PARTITION)) | ||||||
| 		extra_partitions = XP_COMPAT; | 		extra_partitions = XP_COMPAT; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -69,7 +69,7 @@ | ||||||
| #define IDR_GR_GRUB2_CORE_IMG           451 | #define IDR_GR_GRUB2_CORE_IMG           451 | ||||||
| #define IDR_LC_RUFUS_LOC                500 | #define IDR_LC_RUFUS_LOC                500 | ||||||
| #define IDR_XT_HOGGER                   501 | #define IDR_XT_HOGGER                   501 | ||||||
| #define IDR_UEFI_TOGO                   502 | #define IDR_UEFI_NTFS                   502 | ||||||
| #define IDR_TOGO_SAN_POLICY_XML         503 | #define IDR_TOGO_SAN_POLICY_XML         503 | ||||||
| #define IDR_TOGO_UNATTEND_XML           504 | #define IDR_TOGO_UNATTEND_XML           504 | ||||||
| #define IDC_DEVICE                      1001 | #define IDC_DEVICE                      1001 | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										20
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -32,7 +32,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 | ||||||
| CAPTION "Rufus 2.0.644" | CAPTION "Rufus 2.0.645" | ||||||
| FONT 8, "Segoe UI", 400, 0, 0x1 | FONT 8, "Segoe UI", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 | ||||||
|  | @ -157,7 +157,7 @@ END | ||||||
| 
 | 
 | ||||||
| IDD_DIALOG_XP DIALOGEX 12, 12, 242, 376 | IDD_DIALOG_XP 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 | ||||||
| CAPTION "Rufus 2.0.644" | CAPTION "Rufus 2.0.645" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 | ||||||
|  | @ -283,7 +283,7 @@ END | ||||||
| IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 376 | IDD_DIALOG_RTL 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_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL | EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL | ||||||
| CAPTION "Rufus 2.0.644" | CAPTION "Rufus 2.0.645" | ||||||
| FONT 8, "Segoe UI", 400, 0, 0x1 | FONT 8, "Segoe UI", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 | ||||||
|  | @ -415,7 +415,7 @@ END | ||||||
| IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 376 | IDD_DIALOG_RTL_XP 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_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL | EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL | ||||||
| CAPTION "Rufus 2.0.644" | CAPTION "Rufus 2.0.645" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,127,339,50,14 | ||||||
|  | @ -611,7 +611,7 @@ BEGIN | ||||||
|     "IDR_FD_EGA17_CPX        RCDATA                  ""../res/freedos/ega17.cpx""\r\n" |     "IDR_FD_EGA17_CPX        RCDATA                  ""../res/freedos/ega17.cpx""\r\n" | ||||||
|     "IDR_FD_EGA18_CPX        RCDATA                  ""../res/freedos/ega18.cpx""\r\n" |     "IDR_FD_EGA18_CPX        RCDATA                  ""../res/freedos/ega18.cpx""\r\n" | ||||||
|     "IDR_XT_HOGGER           RCDATA                  ""../res/hogger/hogger.exe""\r\n" |     "IDR_XT_HOGGER           RCDATA                  ""../res/hogger/hogger.exe""\r\n" | ||||||
|     "IDR_UEFI_TOGO           RCDATA                  ""../res/uefi/uefi-togo.img""\r\n" |     "IDR_UEFI_NTFS           RCDATA                  ""../res/uefi/uefi-ntfs.img""\r\n" | ||||||
|     "IDR_TOGO_SAN_POLICY_XML RCDATA                  ""../res/togo/san_policy.xml""\r\n" |     "IDR_TOGO_SAN_POLICY_XML RCDATA                  ""../res/togo/san_policy.xml""\r\n" | ||||||
|     "IDR_TOGO_UNATTEND_XML   RCDATA                  ""../res/togo/unattend.xml""\r\n" |     "IDR_TOGO_UNATTEND_XML   RCDATA                  ""../res/togo/unattend.xml""\r\n" | ||||||
|     "\r\n" |     "\r\n" | ||||||
|  | @ -671,8 +671,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 2,0,644,0 |  FILEVERSION 2,1,645,0 | ||||||
|  PRODUCTVERSION 2,0,644,0 |  PRODUCTVERSION 2,1,645,0 | ||||||
|  FILEFLAGSMASK 0x3fL |  FILEFLAGSMASK 0x3fL | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|  FILEFLAGS 0x1L |  FILEFLAGS 0x1L | ||||||
|  | @ -689,13 +689,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.0.644" |             VALUE "FileVersion", "2.1.645" | ||||||
|             VALUE "InternalName", "Rufus" |             VALUE "InternalName", "Rufus" | ||||||
|             VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)" |             VALUE "LegalCopyright", "© 2011-2015 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.0.644" |             VALUE "ProductVersion", "2.1.645" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  | @ -766,7 +766,7 @@ IDR_FD_EGA16_CPX        RCDATA                  "../res/freedos/ega16.cpx" | ||||||
| IDR_FD_EGA17_CPX        RCDATA                  "../res/freedos/ega17.cpx" | IDR_FD_EGA17_CPX        RCDATA                  "../res/freedos/ega17.cpx" | ||||||
| IDR_FD_EGA18_CPX        RCDATA                  "../res/freedos/ega18.cpx" | IDR_FD_EGA18_CPX        RCDATA                  "../res/freedos/ega18.cpx" | ||||||
| IDR_XT_HOGGER           RCDATA                  "../res/hogger/hogger.exe" | IDR_XT_HOGGER           RCDATA                  "../res/hogger/hogger.exe" | ||||||
| IDR_UEFI_TOGO           RCDATA                  "../res/uefi/uefi-togo.img" | IDR_UEFI_NTFS           RCDATA                  "../res/uefi/uefi-ntfs.img" | ||||||
| IDR_TOGO_SAN_POLICY_XML RCDATA                  "../res/togo/san_policy.xml" | IDR_TOGO_SAN_POLICY_XML RCDATA                  "../res/togo/san_policy.xml" | ||||||
| IDR_TOGO_UNATTEND_XML   RCDATA                  "../res/togo/unattend.xml" | IDR_TOGO_UNATTEND_XML   RCDATA                  "../res/togo/unattend.xml" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue