From 184ed5940d561cd5b5a57b74fe3f30fdef44df41 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 28 Apr 2020 22:27:52 +0100 Subject: [PATCH] Make it compile under Visual Studio 2019. --- setter/win32.c | 54 ++++++++++++++++++++++++++------------------------ setter/win32.h | 13 ++++++------ 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/setter/win32.c b/setter/win32.c index e604c03..1b085ca 100644 --- a/setter/win32.c +++ b/setter/win32.c @@ -29,6 +29,8 @@ Contains 32-bit and 64-bit Windows code Copyright (C) 2011-2020 Natalia Portillo *****************************************************************************/ +// ReSharper disable CppJoinDeclarationAndAssignment +// ReSharper disable CppDeprecatedEntity #if defined(__WINDOWS__) || defined(__TOS_WIN__) || defined(__WIN32__) || defined(_WIN64) || defined(_WIN32) || \ defined(__NT__) @@ -61,7 +63,7 @@ void GetOsInfo() printf("OS information:\n"); if(verInfo.dwPlatformId == VER_PLATFORM_WIN32s) - { printf("\tRunning under Windows %d.%d using Win32s.\n", verInfo.dwMajorVersion, verInfo.dwMinorVersion); } + printf("\tRunning under Windows %d.%d using Win32s.\n", verInfo.dwMajorVersion, verInfo.dwMinorVersion); else if(verInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { if(verInfo.dwMinorVersion == 10) @@ -89,7 +91,7 @@ void GetOsInfo() { if(strlen(verInfo.szCSDVersion) > 0) { - printf(" version %d.%02d.%d %s.\n", + printf(" version %d.%02d.%d %ls.\n", verInfo.dwMajorVersion, verInfo.dwMinorVersion, verInfo.dwBuildNumber, @@ -104,7 +106,7 @@ void GetOsInfo() { if(strlen(verInfo.szCSDVersion) > 0) { - printf(" version %d.%02d %s.\n", verInfo.dwMajorVersion, verInfo.dwMinorVersion, verInfo.szCSDVersion); + printf(" version %d.%02d %ls.\n", verInfo.dwMajorVersion, verInfo.dwMinorVersion, verInfo.szCSDVersion); } else { @@ -145,7 +147,7 @@ void GetOsInfo() { if(strlen(verInfo.szCSDVersion) > 0) { - printf(" version %d.%02d.%d %s.\n", + printf(" version %d.%02d.%d %ls.\n", verInfo.dwMajorVersion, verInfo.dwMinorVersion, verInfo.dwBuildNumber, @@ -160,7 +162,7 @@ void GetOsInfo() { if(strlen(verInfo.szCSDVersion) > 0) { - printf(" version %d.%02d %s.\n", verInfo.dwMajorVersion, verInfo.dwMinorVersion, verInfo.szCSDVersion); + printf(" version %d.%02d %ls.\n", verInfo.dwMajorVersion, verInfo.dwMinorVersion, verInfo.szCSDVersion); } else { @@ -3297,21 +3299,21 @@ void Fragmentation(const char *path, size_t clusterSize) void Sparse(const char *path) { - BOOL ret; - DWORD error; - LPTSTR lpVolumeNameBuffer; - DWORD dwMaximumComponentLength; - DWORD dwFileSystemFlags; - DWORD dwMaxNameSize = MAX_PATH + 1; - LPTSTR lpFileSystemNameBuffer; - LPTSTR lpRootPathName; - size_t pathSize = strlen(path); - DWORD rc, wRc, cRc, sRc, zRc; - FILE_ZERO_DATA_INFORMATION zeroData; - HANDLE h; - unsigned char * buffer; - int i; - DWORD dwNumberOfBytesWritten; + BOOL ret; + DWORD error; + LPTSTR lpVolumeNameBuffer; + DWORD dwMaximumComponentLength; + DWORD dwFileSystemFlags; + DWORD dwMaxNameSize = MAX_PATH + 1; + LPTSTR lpFileSystemNameBuffer; + LPTSTR lpRootPathName; + size_t pathSize = strlen(path); + DWORD rc, wRc, cRc, sRc, zRc; + WINNT_FILE_ZERO_DATA_INFORMATION zeroData; + HANDLE h; + unsigned char * buffer; + int i; + DWORD dwNumberOfBytesWritten; lpVolumeNameBuffer = malloc(dwMaxNameSize); @@ -3428,7 +3430,7 @@ void Sparse(const char *path) if(sRc == 1) { sRc = 0; - ret = DeviceIoControl(h, FSCTL_SET_SPARSE_OLD, NULL, 0, NULL, 0, &dwNumberOfBytesWritten, NULL); + ret = DeviceIoControl(h, FSCTL_SET_SPARSE, NULL, 0, NULL, 0, &dwNumberOfBytesWritten, NULL); if(!ret) { sRc = GetLastError(); } } } @@ -3441,7 +3443,7 @@ void Sparse(const char *path) ret = DeviceIoControl(h, FSCTL_SET_ZERO_DATA, &zeroData, - sizeof(FILE_ZERO_DATA_INFORMATION), + sizeof(WINNT_FILE_ZERO_DATA_INFORMATION), NULL, 0, &dwNumberOfBytesWritten, @@ -3453,9 +3455,9 @@ void Sparse(const char *path) { zRc = 0; ret = DeviceIoControl(h, - FSCTL_SET_ZERO_DATA_OLD, + FSCTL_SET_ZERO_DATA, &zeroData, - sizeof(FILE_ZERO_DATA_INFORMATION), + sizeof(WINNT_FILE_ZERO_DATA_INFORMATION), NULL, 0, &dwNumberOfBytesWritten, @@ -3516,7 +3518,7 @@ void Sparse(const char *path) ret = DeviceIoControl(h, FSCTL_SET_ZERO_DATA, &zeroData, - sizeof(FILE_ZERO_DATA_INFORMATION), + sizeof(WINNT_FILE_ZERO_DATA_INFORMATION), NULL, 0, &dwNumberOfBytesWritten, @@ -3530,7 +3532,7 @@ void Sparse(const char *path) ret = DeviceIoControl(h, FSCTL_SET_ZERO_DATA_OLD, &zeroData, - sizeof(FILE_ZERO_DATA_INFORMATION), + sizeof(WINNT_FILE_ZERO_DATA_INFORMATION), NULL, 0, &dwNumberOfBytesWritten, diff --git a/setter/win32.h b/setter/win32.h index 1493110..b431d8d 100644 --- a/setter/win32.h +++ b/setter/win32.h @@ -220,19 +220,20 @@ NTSTATUS (*NtSetEaFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG); #ifndef FSCTL_SET_SPARSE #define FSCTL_SET_SPARSE 0x000900C4 -#define FSCTL_SET_SPARSE_OLD 0x000980C4 #endif #ifndef FSCTL_SET_ZERO_DATA #define FSCTL_SET_ZERO_DATA 0x000900C8 -#define FSCTL_SET_ZERO_DATA_OLD 0x000980C8 #endif -typedef struct _FILE_ZERO_DATA_INFORMATION +#define FSCTL_SET_SPARSE_OLD 0x000980C4 +#define FSCTL_SET_ZERO_DATA_OLD 0x000980C8 + +typedef struct _WINNT_FILE_ZERO_DATA_INFORMATION { LARGE_INTEGER FileOffset; LARGE_INTEGER BeyondFinalZero; -} FILE_ZERO_DATA_INFORMATION, *PFILE_ZERO_DATA_INFORMATION; +} WINNT_FILE_ZERO_DATA_INFORMATION, *PWINNT_FILE_ZERO_DATA_INFORMATION; unsigned char CommentsEA[72] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x33, 0x00, 0x2E, 0x43, 0x4F, 0x4D, 0x4D, 0x45, 0x4E, 0x54, 0x53, 0x00, @@ -445,8 +446,8 @@ unsigned char IconEA[3516] = { #define Y2KTIMESTAMP_LO 0x256D4000 #define Y1KTIMESTAMP_LO 0x24D4A980 -BOOL (*CreateHardLinkA)(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES); -BOOL (*CreateSymbolicLinkA)(LPCSTR, LPCSTR, DWORD); +BOOL (*WinNtCreateHardLinkA)(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES); +BOOL (*WinNtCreateSymbolicLinkA)(LPCSTR, LPCSTR, DWORD); #endif