mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[misc] add missing.h header
* Also clean up code
This commit is contained in:
		
							parent
							
								
									d3c9afa2fd
								
							
						
					
					
						commit
						c3f47ada06
					
				
					 23 changed files with 289 additions and 258 deletions
				
			
		|  | @ -209,6 +209,7 @@ | |||
|     <ClInclude Include="..\drive.h" /> | ||||
|     <ClInclude Include="..\format.h" /> | ||||
|     <ClInclude Include="..\hdd_vs_ufd.h" /> | ||||
|     <ClInclude Include="..\missing.h" /> | ||||
|     <ClInclude Include="..\settings.h" /> | ||||
|     <ClInclude Include="..\libcdio\cdio\cdio.h" /> | ||||
|     <ClInclude Include="..\libcdio\cdio\iso9660.h" /> | ||||
|  |  | |||
|  | @ -137,6 +137,9 @@ | |||
|     <ClInclude Include="..\settings.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\missing.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <None Include="..\..\res\rufus.ico"> | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
|  * | ||||
|  * Copyright 1995, 1996, 1997, 1998, 1999 by Theodore Ts'o | ||||
|  * Copyright 1999 by David Beattie | ||||
|  * Copyright 2011-2015 by Pete Batard | ||||
|  * Copyright 2011-2016 by Pete Batard | ||||
|  * | ||||
|  * This file is based on the minix file system programs fsck and mkfs | ||||
|  * written and copyrighted by Linus Torvalds <Linus.Torvalds@cs.helsinki.fi> | ||||
|  | @ -42,11 +42,12 @@ | |||
| #include <stdint.h> | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "badblocks.h" | ||||
| #include "file.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "resource.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| FILE* log_fd = NULL; | ||||
| static const char* abort_msg = "Too many bad blocks, aborting test\n"; | ||||
|  | @ -257,7 +258,7 @@ static bb_badblocks_iterate bb_iter = NULL; | |||
| static __inline void *allocate_buffer(size_t size) { | ||||
| #ifdef __MINGW32__ | ||||
| 	return __mingw_aligned_malloc(size, BB_SYS_PAGE_SIZE); | ||||
| #else  | ||||
| #else | ||||
| 	return _aligned_malloc(size, BB_SYS_PAGE_SIZE); | ||||
| #endif | ||||
| } | ||||
|  |  | |||
|  | @ -51,9 +51,10 @@ | |||
| #include <inttypes.h> | ||||
| #include <errno.h> | ||||
| #include <windowsx.h> | ||||
| #include "msapi_utf8.h" | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #undef BIG_ENDIAN_HOST | ||||
|  |  | |||
|  | @ -31,9 +31,10 @@ | |||
| #include <string.h> | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "dos.h" | ||||
| #include "resource.h" | ||||
| 
 | ||||
| #include "dos.h" | ||||
| 
 | ||||
| static BYTE* DiskImage = NULL; | ||||
| static DWORD DiskImageSize; | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										18
									
								
								src/drive.c
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								src/drive.c
									
										
									
									
									
								
							|  | @ -26,17 +26,19 @@ | |||
| #include <string.h> | ||||
| #include <ctype.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "rufus.h" | ||||
| #include "missing.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "file.h" | ||||
| #include "drive.h" | ||||
| #include "resource.h" | ||||
| #include "sys_types.h" | ||||
| #include "br.h" | ||||
| #include "fat16.h" | ||||
| #include "fat32.h" | ||||
| #include "ntfs.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #if !defined(PARTITION_BASIC_DATA_GUID) | ||||
| const GUID PARTITION_BASIC_DATA_GUID = | ||||
|  | @ -1045,7 +1047,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | |||
| 	// Compute the start offset of our first partition
 | ||||
