mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[core] use GetTickCount64() always where possible
* Damn you XP!!! * Also some more code cleanup
This commit is contained in:
		
							parent
							
								
									d20eb9262b
								
							
						
					
					
						commit
						250d46e401
					
				
					 15 changed files with 67 additions and 54 deletions
				
			
		|  | @ -778,8 +778,8 @@ INT_PTR CALLBACK ChecksumCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM | ||||||
| DWORD WINAPI SumThread(void* param) | DWORD WINAPI SumThread(void* param) | ||||||
| { | { | ||||||
| 	HANDLE h = INVALID_HANDLE_VALUE; | 	HANDLE h = INVALID_HANDLE_VALUE; | ||||||
| 	DWORD rSize = 0, LastRefresh = 0; | 	DWORD rSize = 0; | ||||||
| 	uint64_t rb; | 	uint64_t rb, LastRefresh = 0; | ||||||
| 	char buffer[4096]; | 	char buffer[4096]; | ||||||
| 	SHA1_CONTEXT sha1_ctx; | 	SHA1_CONTEXT sha1_ctx; | ||||||
| 	SHA256_CONTEXT sha256_ctx; | 	SHA256_CONTEXT sha256_ctx; | ||||||
|  | @ -804,8 +804,8 @@ DWORD WINAPI SumThread(void* param) | ||||||
| 	md5_init(&md5_ctx); | 	md5_init(&md5_ctx); | ||||||
| 
 | 
 | ||||||
| 	for (rb = 0; ; rb += rSize) { | 	for (rb = 0; ; rb += rSize) { | ||||||
| 		if (GetTickCount() > LastRefresh + 25) { | 		if (_GetTickCount64() > LastRefresh + 25) { | ||||||
| 			LastRefresh = GetTickCount(); | 			LastRefresh = _GetTickCount64(); | ||||||
| 			format_percent = (100.0f*rb) / (1.0f*img_report.projected_size); | 			format_percent = (100.0f*rb) / (1.0f*img_report.projected_size); | ||||||
| 			PrintInfo(0, MSG_271, format_percent); | 			PrintInfo(0, MSG_271, format_percent); | ||||||
| 			SendMessage(hProgress, PBM_SETPOS, (WPARAM)((format_percent/100.0f)*MAX_PROGRESS), 0); | 			SendMessage(hProgress, PBM_SETPOS, (WPARAM)((format_percent/100.0f)*MAX_PROGRESS), 0); | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ | ||||||
| #include <string.h> | #include <string.h> | ||||||
| 
 | 
 | ||||||
| #include "rufus.h" | #include "rufus.h" | ||||||
|  | #include "missing.h" | ||||||
| #include "resource.h" | #include "resource.h" | ||||||
| 
 | 
 | ||||||
| #include "dos.h" | #include "dos.h" | ||||||
|  | @ -325,7 +326,7 @@ static BOOL ExtractMSDOS(const char* path) | ||||||
| 		goto out; | 		goto out; | ||||||
| 
 | 
 | ||||||
| 	// Sanity check
 | 	// Sanity check
 | ||||||
| 	if (DiskImageSize < 700*1024) { | 	if (DiskImageSize < 700*KB) { | ||||||
| 		uprintf("MS-DOS disk image is too small (%d bytes)\n", dllname, DiskImageSize); | 		uprintf("MS-DOS disk image is too small (%d bytes)\n", dllname, DiskImageSize); | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -1189,7 +1189,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m | ||||||
| 		// This helps us reselect the partition scheme option that was used when creating the
 | 		// This helps us reselect the partition scheme option that was used when creating the
 | ||||||
| 		// drive in Rufus. As far as I can tell, Windows doesn't care much if this signature
 | 		// drive in Rufus. As far as I can tell, Windows doesn't care much if this signature
 | ||||||
| 		// isn't unique for USB drives.
 | 		// isn't unique for USB drives.
 | ||||||
| 		CreateDisk.Mbr.Signature = mbr_uefi_marker?MBR_UEFI_MARKER:GetTickCount(); | 		CreateDisk.Mbr.Signature = mbr_uefi_marker?MBR_UEFI_MARKER:(DWORD)_GetTickCount64(); | ||||||
| 
 | 
 | ||||||
| 		DriveLayoutEx.PartitionStyle = PARTITION_STYLE_MBR; | 		DriveLayoutEx.PartitionStyle = PARTITION_STYLE_MBR; | ||||||
| 		DriveLayoutEx.PartitionCount = 4;	// Must be multiple of 4 for MBR
 | 		DriveLayoutEx.PartitionCount = 4;	// Must be multiple of 4 for MBR
 | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								src/format.c
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								src/format.c
									
										
									
									
									
								
							|  | @ -55,7 +55,7 @@ | ||||||
|  */ |  */ | ||||||
| DWORD FormatStatus; | DWORD FormatStatus; | ||||||
| badblocks_report report; | badblocks_report report; | ||||||
| static DWORD LastRefresh; | static uint64_t LastRefresh; | ||||||
| static float format_percent = 0.0f; | static float format_percent = 0.0f; | ||||||
| static int task_number = 0; | static int task_number = 0; | ||||||
| extern const int nb_steps[FS_MAX]; | extern const int nb_steps[FS_MAX]; | ||||||
|  | @ -623,8 +623,8 @@ static BOOL FormatFAT32(DWORD DriveIndex) | ||||||
| 
 | 
 | ||||||
| 	format_percent = 0.0f; | 	format_percent = 0.0f; | ||||||
| 	for (i=0; i<(SystemAreaSize+BurstSize-1); i+=BurstSize) { | 	for (i=0; i<(SystemAreaSize+BurstSize-1); i+=BurstSize) { | ||||||
| 		if (GetTickCount() > LastRefresh + 25) { | 		if (_GetTickCount64() > LastRefresh + 25) { | ||||||
| 			LastRefresh = GetTickCount(); | 			LastRefresh = _GetTickCount64(); | ||||||
| 			format_percent = (100.0f*i)/(1.0f*(SystemAreaSize+BurstSize)); | 			format_percent = (100.0f*i)/(1.0f*(SystemAreaSize+BurstSize)); | ||||||
| 			PrintInfo(0, MSG_217, format_percent); | 			PrintInfo(0, MSG_217, format_percent); | ||||||
| 			UpdateProgress(OP_FORMAT, format_percent); | 			UpdateProgress(OP_FORMAT, format_percent); | ||||||
|  | @ -1460,8 +1460,8 @@ DWORD WINAPI CloseFormatPromptThread(LPVOID param) { | ||||||
| 
 | 
 | ||||||
| void update_progress(const uint64_t processed_bytes) | void update_progress(const uint64_t processed_bytes) | ||||||
| { | { | ||||||
| 	if (GetTickCount() > LastRefresh + 25) { | 	if (_GetTickCount64() > LastRefresh + 25) { | ||||||
| 		LastRefresh = GetTickCount(); | 		LastRefresh = _GetTickCount64(); | ||||||
| 		format_percent = (100.0f*processed_bytes)/(1.0f*img_report.projected_size); | 		format_percent = (100.0f*processed_bytes)/(1.0f*img_report.projected_size); | ||||||
| 		PrintInfo(0, MSG_261, format_percent); | 		PrintInfo(0, MSG_261, format_percent); | ||||||
| 		UpdateProgress(OP_FORMAT, format_percent); | 		UpdateProgress(OP_FORMAT, format_percent); | ||||||
|  | @ -1613,8 +1613,8 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 		// http://msdn.microsoft.com/en-us/library/windows/desktop/aa365747.aspx does buffer sector alignment
 | 		// http://msdn.microsoft.com/en-us/library/windows/desktop/aa365747.aspx does buffer sector alignment
 | ||||||
| 		aligned_buffer = ((void *)((((uintptr_t)(buffer)) + (SectorSize)-1) & (~(((uintptr_t)(SectorSize)) - 1)))); | 		aligned_buffer = ((void *)((((uintptr_t)(buffer)) + (SectorSize)-1) & (~(((uintptr_t)(SectorSize)) - 1)))); | ||||||
| 		for (wb = 0, wSize = 0; wb < (uint64_t)SelectedDrive.DiskSize; wb += wSize) { | 		for (wb = 0, wSize = 0; wb < (uint64_t)SelectedDrive.DiskSize; wb += wSize) { | ||||||
| 			if (GetTickCount() > LastRefresh + 25) { | 			if (_GetTickCount64() > LastRefresh + 25) { | ||||||
| 				LastRefresh = GetTickCount(); | 				LastRefresh = _GetTickCount64(); | ||||||
| 				format_percent = (100.0f*wb) / (1.0f*SelectedDrive.DiskSize); | 				format_percent = (100.0f*wb) / (1.0f*SelectedDrive.DiskSize); | ||||||
| 				PrintInfo(0, MSG_286, format_percent); | 				PrintInfo(0, MSG_286, format_percent); | ||||||
| 				UpdateProgress(OP_FORMAT, format_percent); | 				UpdateProgress(OP_FORMAT, format_percent); | ||||||
|  | @ -1762,8 +1762,8 @@ DWORD WINAPI FormatThread(void* param) | ||||||
| 				} | 				} | ||||||
| 				if (rSize == 0) | 				if (rSize == 0) | ||||||
| 					break; | 					break; | ||||||
| 				if (GetTickCount() > LastRefresh + 25) { | 				if (_GetTickCount64() > LastRefresh + 25) { | ||||||
| 					LastRefresh = GetTickCount(); | 					LastRefresh = _GetTickCount64(); | ||||||
| 					format_percent = (100.0f*wb)/(1.0f*img_report.projected_size); | 					format_percent = (100.0f*wb)/(1.0f*img_report.projected_size); | ||||||
| 					PrintInfo(0, MSG_261, format_percent); | 					PrintInfo(0, MSG_261, format_percent); | ||||||
| 					UpdateProgress(OP_FORMAT, format_percent); | 					UpdateProgress(OP_FORMAT, format_percent); | ||||||
|  | @ -2084,8 +2084,8 @@ DWORD WINAPI SaveImageThread(void* param) | ||||||
| 		} | 		} | ||||||
| 		if (rSize == 0) | 		if (rSize == 0) | ||||||
| 			break; | 			break; | ||||||
| 		if (GetTickCount() > LastRefresh + 25) { | 		if (_GetTickCount64() > LastRefresh + 25) { | ||||||
| 			LastRefresh = GetTickCount(); | 			LastRefresh = _GetTickCount64(); | ||||||
| 			format_percent = (100.0f*wb)/(1.0f*SelectedDrive.DiskSize); | 			format_percent = (100.0f*wb)/(1.0f*SelectedDrive.DiskSize); | ||||||
| 			PrintInfo(0, MSG_261, format_percent); | 			PrintInfo(0, MSG_261, format_percent); | ||||||
| 			UpdateProgress(OP_FORMAT, format_percent); | 			UpdateProgress(OP_FORMAT, format_percent); | ||||||
|  |  | ||||||
|  | @ -28,6 +28,7 @@ | ||||||
| #include <string.h> | #include <string.h> | ||||||
| 
 | 
 | ||||||
| #include "rufus.h" | #include "rufus.h" | ||||||
|  | #include "missing.h" | ||||||
| #include "resource.h" | #include "resource.h" | ||||||
| #include "msapi_utf8.h" | #include "msapi_utf8.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -446,7 +446,7 @@ static void CALLBACK OutputMessageTimeout(HWND hWnd, UINT uMsg, UINT_PTR idEvent | ||||||
| 	KillTimer(hMainDialog, idEvent); | 	KillTimer(hMainDialog, idEvent); | ||||||
| 	bOutputTimerArmed[i] = FALSE; | 	bOutputTimerArmed[i] = FALSE; | ||||||
| 	PrintMessage[i](output_msg[i]); | 	PrintMessage[i](output_msg[i]); | ||||||
| 	last_msg_time[i] = GetTickCount64(); | 	last_msg_time[i] = _GetTickCount64(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void OutputMessage(BOOL info, char* msg) | static void OutputMessage(BOOL info, char* msg) | ||||||
|  | @ -459,7 +459,7 @@ static void OutputMessage(BOOL info, char* msg) | ||||||
| 		output_msg[i] = msg; | 		output_msg[i] = msg; | ||||||
| 	} else { | 	} else { | ||||||
| 		// Find if we need to arm a timer
 | 		// Find if we need to arm a timer
 | ||||||
| 		delta = GetTickCount64() - last_msg_time[i]; | 		delta = _GetTickCount64() - last_msg_time[i]; | ||||||
| 		if (delta < MSG_DELAY) { | 		if (delta < MSG_DELAY) { | ||||||
| 			// Not enough time has elapsed since our last output => arm a timer
 | 			// Not enough time has elapsed since our last output => arm a timer
 | ||||||
| 			output_msg[i] = msg; | 			output_msg[i] = msg; | ||||||
|  | @ -467,7 +467,7 @@ static void OutputMessage(BOOL info, char* msg) | ||||||
| 			bOutputTimerArmed[i] = TRUE; | 			bOutputTimerArmed[i] = TRUE; | ||||||
| 		} else { | 		} else { | ||||||
| 			PrintMessage[i](msg); | 			PrintMessage[i](msg); | ||||||
| 			last_msg_time[i] = GetTickCount64(); | 			last_msg_time[i] = _GetTickCount64(); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -51,6 +51,12 @@ static __inline void *_reallocf(void *ptr, size_t size) { | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /* 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) | ||||||
|  | #define _RT_RCDATA			MAKEINTRESOURCEA(10) | ||||||
|  | #define _RT_GROUP_ICON		MAKEINTRESOURCEA((ULONG_PTR)(MAKEINTRESOURCEA(3) + 11)) | ||||||
|  | 
 | ||||||
| /* UI redefinitions for WDK and MinGW */ | /* UI redefinitions for WDK and MinGW */ | ||||||
| #ifndef PBM_SETSTATE | #ifndef PBM_SETSTATE | ||||||
| #define PBM_SETSTATE (WM_USER+16) | #define PBM_SETSTATE (WM_USER+16) | ||||||
|  | @ -212,3 +218,13 @@ typedef struct _ATTACH_VIRTUAL_DISK_PARAMETERS { | ||||||
| #if !defined(ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY) | #if !defined(ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY) | ||||||
| #define ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY (INTERNET_ERROR_BASE + 174) | #define ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY (INTERNET_ERROR_BASE + 174) | ||||||
| #endif | #endif | ||||||
|  | 
 | ||||||
|  | /* Clang/MinGW32 has an issue with intptr_t */ | ||||||
|  | #ifndef _UINTPTR_T_DEFINED | ||||||
|  | #define _UINTPTR_T_DEFINED | ||||||
|  | #ifdef _WIN64 | ||||||
|  | typedef unsigned __int64 uintptr_t; | ||||||
|  | #else | ||||||
|  | typedef unsigned int uintptr_t; | ||||||
|  | #endif | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ | ||||||
| #include <inttypes.h> | #include <inttypes.h> | ||||||
| 
 | 
 | ||||||
| #include "rufus.h" | #include "rufus.h" | ||||||
|  | #include "missing.h" | ||||||
| #include "resource.h" | #include "resource.h" | ||||||
| #include "msapi_utf8.h" | #include "msapi_utf8.h" | ||||||
| #include "localization.h" | #include "localization.h" | ||||||
|  | @ -38,7 +39,7 @@ | ||||||
| #include "settings.h" | #include "settings.h" | ||||||
| 
 | 
 | ||||||
| /* Maximum download chunk size, in bytes */ | /* Maximum download chunk size, in bytes */ | ||||||
| #define DOWNLOAD_BUFFER_SIZE    10240 | #define DOWNLOAD_BUFFER_SIZE    10*KB | ||||||
| /* Default delay between update checks (1 day) */ | /* Default delay between update checks (1 day) */ | ||||||
| #define DEFAULT_UPDATE_INTERVAL (24*3600) | #define DEFAULT_UPDATE_INTERVAL (24*3600) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -94,6 +94,7 @@ OPENED_LIBRARIES_VARS; | ||||||
| HINSTANCE hMainInstance; | HINSTANCE hMainInstance; | ||||||
| HWND hMainDialog, hLangToolbar = NULL, hUpdatesDlg = NULL; | HWND hMainDialog, hLangToolbar = NULL, hUpdatesDlg = NULL; | ||||||
| MY_BUTTON_IMAGELIST bi_iso = { 0 }, bi_up = { 0 }, bi_down = { 0 }; | MY_BUTTON_IMAGELIST bi_iso = { 0 }, bi_up = { 0 }, bi_down = { 0 }; | ||||||
|  | GetTickCount64_t pfGetTickCount64 = NULL; | ||||||
| char szFolderPath[MAX_PATH], app_dir[MAX_PATH], system_dir[MAX_PATH], sysnative_dir[MAX_PATH]; | char szFolderPath[MAX_PATH], app_dir[MAX_PATH], system_dir[MAX_PATH], sysnative_dir[MAX_PATH]; | ||||||
| char* image_path = NULL; | char* image_path = NULL; | ||||||
| float fScale = 1.0f; | float fScale = 1.0f; | ||||||
|  | @ -2038,7 +2039,8 @@ void SaveVHD(void) | ||||||
|  */ |  */ | ||||||
| static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) | static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) | ||||||
| { | { | ||||||
| 	static DWORD DeviceNum = 0, LastRefresh = 0; | 	static DWORD DeviceNum = 0; | ||||||
|  | 	static uint64_t LastRefresh = 0; | ||||||
| 	static BOOL first_log_display = TRUE, isMarquee = FALSE; | 	static BOOL first_log_display = TRUE, isMarquee = FALSE; | ||||||
| 	static ULONG ulRegister = 0; | 	static ULONG ulRegister = 0; | ||||||
| 	static LPITEMIDLIST pidlDesktop = NULL; | 	static LPITEMIDLIST pidlDesktop = NULL; | ||||||
|  | @ -2078,15 +2080,15 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 			case DBT_DEVICEARRIVAL: | 			case DBT_DEVICEARRIVAL: | ||||||
| 			case DBT_DEVICEREMOVECOMPLETE: | 			case DBT_DEVICEREMOVECOMPLETE: | ||||||
| 			case DBT_CUSTOMEVENT:	// Sent by our timer refresh function or for card reader media change
 | 			case DBT_CUSTOMEVENT:	// Sent by our timer refresh function or for card reader media change
 | ||||||
| 				LastRefresh = GetTickCount();	// Don't care about 49.7 days rollback of GetTickCount()
 | 				LastRefresh = _GetTickCount64(); | ||||||
| 				KillTimer(hMainDialog, TID_REFRESH_TIMER); | 				KillTimer(hMainDialog, TID_REFRESH_TIMER); | ||||||
| 				GetUSBDevices((DWORD)ComboBox_GetItemData(hDeviceList, ComboBox_GetCurSel(hDeviceList))); | 				GetUSBDevices((DWORD)ComboBox_GetItemData(hDeviceList, ComboBox_GetCurSel(hDeviceList))); | ||||||
| 				user_changed_label = FALSE; | 				user_changed_label = FALSE; | ||||||
| 				return (INT_PTR)TRUE; | 				return (INT_PTR)TRUE; | ||||||
| 			case DBT_DEVNODES_CHANGED: | 			case DBT_DEVNODES_CHANGED: | ||||||
| 				// If it's been more than a second since last device refresh, arm a refresh timer
 | 				// If it's been more than a second since last device refresh, arm a refresh timer
 | ||||||
| 				if (GetTickCount() > LastRefresh + 1000) { | 				if (_GetTickCount64() > LastRefresh + 1000) { | ||||||
| 					LastRefresh = GetTickCount(); | 					LastRefresh = _GetTickCount64(); | ||||||
| 					SetTimer(hMainDialog, TID_REFRESH_TIMER, 1000, RefreshTimer); | 					SetTimer(hMainDialog, TID_REFRESH_TIMER, 1000, RefreshTimer); | ||||||
| 				} | 				} | ||||||
| 				break; | 				break; | ||||||
|  | @ -2789,6 +2791,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 	uprintf("*** " APPLICATION_NAME " init ***\n"); | 	uprintf("*** " APPLICATION_NAME " init ***\n"); | ||||||
|  | 	PF_INIT(GetTickCount64, kernel32); | ||||||
| 
 | 
 | ||||||
| 	// Reattach the console, if we were started from commandline
 | 	// Reattach the console, if we were started from commandline
 | ||||||
| 	if (AttachConsole(ATTACH_PARENT_PROCESS) != 0) { | 	if (AttachConsole(ATTACH_PARENT_PROCESS) != 0) { | ||||||
|  | @ -3009,7 +3012,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine | ||||||
| 				uprintf("Failed to enable AutoMount"); | 				uprintf("Failed to enable AutoMount"); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	srand((unsigned int)GetTickCount()); | 	srand((unsigned int)_GetTickCount64()); | ||||||
| 
 | 
 | ||||||
| relaunch: | relaunch: | ||||||
| 	uprintf("localization: using locale '%s'\n", selected_locale->txt[0]); | 	uprintf("localization: using locale '%s'\n", selected_locale->txt[0]); | ||||||
|  |  | ||||||
							
								
								
									
										21
									
								
								src/rufus.h
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								src/rufus.h
									
										
									
									
									
								
							|  | @ -23,7 +23,7 @@ | ||||||
| #if defined(_MSC_VER) | #if defined(_MSC_VER) | ||||||
| // Disable some VS2012 Code Analysis warnings
 | // Disable some VS2012 Code Analysis warnings
 | ||||||
| #pragma warning(disable: 4996)		// Ignore deprecated (eg. GetVersionEx()), as we have to contend with XP
 | #pragma warning(disable: 4996)		// Ignore deprecated (eg. GetVersionEx()), as we have to contend with XP
 | ||||||
| #pragma warning(disable: 28159)		// VS2012 wants us to use GetTickCount64(), but it's not available on XP
 | #pragma warning(disable: 28159)		// We use GetTickCount64() where possible, but it's not available on XP
 | ||||||
| #pragma warning(disable: 6258)		// I know what I'm using TerminateThread for
 | #pragma warning(disable: 6258)		// I know what I'm using TerminateThread for
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | @ -537,16 +537,6 @@ static __inline HMODULE GetLibraryHandle(char* szLibraryName) { | ||||||
| 	if (pf##proc == NULL) {uprintf("Unable to locate %s() in %s.dll: %s\n",  \ | 	if (pf##proc == NULL) {uprintf("Unable to locate %s() in %s.dll: %s\n",  \ | ||||||
| 	#proc, #name, WindowsErrorString()); goto out;} } while(0) | 	#proc, #name, WindowsErrorString()); goto out;} } while(0) | ||||||
| 
 | 
 | ||||||
| /* Clang/MinGW32 has an issue with intptr_t */ |  | ||||||
| #ifndef _UINTPTR_T_DEFINED |  | ||||||
| #define _UINTPTR_T_DEFINED |  | ||||||
| #ifdef _WIN64 |  | ||||||
|   typedef unsigned __int64 uintptr_t; |  | ||||||
| #else |  | ||||||
|   typedef unsigned int uintptr_t; |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /* Custom application errors */ | /* Custom application errors */ | ||||||
| #define FAC(f)                         (f<<16) | #define FAC(f)                         (f<<16) | ||||||
| #define APPERR(err)                    (APPLICATION_ERROR_MASK|err) | #define APPERR(err)                    (APPLICATION_ERROR_MASK|err) | ||||||
|  | @ -563,8 +553,7 @@ static __inline HMODULE GetLibraryHandle(char* szLibraryName) { | ||||||
| #define ERROR_CANT_ASSIGN_LETTER       0x120B | #define ERROR_CANT_ASSIGN_LETTER       0x120B | ||||||
| #define ERROR_CANT_MOUNT_VOLUME        0x120C | #define ERROR_CANT_MOUNT_VOLUME        0x120C | ||||||
| 
 | 
 | ||||||
| /* Why oh why does Microsoft have to make everybody suffer with their braindead use of Unicode? */ | /* GetTickCount64 not being available on XP is a massive bother */ | ||||||
| #define _RT_ICON			MAKEINTRESOURCEA(3) | PF_TYPE(WINAPI, ULONGLONG, GetTickCount64, (void)); | ||||||
| #define _RT_DIALOG			MAKEINTRESOURCEA(5) | extern GetTickCount64_t pfGetTickCount64; | ||||||
| #define _RT_RCDATA			MAKEINTRESOURCEA(10) | #define _GetTickCount64() ((pfGetTickCount64 != NULL)?(uint64_t)pfGetTickCount64():(uint64_t)GetTickCount()) | ||||||
| #define _RT_GROUP_ICON		MAKEINTRESOURCEA((ULONG_PTR)(MAKEINTRESOURCEA(3) + 11)) |  | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -33,7 +33,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 | ||||||
| EXSTYLE WS_EX_ACCEPTFILES | EXSTYLE WS_EX_ACCEPTFILES | ||||||
| CAPTION "Rufus 2.8.866" | CAPTION "Rufus 2.8.867" | ||||||
| FONT 8, "Segoe UI Symbol", 400, 0, 0x0 | FONT 8, "Segoe UI Symbol", 400, 0, 0x0 | ||||||
| BEGIN | BEGIN | ||||||
|     LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8 |     LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8 | ||||||
|  | @ -320,8 +320,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 2,8,866,0 |  FILEVERSION 2,8,867,0 | ||||||
|  PRODUCTVERSION 2,8,866,0 |  PRODUCTVERSION 2,8,867,0 | ||||||
|  FILEFLAGSMASK 0x3fL |  FILEFLAGSMASK 0x3fL | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|  FILEFLAGS 0x1L |  FILEFLAGS 0x1L | ||||||
|  | @ -338,13 +338,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.8.866" |             VALUE "FileVersion", "2.8.867" | ||||||
|             VALUE "InternalName", "Rufus" |             VALUE "InternalName", "Rufus" | ||||||
|             VALUE "LegalCopyright", "© 2011-2016 Pete Batard (GPL v3)" |             VALUE "LegalCopyright", "© 2011-2016 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.8.866" |             VALUE "ProductVersion", "2.8.867" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  |  | ||||||
|  | @ -31,7 +31,7 @@ extern char* ini_file; | ||||||
| #define SETTING_LAST_UPDATE                 "LastUpdateCheck" | #define SETTING_LAST_UPDATE                 "LastUpdateCheck" | ||||||
| #define SETTING_UPDATE_INTERVAL             "UpdateCheckInterval" | #define SETTING_UPDATE_INTERVAL             "UpdateCheckInterval" | ||||||
| #define SETTING_INCLUDE_BETAS               "CheckForBetas" | #define SETTING_INCLUDE_BETAS               "CheckForBetas" | ||||||
| #define SETTING_COMM_CHECK                  "CommCheck" | #define SETTING_COMM_CHECK                  "CommCheck64" | ||||||
| #define SETTING_LOCALE                      "Locale" | #define SETTING_LOCALE                      "Locale" | ||||||
| #define SETTING_DISABLE_LGP                 "DisableLGP" | #define SETTING_DISABLE_LGP                 "DisableLGP" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -35,6 +35,7 @@ | ||||||
| #include <richedit.h> | #include <richedit.h> | ||||||
| 
 | 
 | ||||||
| #include "rufus.h" | #include "rufus.h" | ||||||
|  | #include "missing.h" | ||||||
| #include "resource.h" | #include "resource.h" | ||||||
| #include "msapi_utf8.h" | #include "msapi_utf8.h" | ||||||
| #include "localization.h" | #include "localization.h" | ||||||
|  | @ -1358,14 +1359,14 @@ INT_PTR CALLBACK UpdateCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM l | ||||||
| BOOL SetUpdateCheck(void) | BOOL SetUpdateCheck(void) | ||||||
| { | { | ||||||
| 	BOOL enable_updates; | 	BOOL enable_updates; | ||||||
| 	DWORD commcheck = GetTickCount(); | 	uint64_t commcheck = _GetTickCount64(); | ||||||
| 	notification_info more_info = { IDD_UPDATE_POLICY, UpdateCallback }; | 	notification_info more_info = { IDD_UPDATE_POLICY, UpdateCallback }; | ||||||
| 	char filename[MAX_PATH] = "", exename[] = APPLICATION_NAME ".exe"; | 	char filename[MAX_PATH] = "", exename[] = APPLICATION_NAME ".exe"; | ||||||
| 	size_t fn_len, exe_len; | 	size_t fn_len, exe_len; | ||||||
| 
 | 
 | ||||||
| 	// Test if we can read and write settings. If not, forget it.
 | 	// Test if we can read and write settings. If not, forget it.
 | ||||||
| 	WriteSetting32(SETTING_COMM_CHECK, commcheck); | 	WriteSetting64(SETTING_COMM_CHECK, commcheck); | ||||||
| 	if (ReadSetting32(SETTING_COMM_CHECK) != commcheck) | 	if (ReadSetting64(SETTING_COMM_CHECK) != commcheck) | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
| 	settings_commcheck = TRUE; | 	settings_commcheck = TRUE; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -27,6 +27,7 @@ | ||||||
| #include <ctype.h> | #include <ctype.h> | ||||||
| 
 | 
 | ||||||
| #include "rufus.h" | #include "rufus.h" | ||||||
|  | #include "missing.h" | ||||||
| #include "resource.h" | #include "resource.h" | ||||||
| #include "msapi_utf8.h" | #include "msapi_utf8.h" | ||||||
| #include "localization.h" | #include "localization.h" | ||||||
|  |  | ||||||
|  | @ -103,7 +103,7 @@ static char sevenzip_path[MAX_PATH]; | ||||||
| static const char conectix_str[] = VHD_FOOTER_COOKIE; | static const char conectix_str[] = VHD_FOOTER_COOKIE; | ||||||
| static uint32_t wim_nb_files, wim_proc_files; | static uint32_t wim_nb_files, wim_proc_files; | ||||||
| static BOOL count_files; | static BOOL count_files; | ||||||
| static DWORD LastRefresh; | static uint64_t LastRefresh; | ||||||
| 
 | 
 | ||||||
| static BOOL Get7ZipPath(void) | static BOOL Get7ZipPath(void) | ||||||
| { | { | ||||||
|  | @ -573,12 +573,12 @@ DWORD WINAPI WimProgressCallback(DWORD dwMsgId, WPARAM wParam, LPARAM lParam, PV | ||||||
| 			wim_nb_files++; | 			wim_nb_files++; | ||||||
| 		} else { | 		} else { | ||||||
| 			wim_proc_files++; | 			wim_proc_files++; | ||||||
| 			if (GetTickCount() > LastRefresh + 100) { | 			if (_GetTickCount64() > LastRefresh + 100) { | ||||||
| 				// At the end of an actual apply, the WIM API re-lists a bunch of directories it
 | 				// At the end of an actual apply, the WIM API re-lists a bunch of directories it
 | ||||||
| 				// already processed, so we end up with more entries than counted - ignore those.
 | 				// already processed, so we end up with more entries than counted - ignore those.
 | ||||||
| 				if (wim_proc_files > wim_nb_files) | 				if (wim_proc_files > wim_nb_files) | ||||||
| 					wim_proc_files = wim_nb_files; | 					wim_proc_files = wim_nb_files; | ||||||
| 				LastRefresh = GetTickCount(); | 				LastRefresh = _GetTickCount64(); | ||||||
| 				// x^3 progress, so as not to give a better idea right from the onset
 | 				// x^3 progress, so as not to give a better idea right from the onset
 | ||||||
| 				// as to the dismal speed with which the WIM API can actually apply files...
 | 				// as to the dismal speed with which the WIM API can actually apply files...
 | ||||||
| 				apply_percent = 4.636942595f * ((float)wim_proc_files) / ((float)wim_nb_files); | 				apply_percent = 4.636942595f * ((float)wim_proc_files) / ((float)wim_nb_files); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue