fix: windows compile broke
move winapi defs into #ifndef blocks don't check explicitly for __mingw__ define function name win_ioctl_clone didn't get updated in teh last commit Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
parent
536da704fc
commit
72292f4e03
@ -122,7 +122,12 @@ namespace fs = ghc::filesystem;
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_WIN) && defined(__MINGW32__)
|
#if defined(Q_OS_WIN)
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FSCTL_DUPLICATE_EXTENTS_TO_FILE
|
||||||
|
|
||||||
|
#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA )
|
||||||
|
|
||||||
typedef struct _DUPLICATE_EXTENTS_DATA {
|
typedef struct _DUPLICATE_EXTENTS_DATA {
|
||||||
HANDLE FileHandle;
|
HANDLE FileHandle;
|
||||||
@ -131,6 +136,12 @@ typedef struct _DUPLICATE_EXTENTS_DATA {
|
|||||||
LARGE_INTEGER ByteCount;
|
LARGE_INTEGER ByteCount;
|
||||||
} DUPLICATE_EXTENTS_DATA, *PDUPLICATE_EXTENTS_DATA;
|
} DUPLICATE_EXTENTS_DATA, *PDUPLICATE_EXTENTS_DATA;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FSCTL_GET_INTEGRITY_INFORMATION
|
||||||
|
|
||||||
|
#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS) // FSCTL_GET_INTEGRITY_INFORMATION_BUFFER
|
||||||
|
|
||||||
typedef struct _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER {
|
typedef struct _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER {
|
||||||
WORD ChecksumAlgorithm; // Checksum algorithm. e.g. CHECKSUM_TYPE_UNCHANGED, CHECKSUM_TYPE_NONE, CHECKSUM_TYPE_CRC32
|
WORD ChecksumAlgorithm; // Checksum algorithm. e.g. CHECKSUM_TYPE_UNCHANGED, CHECKSUM_TYPE_NONE, CHECKSUM_TYPE_CRC32
|
||||||
WORD Reserved; // Must be 0
|
WORD Reserved; // Must be 0
|
||||||
@ -139,19 +150,26 @@ typedef struct _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER {
|
|||||||
DWORD ClusterSizeInBytes;
|
DWORD ClusterSizeInBytes;
|
||||||
} FSCTL_GET_INTEGRITY_INFORMATION_BUFFER, *PFSCTL_GET_INTEGRITY_INFORMATION_BUFFER;
|
} FSCTL_GET_INTEGRITY_INFORMATION_BUFFER, *PFSCTL_GET_INTEGRITY_INFORMATION_BUFFER;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FSCTL_SET_INTEGRITY_INFORMATION
|
||||||
|
|
||||||
|
#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) // FSCTL_SET_INTEGRITY_INFORMATION_BUFFER
|
||||||
|
|
||||||
typedef struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER {
|
typedef struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER {
|
||||||
WORD ChecksumAlgorithm; // Checksum algorithm. e.g. CHECKSUM_TYPE_UNCHANGED, CHECKSUM_TYPE_NONE, CHECKSUM_TYPE_CRC32
|
WORD ChecksumAlgorithm; // Checksum algorithm. e.g. CHECKSUM_TYPE_UNCHANGED, CHECKSUM_TYPE_NONE, CHECKSUM_TYPE_CRC32
|
||||||
WORD Reserved; // Must be 0
|
WORD Reserved; // Must be 0
|
||||||
DWORD Flags; // FSCTL_INTEGRITY_FLAG_xxx
|
DWORD Flags; // FSCTL_INTEGRITY_FLAG_xxx
|
||||||
} FSCTL_SET_INTEGRITY_INFORMATION_BUFFER, *PFSCTL_SET_INTEGRITY_INFORMATION_BUFFER;
|
} FSCTL_SET_INTEGRITY_INFORMATION_BUFFER, *PFSCTL_SET_INTEGRITY_INFORMATION_BUFFER;
|
||||||
|
|
||||||
#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA )
|
#endif
|
||||||
#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS) // FSCTL_GET_INTEGRITY_INFORMATION_BUFFER
|
|
||||||
#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) // FSCTL_SET_INTEGRITY_INFORMATION_BUFFER
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef ERROR_NOT_CAPABLE
|
||||||
#define ERROR_NOT_CAPABLE 775L
|
#define ERROR_NOT_CAPABLE 775L
|
||||||
|
#endif
|
||||||
|
#ifndef ERROR_BLOCK_TOO_MANY_REFERENCES
|
||||||
#define ERROR_BLOCK_TOO_MANY_REFERENCES 347L
|
#define ERROR_BLOCK_TOO_MANY_REFERENCES 347L
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1197,7 +1215,7 @@ static long RoundUpToPowerOf2(long originalValue, long roundingMultiplePowerOf2)
|
|||||||
return (originalValue + mask) & ~mask;
|
return (originalValue + mask) & ~mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ioctl_clone(const std::wstring& src_path, const std::wstring& dst_path, std::error_code& ec)
|
bool win_ioctl_clone(const std::wstring& src_path, const std::wstring& dst_path, std::error_code& ec)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* This algorithm inspired from https://github.com/0xbadfca11/reflink
|
* This algorithm inspired from https://github.com/0xbadfca11/reflink
|
||||||
|
Loading…
Reference in New Issue
Block a user