| 	if ((partition_style == PARTITION_STYLE_GPT) || (!IsChecked(IDC_EXTRA_PARTITION))) { | ||||
| 		// Go with the MS 1 MB wastage at the beginning...
 | ||||
| 		DriveLayoutEx.PartitionEntry[pn].StartingOffset.QuadPart = 1024*1024; | ||||
| 		DriveLayoutEx.PartitionEntry[pn].StartingOffset.QuadPart = MB; | ||||
| 	} else { | ||||
| 		// Align on Cylinder
 | ||||
| 		DriveLayoutEx.PartitionEntry[pn].StartingOffset.QuadPart = bytes_per_track; | ||||
|  | @ -1054,7 +1056,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | |||
| 	// If required, set the MSR partition (GPT only - must be created before the data part)
 | ||||
| 	if ((partition_style == PARTITION_STYLE_GPT) && (extra_partitions & XP_MSR)) { | ||||
| 		uprintf("Adding MSR partition"); | ||||
| 		DriveLayoutEx.PartitionEntry[pn].PartitionLength.QuadPart = 128*1024*1024; | ||||
| 		DriveLayoutEx.PartitionEntry[pn].PartitionLength.QuadPart = 128*MB; | ||||
| 		DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = PARTITION_MSFT_RESERVED_GUID; | ||||
| 		IGNORE_RETVAL(CoCreateGuid(&DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionId)); | ||||
| 		// coverity[strcpy_overrun]
 | ||||
|  | @ -1090,11 +1092,11 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | |||
| 			// The size of the EFI partition depends on the minimum size we're able to format in FAT32,
 | ||||
| 			// which in turn depends on the cluster size used, which in turn depends on the disk sector size.
 | ||||
| 			if (SelectedDrive.Geometry.BytesPerSector <= 1024) | ||||
| 				ms_efi_size = 100*1024*1024; | ||||
| 				ms_efi_size = 100*MB; | ||||
| 			else if (SelectedDrive.Geometry.BytesPerSector <= 4096) | ||||
| 				ms_efi_size = 300*1024*1024; | ||||
| 				ms_efi_size = 300*MB; | ||||
| 			else | ||||
| 				ms_efi_size = 1200*1024*1024;	// That'll teach you to have a nonstandard disk!
 | ||||
| 				ms_efi_size = 1200*MB;	// That'll teach you to have a nonstandard disk!
 | ||||
| 			extra_part_size_in_tracks = (ms_efi_size + bytes_per_track - 1) / bytes_per_track; | ||||
| 		} else if (extra_partitions & XP_UEFI_NTFS) | ||||
| 			extra_part_size_in_tracks = (MIN_EXTRA_PART_SIZE + bytes_per_track - 1) / bytes_per_track; | ||||
|  |  | |||
|  | @ -32,9 +32,12 @@ | |||
| #include <ctype.h> | ||||
| #include <locale.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "rufus.h" | ||||
| #include "missing.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "br.h" | ||||
| #include "fat16.h" | ||||
| #include "fat32.h" | ||||
|  | @ -44,7 +47,6 @@ | |||
| #include "drive.h" | ||||
| #include "format.h" | ||||
| #include "badblocks.h" | ||||
| #include "localization.h" | ||||
| #include "bled/bled.h" | ||||
| #include "../res/grub/grub_version.h" | ||||
| 
 | ||||
|  | @ -999,7 +1001,7 @@ static BOOL WriteSBR(HANDLE hPhysicalDrive) | |||
| 	set_bytes_per_sector(SelectedDrive.Geometry.BytesPerSector); | ||||
| 	// Ensure that we have sufficient space for the SBR
 | ||||
| 	max_size = IsChecked(IDC_EXTRA_PARTITION) ? | ||||
| 		(DWORD)(SelectedDrive.Geometry.BytesPerSector * SelectedDrive.Geometry.SectorsPerTrack) : 1024 * 1024; | ||||
| 		(DWORD)(SelectedDrive.Geometry.BytesPerSector * SelectedDrive.Geometry.SectorsPerTrack) : 1*MB; | ||||
| 	max_size -= mbr_size; | ||||
| 	// Syslinux has precedence over Grub
 | ||||
| 	if ((bt == BT_ISO) && (!HAS_SYSLINUX(img_report))) { | ||||
|  |  | |||
|  | @ -27,9 +27,9 @@ | |||
| #include <stdio.h> | ||||
| #include <string.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "rufus.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| 
 | ||||
| #pragma pack(push) | ||||
| #pragma pack(2) | ||||
|  |  | |||
							
								
								
									
										87
									
								
								src/iso.c
									
										
									
									
									
								
							
							
						
						
									
										87
									
								
								src/iso.c
									
										
									
									
									
								
							|  | @ -39,8 +39,9 @@ | |||
| #include <cdio/udf.h> | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "missing.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| // How often should we update the progress bar (in 2K blocks) as updating
 | ||||
|  | @ -1068,91 +1069,9 @@ out: | |||
| 	if (p_udf != NULL) | ||||
| 		udf_close(p_udf); | ||||
| 	safe_free(wim_path); | ||||
| 	return bswap_32(r); | ||||
| 	return bswap_uint32(r); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * The following is used for native ISO mounting in Windows 8 or later | ||||
|  */ | ||||
| #define VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT \ | ||||
| 	{ 0xEC984AECL, 0xA0F9, 0x47e9, { 0x90, 0x1F, 0x71, 0x41, 0x5A, 0x66, 0x34, 0x5B } } | ||||
| 
 | ||||
| typedef enum _VIRTUAL_DISK_ACCESS_MASK { | ||||
| 	VIRTUAL_DISK_ACCESS_NONE = 0x00000000, | ||||
| 	VIRTUAL_DISK_ACCESS_ATTACH_RO = 0x00010000, | ||||
| 	VIRTUAL_DISK_ACCESS_ATTACH_RW = 0x00020000, | ||||
| 	VIRTUAL_DISK_ACCESS_DETACH = 0x00040000, | ||||
| 	VIRTUAL_DISK_ACCESS_GET_INFO = 0x00080000, | ||||
| 	VIRTUAL_DISK_ACCESS_CREATE = 0x00100000, | ||||
| 	VIRTUAL_DISK_ACCESS_METAOPS = 0x00200000, | ||||
| 	VIRTUAL_DISK_ACCESS_READ = 0x000d0000, | ||||
| 	VIRTUAL_DISK_ACCESS_ALL = 0x003f0000, | ||||
| 	VIRTUAL_DISK_ACCESS_WRITABLE = 0x00320000 | ||||
| } VIRTUAL_DISK_ACCESS_MASK; | ||||
| 
 | ||||
| typedef enum _OPEN_VIRTUAL_DISK_FLAG { | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_NONE = 0x00000000, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS = 0x00000001, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE = 0x00000002, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE = 0x00000004, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_CACHED_IO = 0x00000008, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN = 0x00000010 | ||||
| } OPEN_VIRTUAL_DISK_FLAG; | ||||
| 
 | ||||
| typedef enum _OPEN_VIRTUAL_DISK_VERSION { | ||||
| 	OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0, | ||||
| 	OPEN_VIRTUAL_DISK_VERSION_1 = 1, | ||||
| 	OPEN_VIRTUAL_DISK_VERSION_2 = 2 | ||||
| } OPEN_VIRTUAL_DISK_VERSION; | ||||
| 
 | ||||
| typedef enum _ATTACH_VIRTUAL_DISK_FLAG { | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_NONE = 0x00000000, | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY = 0x00000001, | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER = 0x00000002, | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = 0x00000004, | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = 0x00000008 | ||||
| } ATTACH_VIRTUAL_DISK_FLAG; | ||||
| 
 | ||||
| typedef enum _ATTACH_VIRTUAL_DISK_VERSION { | ||||
| 	ATTACH_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0, | ||||
| 	ATTACH_VIRTUAL_DISK_VERSION_1 = 1 | ||||
| } ATTACH_VIRTUAL_DISK_VERSION; | ||||
| 
 | ||||
| typedef enum _DETACH_VIRTUAL_DISK_FLAG { | ||||
| 	DETACH_VIRTUAL_DISK_FLAG_NONE = 0x00000000 | ||||
| } DETACH_VIRTUAL_DISK_FLAG; | ||||
| 
 | ||||
| #ifndef _VIRTUAL_STORAGE_TYPE_DEFINED | ||||
| #define _VIRTUAL_STORAGE_TYPE_DEFINED | ||||
| typedef struct _VIRTUAL_STORAGE_TYPE { | ||||
| 	ULONG DeviceId; | ||||
| 	GUID  VendorId; | ||||
| } VIRTUAL_STORAGE_TYPE, *PVIRTUAL_STORAGE_TYPE; | ||||
| #endif | ||||
| 
 | ||||
| typedef struct _OPEN_VIRTUAL_DISK_PARAMETERS { | ||||
| 	OPEN_VIRTUAL_DISK_VERSION Version; | ||||
| 	union { | ||||
| 		struct { | ||||
| 			ULONG RWDepth; | ||||
| 		} Version1; | ||||
| 		struct { | ||||
| 			BOOL GetInfoOnly; | ||||
| 			BOOL ReadOnly; | ||||
| 			GUID ResiliencyGuid; | ||||
| 		} Version2; | ||||
| 	}; | ||||
| } OPEN_VIRTUAL_DISK_PARAMETERS, *POPEN_VIRTUAL_DISK_PARAMETERS; | ||||
| 
 | ||||
| typedef struct _ATTACH_VIRTUAL_DISK_PARAMETERS { | ||||
| 	ATTACH_VIRTUAL_DISK_VERSION Version; | ||||
| 	union { | ||||
| 		struct { | ||||
| 			ULONG Reserved; | ||||
| 		} Version1; | ||||
| 	}; | ||||
| } ATTACH_VIRTUAL_DISK_PARAMETERS, *PATTACH_VIRTUAL_DISK_PARAMETERS; | ||||
| 
 | ||||
| // VirtDisk API Prototypes - Only available for Windows 8 or later
 | ||||
| PF_TYPE_DECL(WINAPI, DWORD, OpenVirtualDisk, (PVIRTUAL_STORAGE_TYPE, PCWSTR, | ||||
| 	VIRTUAL_DISK_ACCESS_MASK, OPEN_VIRTUAL_DISK_FLAG, POPEN_VIRTUAL_DISK_PARAMETERS, PHANDLE)); | ||||
|  |  | |||
							
								
								
									
										214
									
								
								src/missing.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								src/missing.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,214 @@ | |||
| /*
 | ||||
| * Rufus: The Reliable USB Formatting Utility | ||||
| * Constants and defines missing from various toolchains | ||||
| * Copyright © 2016 Pete Batard <pete@akeo.ie> | ||||
| * | ||||
| * This program is free software: you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | ||||
| * the Free Software Foundation, either version 3 of the License, or | ||||
| * (at your option) any later version. | ||||
| * | ||||
| * This program is distributed in the hope that it will be useful, | ||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| * GNU General Public License for more details. | ||||
| * | ||||
| * You should have received a copy of the GNU General Public License | ||||
| * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include <windows.h> | ||||
| #include <commctrl.h> | ||||
| #include <shlobj.h> | ||||
| #include <wininet.h> | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| /* Convenient to have around */ | ||||
| #define KB                   1024LL | ||||
| #define MB                1048576LL | ||||
| #define GB             1073741824LL | ||||
| #define TB          1099511627776LL | ||||
| 
 | ||||
| #ifndef MIN | ||||
| #define MIN(a,b) (((a) < (b)) ? (a) : (b)) | ||||
| #endif | ||||
| 
 | ||||
| #if defined(_MSC_VER) | ||||
| #define bswap_uint64 _byteswap_uint64 | ||||
| #define bswap_uint32 _byteswap_ulong | ||||
| #define bswap_uint16 _byteswap_ushort | ||||
| #else | ||||
| #define bswap_uint64 __builtin_bswap64 | ||||
| #define bswap_uint32 __builtin_bswap32 | ||||
| #define bswap_uint16 __builtin_bswap16 | ||||
| #endif | ||||
| 
 | ||||
| static __inline void *_reallocf(void *ptr, size_t size) { | ||||
| 	void *ret = realloc(ptr, size); | ||||
| 	if (!ret) | ||||
| 		free(ptr); | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| /* UI redefinitions for WDK and MinGW */ | ||||
| #ifndef PBM_SETSTATE | ||||
| #define PBM_SETSTATE (WM_USER+16) | ||||
| #endif | ||||
| #ifndef PBST_NORMAL | ||||
| #define PBST_NORMAL 1 | ||||
| #endif | ||||
| #ifndef PBST_ERROR | ||||
| #define PBST_ERROR 2 | ||||
| #endif | ||||
| #ifndef PBST_PAUSED | ||||
| #define PBST_PAUSED 3 | ||||
| #endif | ||||
| #ifndef BUTTON_IMAGELIST_ALIGN_CENTER | ||||
| #define BUTTON_IMAGELIST_ALIGN_CENTER 4 | ||||
| #endif | ||||
| #ifndef BCM_SETIMAGELIST | ||||
| #define BCM_SETIMAGELIST 0x1602 | ||||
| #endif | ||||
| #ifndef DBT_CUSTOMEVENT | ||||
| #define DBT_CUSTOMEVENT 0x8006 | ||||
| #endif | ||||
| #ifndef ERROR_FILE_TOO_LARGE | ||||
| #define ERROR_FILE_TOO_LARGE 223 | ||||
| #endif | ||||
| #ifndef MSGFLT_ADD | ||||
| #define MSGFLT_ADD 1 | ||||
| #endif | ||||
| #ifndef WM_CLIENTSHUTDOWN | ||||
| #define WM_CLIENTSHUTDOWN 0x3B | ||||
| #endif | ||||
| #ifndef WM_COPYGLOBALDATA | ||||
| #define WM_COPYGLOBALDATA 0x49 | ||||
| #endif | ||||
| #ifndef PBS_MARQUEE | ||||
| #define PBS_MARQUEE 0x08 | ||||
| #endif | ||||
| #ifndef PBM_SETMARQUEE | ||||
| #define PBM_SETMARQUEE (WM_USER+10) | ||||
| #endif | ||||
| 
 | ||||
| typedef struct { | ||||
| 	HIMAGELIST himl; | ||||
| 	RECT margin; | ||||
| 	UINT uAlign; | ||||
| } MY_BUTTON_IMAGELIST; | ||||
| 
 | ||||
| typedef struct | ||||
| { | ||||
| 	LPCITEMIDLIST pidl; | ||||
| 	BOOL fRecursive; | ||||
| } MY_SHChangeNotifyEntry; | ||||
| 
 | ||||
| /* The following is used for native ISO mounting in Windows 8 or later */ | ||||
| #define VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT \ | ||||
| 	{ 0xEC984AECL, 0xA0F9, 0x47e9, { 0x90, 0x1F, 0x71, 0x41, 0x5A, 0x66, 0x34, 0x5B } } | ||||
| 
 | ||||
| typedef enum _VIRTUAL_DISK_ACCESS_MASK { | ||||
| 	VIRTUAL_DISK_ACCESS_NONE = 0x00000000, | ||||
| 	VIRTUAL_DISK_ACCESS_ATTACH_RO = 0x00010000, | ||||
| 	VIRTUAL_DISK_ACCESS_ATTACH_RW = 0x00020000, | ||||
| 	VIRTUAL_DISK_ACCESS_DETACH = 0x00040000, | ||||
| 	VIRTUAL_DISK_ACCESS_GET_INFO = 0x00080000, | ||||
| 	VIRTUAL_DISK_ACCESS_CREATE = 0x00100000, | ||||
| 	VIRTUAL_DISK_ACCESS_METAOPS = 0x00200000, | ||||
| 	VIRTUAL_DISK_ACCESS_READ = 0x000d0000, | ||||
| 	VIRTUAL_DISK_ACCESS_ALL = 0x003f0000, | ||||
| 	VIRTUAL_DISK_ACCESS_WRITABLE = 0x00320000 | ||||
| } VIRTUAL_DISK_ACCESS_MASK; | ||||
| 
 | ||||
| typedef enum _OPEN_VIRTUAL_DISK_FLAG { | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_NONE = 0x00000000, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS = 0x00000001, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE = 0x00000002, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE = 0x00000004, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_CACHED_IO = 0x00000008, | ||||
| 	OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN = 0x00000010 | ||||
| } OPEN_VIRTUAL_DISK_FLAG; | ||||
| 
 | ||||
| typedef enum _OPEN_VIRTUAL_DISK_VERSION { | ||||
| 	OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0, | ||||
| 	OPEN_VIRTUAL_DISK_VERSION_1 = 1, | ||||
| 	OPEN_VIRTUAL_DISK_VERSION_2 = 2 | ||||
| } OPEN_VIRTUAL_DISK_VERSION; | ||||
| 
 | ||||
| typedef enum _ATTACH_VIRTUAL_DISK_FLAG { | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_NONE = 0x00000000, | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY = 0x00000001, | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER = 0x00000002, | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = 0x00000004, | ||||
| 	ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = 0x00000008 | ||||
| } ATTACH_VIRTUAL_DISK_FLAG; | ||||
| 
 | ||||
| typedef enum _ATTACH_VIRTUAL_DISK_VERSION { | ||||
| 	ATTACH_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0, | ||||
| 	ATTACH_VIRTUAL_DISK_VERSION_1 = 1 | ||||
| } ATTACH_VIRTUAL_DISK_VERSION; | ||||
| 
 | ||||
| typedef enum _DETACH_VIRTUAL_DISK_FLAG { | ||||
| 	DETACH_VIRTUAL_DISK_FLAG_NONE = 0x00000000 | ||||
| } DETACH_VIRTUAL_DISK_FLAG; | ||||
| 
 | ||||
| #ifndef _VIRTUAL_STORAGE_TYPE_DEFINED | ||||
| #define _VIRTUAL_STORAGE_TYPE_DEFINED | ||||
| typedef struct _VIRTUAL_STORAGE_TYPE { | ||||
| 	ULONG DeviceId; | ||||
| 	GUID  VendorId; | ||||
| } VIRTUAL_STORAGE_TYPE, *PVIRTUAL_STORAGE_TYPE; | ||||
| #endif | ||||
| 
 | ||||
| typedef struct _OPEN_VIRTUAL_DISK_PARAMETERS { | ||||
| 	OPEN_VIRTUAL_DISK_VERSION Version; | ||||
| 	union { | ||||
| 		struct { | ||||
| 			ULONG RWDepth; | ||||
| 		} Version1; | ||||
| 		struct { | ||||
| 			BOOL GetInfoOnly; | ||||
| 			BOOL ReadOnly; | ||||
| 			GUID ResiliencyGuid; | ||||
| 		} Version2; | ||||
| 	}; | ||||
| } OPEN_VIRTUAL_DISK_PARAMETERS, *POPEN_VIRTUAL_DISK_PARAMETERS; | ||||
| 
 | ||||
| typedef struct _ATTACH_VIRTUAL_DISK_PARAMETERS { | ||||
| 	ATTACH_VIRTUAL_DISK_VERSION Version; | ||||
| 	union { | ||||
| 		struct { | ||||
| 			ULONG Reserved; | ||||
| 		} Version1; | ||||
| 	}; | ||||
| } ATTACH_VIRTUAL_DISK_PARAMETERS, *PATTACH_VIRTUAL_DISK_PARAMETERS; | ||||
| 
 | ||||
| /* Networking constants missing from MinGW */ | ||||
| #if !defined(ERROR_INTERNET_DISCONNECTED) | ||||
| #define ERROR_INTERNET_DISCONNECTED (INTERNET_ERROR_BASE + 163) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_SERVER_UNREACHABLE) | ||||
| #define ERROR_INTERNET_SERVER_UNREACHABLE (INTERNET_ERROR_BASE + 164) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_PROXY_SERVER_UNREACHABLE) | ||||
| #define ERROR_INTERNET_PROXY_SERVER_UNREACHABLE (INTERNET_ERROR_BASE + 165) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT) | ||||
| #define ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT (INTERNET_ERROR_BASE + 166) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT) | ||||
| #define ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT (INTERNET_ERROR_BASE + 167) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_FAILED_DUETOSECURITYCHECK) | ||||
| #define ERROR_INTERNET_FAILED_DUETOSECURITYCHECK (INTERNET_ERROR_BASE + 171) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_NOT_INITIALIZED) | ||||
| #define ERROR_INTERNET_NOT_INITIALIZED (INTERNET_ERROR_BASE + 172) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_NEED_MSN_SSPI_PKG) | ||||
| #define ERROR_INTERNET_NEED_MSN_SSPI_PKG (INTERNET_ERROR_BASE + 173) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY) | ||||
| #define ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY (INTERNET_ERROR_BASE + 174) | ||||
| #endif | ||||
							
								
								
									
										34
									
								
								src/net.c
									
										
									
									
									
								
							
							
						
						
									
										34
									
								
								src/net.c
									
										
									
									
									
								
							|  | @ -30,12 +30,13 @@ | |||
| #include <string.h> | ||||
| #include <inttypes.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "rufus.h" | ||||
| #include "settings.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "settings.h" | ||||
| 
 | ||||
| /* Maximum download chunk size, in bytes */ | ||||
| #define DOWNLOAD_BUFFER_SIZE    10240 | ||||
| /* Default delay between update checks (1 day) */ | ||||
|  | @ -49,35 +50,6 @@ static DWORD error_code; | |||
| static BOOL update_check_in_progress = FALSE; | ||||
| static BOOL force_update_check = FALSE; | ||||
| 
 | ||||
| /* MinGW is missing some of those */ | ||||
| #if !defined(ERROR_INTERNET_DISCONNECTED) | ||||
| #define ERROR_INTERNET_DISCONNECTED (INTERNET_ERROR_BASE + 163) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_SERVER_UNREACHABLE) | ||||
| #define ERROR_INTERNET_SERVER_UNREACHABLE (INTERNET_ERROR_BASE + 164) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_PROXY_SERVER_UNREACHABLE) | ||||
| #define ERROR_INTERNET_PROXY_SERVER_UNREACHABLE (INTERNET_ERROR_BASE + 165) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT) | ||||
| #define ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT (INTERNET_ERROR_BASE + 166) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT) | ||||
| #define ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT (INTERNET_ERROR_BASE + 167) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_FAILED_DUETOSECURITYCHECK) | ||||
| #define ERROR_INTERNET_FAILED_DUETOSECURITYCHECK (INTERNET_ERROR_BASE + 171) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_NOT_INITIALIZED) | ||||
| #define ERROR_INTERNET_NOT_INITIALIZED (INTERNET_ERROR_BASE + 172) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_NEED_MSN_SSPI_PKG) | ||||
| #define ERROR_INTERNET_NEED_MSN_SSPI_PKG (INTERNET_ERROR_BASE + 173) | ||||
| #endif | ||||
| #if !defined(ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY) | ||||
| #define ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY (INTERNET_ERROR_BASE + 174) | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  * FormatMessage does not handle internet errors | ||||
|  * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385465.aspx
 | ||||
|  |  | |||
|  | @ -32,6 +32,7 @@ | |||
| #include <fcntl.h> | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "missing.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| /*
 | ||||
|  * Rufus: The Reliable USB Formatting Utility | ||||
|  * PKI functions (code signing, etc.) | ||||
|  * Copyright © 2015 Pete Batard <pete@akeo.ie> | ||||
|  * Copyright © 2015-2016 Pete Batard <pete@akeo.ie> | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  | @ -29,8 +29,8 @@ | |||
| #include <wintrust.h> | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #define ENCODING (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING) | ||||
|  |  | |||
							
								
								
									
										68
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										68
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -35,69 +35,23 @@ | |||
| #include <io.h> | ||||
| #include <getopt.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "resource.h" | ||||
| #include "rufus.h" | ||||
| #include "missing.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "drive.h" | ||||
| #include "settings.h" | ||||
| #include "localization.h" | ||||
| #include "bled/bled.h" | ||||
| #include "../res/grub/grub_version.h" | ||||
| #include "../res/grub2/grub2_version.h" | ||||
| 
 | ||||
| /* Redefinitions for WDK and MinGW */ | ||||
| // TODO: these would be better in a 'missing.h' file
 | ||||
| #ifndef PBM_SETSTATE | ||||
| #define PBM_SETSTATE (WM_USER+16) | ||||
| #endif | ||||
| #ifndef PBST_NORMAL | ||||
| #define PBST_NORMAL 1 | ||||
| #endif | ||||
| #ifndef PBST_ERROR | ||||
| #define PBST_ERROR 2 | ||||
| #endif | ||||
| #ifndef PBST_PAUSED | ||||
| #define PBST_PAUSED 3 | ||||
| #endif | ||||
| #ifndef BUTTON_IMAGELIST_ALIGN_CENTER | ||||
| #define BUTTON_IMAGELIST_ALIGN_CENTER 4 | ||||
| #endif | ||||
| #ifndef BCM_SETIMAGELIST | ||||
| #define BCM_SETIMAGELIST 0x1602 | ||||
| #endif | ||||
| #ifndef DBT_CUSTOMEVENT | ||||
| #define DBT_CUSTOMEVENT 0x8006 | ||||
| #endif | ||||
| #ifndef ERROR_FILE_TOO_LARGE | ||||
| #define ERROR_FILE_TOO_LARGE 223 | ||||
| #endif | ||||
| 
 | ||||
| #ifndef MSGFLT_ADD | ||||
| #define MSGFLT_ADD 1 | ||||
| #endif | ||||
| #ifndef WM_CLIENTSHUTDOWN | ||||
| #define WM_CLIENTSHUTDOWN 0x3B | ||||
| #endif | ||||
| #ifndef WM_COPYGLOBALDATA | ||||
| #define WM_COPYGLOBALDATA 0x49 | ||||
| #endif | ||||
| 
 | ||||
| struct { | ||||
| 	HIMAGELIST himl; | ||||
| 	RECT margin; | ||||
| 	UINT uAlign; | ||||
| } bi_iso = {0}, bi_up = {0}, bi_down = {0};	// BUTTON_IMAGELIST
 | ||||
| 
 | ||||
| typedef struct | ||||
| { | ||||
| 	LPCITEMIDLIST pidl; | ||||
| 	BOOL fRecursive; | ||||
| } MY_SHChangeNotifyEntry; | ||||
| 
 | ||||
| // MinGW doesn't know these
 | ||||
| PF_TYPE(WINAPI, HIMAGELIST, ImageList_Create, (int, int, UINT, int, int)); | ||||
| PF_TYPE(WINAPI, int, ImageList_AddIcon, (HIMAGELIST, HICON)); | ||||
| PF_TYPE(WINAPI, int, ImageList_ReplaceIcon, (HIMAGELIST, int, HICON)); | ||||
| 
 | ||||
| // WDK blows up when trying to using PF_TYPE_DECL() for the ImageList calls... so we don't.
 | ||||
| PF_DECL(ImageList_Create); | ||||
| PF_DECL(ImageList_AddIcon); | ||||
|  | @ -139,6 +93,7 @@ char msgbox[1024], msgbox_title[32], *ini_file = NULL; | |||
| OPENED_LIBRARIES_VARS; | ||||
| HINSTANCE hMainInstance; | ||||
| HWND hMainDialog, hLangToolbar = NULL, hUpdatesDlg = NULL; | ||||
| MY_BUTTON_IMAGELIST bi_iso = { 0 }, bi_up = { 0 }, bi_down = { 0 }; | ||||
| char szFolderPath[MAX_PATH], app_dir[MAX_PATH], system_dir[MAX_PATH], sysnative_dir[MAX_PATH]; | ||||
| char* image_path = NULL; | ||||
| float fScale = 1.0f; | ||||
|  | @ -193,11 +148,6 @@ static __inline void SetComboEntry(HWND hDlg, int data) { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| #define KB          1024LL | ||||
| #define MB       1048576LL | ||||
| #define GB    1073741824LL | ||||
| #define TB 1099511627776LL | ||||
| 
 | ||||
| /*
 | ||||
|  * Fill in the cluster size names | ||||
|  */ | ||||
|  | @ -370,10 +320,6 @@ static BOOL DefineClusterSizes(void) | |||
| 
 | ||||
| 	return r; | ||||
| } | ||||
| #undef KB | ||||
| #undef MB | ||||
| #undef GB | ||||
| #undef TB | ||||
| 
 | ||||
| /*
 | ||||
|  * Populate the Allocation unit size field | ||||
|  |  | |||
							
								
								
									
										30
									
								
								src/rufus.h
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								src/rufus.h
									
										
									
									
									
								
							|  | @ -469,25 +469,6 @@ static __inline BOOL UnlockDrive(HANDLE hDrive) { | |||
| 	return DeviceIoControl(hDrive, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, &size, NULL); | ||||
| } | ||||
| 
 | ||||
| static __inline void *_reallocf(void *ptr, size_t size) { | ||||
| 	void *ret = realloc(ptr, size); | ||||
| 	if (!ret) | ||||
| 		free(ptr); | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| static __inline uint16_t bswap_16(uint16_t x) { | ||||
| 	return (x >> 8) | (x << 8); | ||||
| } | ||||
| 
 | ||||
| static __inline uint32_t bswap_32(uint32_t x) { | ||||
| 	return (bswap_16(x & 0xffff) << 16) | (bswap_16(x >> 16)); | ||||
| } | ||||
| 
 | ||||
| static __inline uint64_t bswap_64(uint64_t x) { | ||||
| 	return (((uint64_t) bswap_32(x & 0xffffffffull)) << 32) | (bswap_32(x >> 32)); | ||||
| } | ||||
| 
 | ||||
| /* Hash tables */ | ||||
| typedef struct htab_entry { | ||||
| 	uint32_t used; | ||||
|  | @ -580,17 +561,6 @@ static __inline HMODULE GetLibraryHandle(char* szLibraryName) { | |||
| #define ERROR_CANT_ASSIGN_LETTER       0x120B | ||||
| #define ERROR_CANT_MOUNT_VOLUME        0x120C | ||||
| 
 | ||||
| /* More niceties */ | ||||
| #ifndef MIN | ||||
| #define MIN(a,b) (((a) < (b)) ? (a) : (b)) | ||||
| #endif | ||||
| #ifndef PBS_MARQUEE | ||||
| #define PBS_MARQUEE 0x08 | ||||
| #endif | ||||
| #ifndef PBM_SETMARQUEE | ||||
| #define PBM_SETMARQUEE (WM_USER+10) | ||||
| #endif | ||||
| 
 | ||||
| /* Why oh why does Microsoft have to make everybody suffer with their braindead use of Unicode? */ | ||||
| #define _RT_ICON			MAKEINTRESOURCEA(3) | ||||
| #define _RT_DIALOG			MAKEINTRESOURCEA(5) | ||||
|  |  | |||
							
								
								
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL | |||
| IDD_DIALOG DIALOGEX 12, 12, 242, 376 | ||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||
| EXSTYLE WS_EX_ACCEPTFILES | ||||
| CAPTION "Rufus 2.8.860" | ||||
| CAPTION "Rufus 2.8.861" | ||||
| FONT 8, "Segoe UI Symbol", 400, 0, 0x0 | ||||
| BEGIN | ||||
|     LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8 | ||||
|  | @ -320,8 +320,8 @@ END | |||
| // | ||||
| 
 | ||||
| VS_VERSION_INFO VERSIONINFO | ||||
|  FILEVERSION 2,8,860,0 | ||||
|  PRODUCTVERSION 2,8,860,0 | ||||
|  FILEVERSION 2,8,861,0 | ||||
|  PRODUCTVERSION 2,8,861,0 | ||||
|  FILEFLAGSMASK 0x3fL | ||||
| #ifdef _DEBUG | ||||
|  FILEFLAGS 0x1L | ||||
|  | @ -338,13 +338,13 @@ BEGIN | |||
|         BEGIN | ||||
|             VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" | ||||
|             VALUE "FileDescription", "Rufus" | ||||
|             VALUE "FileVersion", "2.8.860" | ||||
|             VALUE "FileVersion", "2.8.861" | ||||
|             VALUE "InternalName", "Rufus" | ||||
|             VALUE "LegalCopyright", "© 2011-2016 Pete Batard (GPL v3)" | ||||
|             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" | ||||
|             VALUE "OriginalFilename", "rufus.exe" | ||||
|             VALUE "ProductName", "Rufus" | ||||
|             VALUE "ProductVersion", "2.8.860" | ||||
|             VALUE "ProductVersion", "2.8.861" | ||||
|         END | ||||
|     END | ||||
|     BLOCK "VarFileInfo" | ||||
|  |  | |||
							
								
								
									
										13
									
								
								src/smart.c
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								src/smart.c
									
										
									
									
									
								
							|  | @ -1,7 +1,7 @@ | |||
| /*
 | ||||
|  * Rufus: The Reliable USB Formatting Utility | ||||
|  * SMART HDD vs Flash detection (using ATA over USB, S.M.A.R.T., etc.) | ||||
|  * Copyright © 2013-2014 Pete Batard <pete@akeo.ie> | ||||
|  * Copyright © 2013-2016 Pete Batard <pete@akeo.ie> | ||||
|  * | ||||
|  * Based in part on scsiata.cpp from Smartmontools: http://smartmontools.sourceforge.net
 | ||||
|  * Copyright © 2006-12 Douglas Gilbert <dgilbert@interlog.com> | ||||
|  | @ -31,8 +31,10 @@ | |||
| #include <ctype.h> | ||||
| #include <stddef.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "rufus.h" | ||||
| #include "missing.h" | ||||
| #include "msapi_utf8.h" | ||||
| 
 | ||||
| #include "drive.h" | ||||
| #include "smart.h" | ||||
| #include "hdd_vs_ufd.h" | ||||
|  | @ -43,7 +45,7 @@ static uint8_t GetAtaDirection(uint8_t AtaCmd, uint8_t Features) { | |||
| 	// Far from complete -- only the commands we *may* use.
 | ||||
| 
 | ||||
| 	// Most SMART commands require DATA_IN but there are a couple exceptions
 | ||||
| 	BOOL smart_out = (AtaCmd == ATA_SMART_CMD) &&  | ||||
| 	BOOL smart_out = (AtaCmd == ATA_SMART_CMD) && | ||||
| 		((Features == ATA_SMART_STATUS) || (Features == ATA_SMART_WRITE_LOG_SECTOR)); | ||||
| 
 | ||||
| 	switch (AtaCmd) { | ||||
|  | @ -413,7 +415,7 @@ BOOL SmartGetVersion(HANDLE hdevice) | |||
|  * THUS, IF DATA LOSS IS INCURRED DUE TO THIS, OR ANY OTHER PART OF THIS APPLICATION, | ||||
|  * NOT BEHAVING IN THE MANNER YOU EXPECTED, THE RESPONSIBILITY IS ENTIRELY ON YOU! | ||||
|  * | ||||
|  * What you have below, then, is our *current best guess* at differentiating UFDs  | ||||
|  * What you have below, then, is our *current best guess* at differentiating UFDs | ||||
|  * from HDDs. But short of a crystal ball, this remains just a guess, which may be | ||||
|  * way off mark. Still, you are also reminded that Rufus does produce PROMINENT | ||||
|  * warnings before you format a drive, and also provides extensive info about the | ||||
|  | @ -426,7 +428,7 @@ BOOL SmartGetVersion(HANDLE hdevice) | |||
|  * - some UFDs (SanDisk Extreme) have added S.M.A.R.T. support, which also used to be | ||||
|  *   reserved for HDDs => can't use that either | ||||
|  * - even if S.M.A.R.T. was enough, not all USB->IDE or USB->SATA bridges support ATA | ||||
|  *   passthrough, which is required S.M.A.R.T. data, and each manufacturer of an  | ||||
|  *   passthrough, which is required S.M.A.R.T. data, and each manufacturer of an | ||||
|  *   USB<->(S)ATA bridge seem to have their own method of implementing passthrough. | ||||
|  * - SSDs have also changed the deal completely, as you can get something that looks | ||||
|  *   like Flash but that is really an HDD. | ||||
|  | @ -436,7 +438,6 @@ BOOL SmartGetVersion(HANDLE hdevice) | |||
|  *   from the above) => there is no magic API we can query that will tell us what we're | ||||
|  *   really looking at. | ||||
|  */ | ||||
| #define GB 1073741824LL | ||||
| int IsHDD(DWORD DriveIndex, uint16_t vid, uint16_t pid, const char* strid) | ||||
| { | ||||
| 	int score = 0; | ||||
|  |  | |||
|  | @ -24,12 +24,13 @@ | |||
| #include <windows.h> | ||||
| #include <sddl.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "rufus.h" | ||||
| #include "resource.h" | ||||
| #include "settings.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "settings.h" | ||||
| 
 | ||||
| int  nWindowsVersion = WINDOWS_UNDEFINED; | ||||
| char WindowsVersionStr[128] = "Windows "; | ||||
| 
 | ||||
|  |  | |||
|  | @ -29,9 +29,9 @@ | |||
| #include <ctype.h> | ||||
| #include <math.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "rufus.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| /*
 | ||||
|  |  | |||
|  | @ -35,12 +35,13 @@ | |||
| #include <richedit.h> | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "registry.h" | ||||
| #include "settings.h" | ||||
| #include "resource.h" | ||||
| #include "license.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) | ||||
| PF_TYPE_DECL(WINAPI, HRESULT, SHCreateItemFromParsingName, (PCWSTR, IBindCtx*, REFIID, void **)); | ||||
|  |  | |||
|  | @ -27,10 +27,11 @@ | |||
| #include <ctype.h> | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "drive.h" | ||||
| #include "resource.h" | ||||
| #include "localization.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "drive.h" | ||||
| 
 | ||||
| #include "syslinux.h" | ||||
| #include "syslxfs.h" | ||||
|  |  | |||
|  | @ -33,11 +33,13 @@ | |||
| #include <commctrl.h> | ||||
| #include <setupapi.h> | ||||
| 
 | ||||
| #include "msapi_utf8.h" | ||||
| #include "rufus.h" | ||||
| #include "drive.h" | ||||
| #include "missing.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| #include "localization.h" | ||||
| 
 | ||||
| #include "drive.h" | ||||
| #include "usb.h" | ||||
| 
 | ||||
| extern StrArray DriveID, DriveLabel; | ||||
|  | @ -537,7 +539,7 @@ BOOL GetUSBDevices(DWORD devnum) | |||
| 				safe_free(devint_detail_data); | ||||
| 				break; | ||||
| 			} | ||||
| 			if (GetDriveSize(drive_index) < (MIN_DRIVE_SIZE*1024*1024)) { | ||||
| 			if (GetDriveSize(drive_index) < (MIN_DRIVE_SIZE*MB)) { | ||||
| 				uprintf("Device eliminated because it is smaller than %d MB\n", MIN_DRIVE_SIZE); | ||||
| 				safe_closehandle(hDrive); | ||||
| 				safe_free(devint_detail_data); | ||||
|  |  | |||
							
								
								
									
										12
									
								
								src/vhd.c
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								src/vhd.c
									
										
									
									
									
								
							|  | @ -24,22 +24,14 @@ | |||
| #include <time.h> | ||||
| 
 | ||||
| #include "rufus.h" | ||||
| #include "missing.h" | ||||
| #include "resource.h" | ||||
| #include "msapi_utf8.h" | ||||
| 
 | ||||
| #include "drive.h" | ||||
| #include "registry.h" | ||||
| #include "bled/bled.h" | ||||
| 
 | ||||
| #if defined(_MSC_VER) | ||||
| #define bswap_uint64 _byteswap_uint64 | ||||
| #define bswap_uint32 _byteswap_ulong | ||||
| #define bswap_uint16 _byteswap_ushort | ||||
| #else | ||||
| #define bswap_uint64 __builtin_bswap64 | ||||
| #define bswap_uint32 __builtin_bswap32 | ||||
| #define bswap_uint16 __builtin_bswap16 | ||||
| #endif | ||||
| 
 | ||||
| #define VHD_FOOTER_COOKIE					{ 'c', 'o', 'n', 'e', 'c', 't', 'i', 'x' } | ||||
| 
 | ||||
| #define VHD_FOOTER_FEATURES_NONE			0x00000000 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue