mirror of
https://github.com/aaru-dps/fstester.git
synced 2025-12-16 19:24:39 +00:00
Make it compile under Visual Studio 2019.
This commit is contained in:
@@ -29,6 +29,8 @@ Contains 32-bit and 64-bit Windows code
|
|||||||
Copyright (C) 2011-2020 Natalia Portillo
|
Copyright (C) 2011-2020 Natalia Portillo
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
// ReSharper disable CppJoinDeclarationAndAssignment
|
||||||
|
// ReSharper disable CppDeprecatedEntity
|
||||||
#if defined(__WINDOWS__) || defined(__TOS_WIN__) || defined(__WIN32__) || defined(_WIN64) || defined(_WIN32) || \
|
#if defined(__WINDOWS__) || defined(__TOS_WIN__) || defined(__WIN32__) || defined(_WIN64) || defined(_WIN32) || \
|
||||||
defined(__NT__)
|
defined(__NT__)
|
||||||
|
|
||||||
@@ -61,7 +63,7 @@ void GetOsInfo()
|
|||||||
printf("OS information:\n");
|
printf("OS information:\n");
|
||||||
|
|
||||||
if(verInfo.dwPlatformId == VER_PLATFORM_WIN32s)
|
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)
|
else if(verInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
|
||||||
{
|
{
|
||||||
if(verInfo.dwMinorVersion == 10)
|
if(verInfo.dwMinorVersion == 10)
|
||||||
@@ -89,7 +91,7 @@ void GetOsInfo()
|
|||||||
{
|
{
|
||||||
if(strlen(verInfo.szCSDVersion) > 0)
|
if(strlen(verInfo.szCSDVersion) > 0)
|
||||||
{
|
{
|
||||||
printf(" version %d.%02d.%d %s.\n",
|
printf(" version %d.%02d.%d %ls.\n",
|
||||||
verInfo.dwMajorVersion,
|
verInfo.dwMajorVersion,
|
||||||
verInfo.dwMinorVersion,
|
verInfo.dwMinorVersion,
|
||||||
verInfo.dwBuildNumber,
|
verInfo.dwBuildNumber,
|
||||||
@@ -104,7 +106,7 @@ void GetOsInfo()
|
|||||||
{
|
{
|
||||||
if(strlen(verInfo.szCSDVersion) > 0)
|
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
|
else
|
||||||
{
|
{
|
||||||
@@ -145,7 +147,7 @@ void GetOsInfo()
|
|||||||
{
|
{
|
||||||
if(strlen(verInfo.szCSDVersion) > 0)
|
if(strlen(verInfo.szCSDVersion) > 0)
|
||||||
{
|
{
|
||||||
printf(" version %d.%02d.%d %s.\n",
|
printf(" version %d.%02d.%d %ls.\n",
|
||||||
verInfo.dwMajorVersion,
|
verInfo.dwMajorVersion,
|
||||||
verInfo.dwMinorVersion,
|
verInfo.dwMinorVersion,
|
||||||
verInfo.dwBuildNumber,
|
verInfo.dwBuildNumber,
|
||||||
@@ -160,7 +162,7 @@ void GetOsInfo()
|
|||||||
{
|
{
|
||||||
if(strlen(verInfo.szCSDVersion) > 0)
|
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
|
else
|
||||||
{
|
{
|
||||||
@@ -3297,21 +3299,21 @@ void Fragmentation(const char *path, size_t clusterSize)
|
|||||||
|
|
||||||
void Sparse(const char *path)
|
void Sparse(const char *path)
|
||||||
{
|
{
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
DWORD error;
|
DWORD error;
|
||||||
LPTSTR lpVolumeNameBuffer;
|
LPTSTR lpVolumeNameBuffer;
|
||||||
DWORD dwMaximumComponentLength;
|
DWORD dwMaximumComponentLength;
|
||||||
DWORD dwFileSystemFlags;
|
DWORD dwFileSystemFlags;
|
||||||
DWORD dwMaxNameSize = MAX_PATH + 1;
|
DWORD dwMaxNameSize = MAX_PATH + 1;
|
||||||
LPTSTR lpFileSystemNameBuffer;
|
LPTSTR lpFileSystemNameBuffer;
|
||||||
LPTSTR lpRootPathName;
|
LPTSTR lpRootPathName;
|
||||||
size_t pathSize = strlen(path);
|
size_t pathSize = strlen(path);
|
||||||
DWORD rc, wRc, cRc, sRc, zRc;
|
DWORD rc, wRc, cRc, sRc, zRc;
|
||||||
FILE_ZERO_DATA_INFORMATION zeroData;
|
WINNT_FILE_ZERO_DATA_INFORMATION zeroData;
|
||||||
HANDLE h;
|
HANDLE h;
|
||||||
unsigned char * buffer;
|
unsigned char * buffer;
|
||||||
int i;
|
int i;
|
||||||
DWORD dwNumberOfBytesWritten;
|
DWORD dwNumberOfBytesWritten;
|
||||||
|
|
||||||
lpVolumeNameBuffer = malloc(dwMaxNameSize);
|
lpVolumeNameBuffer = malloc(dwMaxNameSize);
|
||||||
|
|
||||||
@@ -3428,7 +3430,7 @@ void Sparse(const char *path)
|
|||||||
if(sRc == 1)
|
if(sRc == 1)
|
||||||
{
|
{
|
||||||
sRc = 0;
|
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(); }
|
if(!ret) { sRc = GetLastError(); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3441,7 +3443,7 @@ void Sparse(const char *path)
|
|||||||
ret = DeviceIoControl(h,
|
ret = DeviceIoControl(h,
|
||||||
FSCTL_SET_ZERO_DATA,
|
FSCTL_SET_ZERO_DATA,
|
||||||
&zeroData,
|
&zeroData,
|
||||||
sizeof(FILE_ZERO_DATA_INFORMATION),
|
sizeof(WINNT_FILE_ZERO_DATA_INFORMATION),
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
&dwNumberOfBytesWritten,
|
&dwNumberOfBytesWritten,
|
||||||
@@ -3453,9 +3455,9 @@ void Sparse(const char *path)
|
|||||||
{
|
{
|
||||||
zRc = 0;
|
zRc = 0;
|
||||||
ret = DeviceIoControl(h,
|
ret = DeviceIoControl(h,
|
||||||
FSCTL_SET_ZERO_DATA_OLD,
|
FSCTL_SET_ZERO_DATA,
|
||||||
&zeroData,
|
&zeroData,
|
||||||
sizeof(FILE_ZERO_DATA_INFORMATION),
|
sizeof(WINNT_FILE_ZERO_DATA_INFORMATION),
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
&dwNumberOfBytesWritten,
|
&dwNumberOfBytesWritten,
|
||||||
@@ -3516,7 +3518,7 @@ void Sparse(const char *path)
|
|||||||
ret = DeviceIoControl(h,
|
ret = DeviceIoControl(h,
|
||||||
FSCTL_SET_ZERO_DATA,
|
FSCTL_SET_ZERO_DATA,
|
||||||
&zeroData,
|
&zeroData,
|
||||||
sizeof(FILE_ZERO_DATA_INFORMATION),
|
sizeof(WINNT_FILE_ZERO_DATA_INFORMATION),
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
&dwNumberOfBytesWritten,
|
&dwNumberOfBytesWritten,
|
||||||
@@ -3530,7 +3532,7 @@ void Sparse(const char *path)
|
|||||||
ret = DeviceIoControl(h,
|
ret = DeviceIoControl(h,
|
||||||
FSCTL_SET_ZERO_DATA_OLD,
|
FSCTL_SET_ZERO_DATA_OLD,
|
||||||
&zeroData,
|
&zeroData,
|
||||||
sizeof(FILE_ZERO_DATA_INFORMATION),
|
sizeof(WINNT_FILE_ZERO_DATA_INFORMATION),
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
&dwNumberOfBytesWritten,
|
&dwNumberOfBytesWritten,
|
||||||
|
|||||||
@@ -220,19 +220,20 @@ NTSTATUS (*NtSetEaFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG);
|
|||||||
|
|
||||||
#ifndef FSCTL_SET_SPARSE
|
#ifndef FSCTL_SET_SPARSE
|
||||||
#define FSCTL_SET_SPARSE 0x000900C4
|
#define FSCTL_SET_SPARSE 0x000900C4
|
||||||
#define FSCTL_SET_SPARSE_OLD 0x000980C4
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef FSCTL_SET_ZERO_DATA
|
#ifndef FSCTL_SET_ZERO_DATA
|
||||||
#define FSCTL_SET_ZERO_DATA 0x000900C8
|
#define FSCTL_SET_ZERO_DATA 0x000900C8
|
||||||
#define FSCTL_SET_ZERO_DATA_OLD 0x000980C8
|
|
||||||
#endif
|
#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 FileOffset;
|
||||||
LARGE_INTEGER BeyondFinalZero;
|
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] = {
|
unsigned char CommentsEA[72] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x33, 0x00, 0x2E, 0x43, 0x4F, 0x4D, 0x4D, 0x45, 0x4E, 0x54, 0x53, 0x00,
|
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 Y2KTIMESTAMP_LO 0x256D4000
|
||||||
#define Y1KTIMESTAMP_LO 0x24D4A980
|
#define Y1KTIMESTAMP_LO 0x24D4A980
|
||||||
|
|
||||||
BOOL (*CreateHardLinkA)(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
|
BOOL (*WinNtCreateHardLinkA)(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
|
||||||
BOOL (*CreateSymbolicLinkA)(LPCSTR, LPCSTR, DWORD);
|
BOOL (*WinNtCreateSymbolicLinkA)(LPCSTR, LPCSTR, DWORD);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user