mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[core] add ReFS formatting support
* Windows 8.1 or later and fixed disks ONLY
This commit is contained in:
		
							parent
							
								
									5519212dd3
								
							
						
					
					
						commit
						027d0d7c3a
					
				
					 4 changed files with 21 additions and 12 deletions
				
			
		|  | @ -615,7 +615,8 @@ int GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSyst | ||||||
| 	} | 	} | ||||||
| 	SelectedDrive.DiskSize = DiskGeometry->DiskSize.QuadPart; | 	SelectedDrive.DiskSize = DiskGeometry->DiskSize.QuadPart; | ||||||
| 	memcpy(&SelectedDrive.Geometry, &DiskGeometry->Geometry, sizeof(DISK_GEOMETRY)); | 	memcpy(&SelectedDrive.Geometry, &DiskGeometry->Geometry, sizeof(DISK_GEOMETRY)); | ||||||
| 	uprintf("Sector Size: %d bytes\n", DiskGeometry->Geometry.BytesPerSector); | 	uprintf("Disk type: %s, Sector Size: %d bytes\n", (DiskGeometry->Geometry.MediaType == FixedMedia)?"Fixed":"Removable", | ||||||
|  | 		DiskGeometry->Geometry.BytesPerSector); | ||||||
| 	uprintf("Cylinders: %lld, TracksPerCylinder: %d, SectorsPerTrack: %d\n", | 	uprintf("Cylinders: %lld, TracksPerCylinder: %d, SectorsPerTrack: %d\n", | ||||||
| 		DiskGeometry->Geometry.Cylinders, DiskGeometry->Geometry.TracksPerCylinder, DiskGeometry->Geometry.SectorsPerTrack); | 		DiskGeometry->Geometry.Cylinders, DiskGeometry->Geometry.TracksPerCylinder, DiskGeometry->Geometry.SectorsPerTrack); | ||||||
| 
 | 
 | ||||||
|  | @ -900,7 +901,8 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | ||||||
| 		case FS_NTFS: | 		case FS_NTFS: | ||||||
| 		case FS_EXFAT: | 		case FS_EXFAT: | ||||||
| 		case FS_UDF: | 		case FS_UDF: | ||||||
| 			DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType = 0x07;	// NTFS
 | 		case FS_REFS: | ||||||
|  | 			DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType = 0x07; | ||||||
| 			break; | 			break; | ||||||
| 		case FS_FAT32: | 		case FS_FAT32: | ||||||
| 			DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType = 0x0c;	// FAT32 LBA
 | 			DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType = 0x0c;	// FAT32 LBA
 | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -107,7 +107,7 @@ typedef ULONG (WINAPI *SHChangeNotifyRegister_t)( | ||||||
| 	const MY_SHChangeNotifyEntry *pshcne | 	const MY_SHChangeNotifyEntry *pshcne | ||||||
| ); | ); | ||||||
| 
 | 
 | ||||||
| const char* FileSystemLabel[FS_MAX] = { "FAT", "FAT32", "NTFS", "UDF", "exFAT" }; | const char* FileSystemLabel[FS_MAX] = { "FAT", "FAT32", "NTFS", "UDF", "exFAT", "ReFS" }; | ||||||
| // Number of steps for each FS for FCC_STRUCTURE_PROGRESS
 | // Number of steps for each FS for FCC_STRUCTURE_PROGRESS
 | ||||||
| const int nb_steps[FS_MAX] = { 5, 5, 12, 1, 10 }; | const int nb_steps[FS_MAX] = { 5, 5, 12, 1, 10 }; | ||||||
| static const char* PartitionTypeLabel[2] = { "MBR", "GPT" }; | static const char* PartitionTypeLabel[2] = { "MBR", "GPT" }; | ||||||
|  | @ -310,6 +310,12 @@ static BOOL DefineClusterSizes(void) | ||||||
| 			SelectedDrive.ClusterSize[FS_UDF].Allowed = 0x00000100; | 			SelectedDrive.ClusterSize[FS_UDF].Allowed = 0x00000100; | ||||||
| 			SelectedDrive.ClusterSize[FS_UDF].Default = 1; | 			SelectedDrive.ClusterSize[FS_UDF].Default = 1; | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
|  | 		// ReFS (only supported for Windows 8.1 and later and for fixed disks)
 | ||||||
|  | 		if ((nWindowsVersion >= WINDOWS_8_1_OR_LATER) && (SelectedDrive.Geometry.MediaType == FixedMedia)) { | ||||||
|  | 			SelectedDrive.ClusterSize[FS_REFS].Allowed = 0x00000100; | ||||||
|  | 			SelectedDrive.ClusterSize[FS_REFS].Default = 1; | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| out: | out: | ||||||
|  | @ -2012,8 +2018,8 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 				break; | 				break; | ||||||
| 			} | 			} | ||||||
| 			SetClusterSizes(fs); | 			SetClusterSizes(fs); | ||||||
| 			// Disable/restore the quick format control depending on large FAT32
 | 			// Disable/restore the quick format control depending on large FAT32 or ReFS
 | ||||||
| 			if ((fs == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32))) { | 			if ( ((fs == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32))) || (fs == FS_REFS) ) { | ||||||
| 				if (IsWindowEnabled(GetDlgItem(hMainDialog, IDC_QUICKFORMAT))) { | 				if (IsWindowEnabled(GetDlgItem(hMainDialog, IDC_QUICKFORMAT))) { | ||||||
| 					uQFChecked = IsChecked(IDC_QUICKFORMAT); | 					uQFChecked = IsChecked(IDC_QUICKFORMAT); | ||||||
| 					CheckDlgButton(hMainDialog, IDC_QUICKFORMAT, BST_CHECKED); | 					CheckDlgButton(hMainDialog, IDC_QUICKFORMAT, BST_CHECKED); | ||||||
|  | @ -2036,7 +2042,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 				} | 				} | ||||||
| 				break; | 				break; | ||||||
| 			} | 			} | ||||||
| 			if ((fs == FS_EXFAT) || (fs == FS_UDF)) { | 			if ((fs == FS_EXFAT) || (fs == FS_UDF) || (fs == FS_REFS)) { | ||||||
| 				if (IsWindowEnabled(hBoot)) { | 				if (IsWindowEnabled(hBoot)) { | ||||||
| 					// unlikely to be supported by BIOSes => don't bother
 | 					// unlikely to be supported by BIOSes => don't bother
 | ||||||
| 					IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, 0)); | 					IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, 0)); | ||||||
|  |  | ||||||
|  | @ -171,6 +171,7 @@ enum { | ||||||
| 	FS_NTFS, | 	FS_NTFS, | ||||||
| 	FS_UDF, | 	FS_UDF, | ||||||
| 	FS_EXFAT, | 	FS_EXFAT, | ||||||
|  | 	FS_REFS, | ||||||
| 	FS_MAX | 	FS_MAX | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								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.6.443" | CAPTION "Rufus 1.4.6.444" | ||||||
| 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 | ||||||
|  | @ -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.6.443" | CAPTION "Rufus 1.4.6.444" | ||||||
| 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 | ||||||
|  | @ -427,8 +427,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 1,4,6,443 |  FILEVERSION 1,4,6,444 | ||||||
|  PRODUCTVERSION 1,4,6,443 |  PRODUCTVERSION 1,4,6,444 | ||||||
|  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.6.443" |             VALUE "FileVersion", "1.4.6.444" | ||||||
|             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.6.443" |             VALUE "ProductVersion", "1.4.6.444" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue