diff options
Diffstat (limited to 'src/Common/Tcdefs.h')
-rw-r--r-- | src/Common/Tcdefs.h | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/src/Common/Tcdefs.h b/src/Common/Tcdefs.h index 0ffb4c8d..3fd18358 100644 --- a/src/Common/Tcdefs.h +++ b/src/Common/Tcdefs.h @@ -32,154 +32,160 @@ void VeraCryptMemFree(IN VOID* ptr); #define TRUE 1 #endif #define max(a,b) ((a)>(b))?(a):(b) #define min(a,b) ((a)<(b))?(a):(b) #ifdef __cplusplus extern "C" { #endif extern unsigned __int64 __cdecl _rotl64(unsigned __int64,int); extern unsigned __int64 __cdecl _rotr64(unsigned __int64,int); extern unsigned int __cdecl _rotl(unsigned int,int); extern unsigned int __cdecl _rotr(unsigned int,int); extern unsigned char _rotr8(unsigned char value, unsigned char shift); extern unsigned short _rotr16(unsigned short value, unsigned char shift); extern unsigned char _rotl8(unsigned char value, unsigned char shift); extern unsigned short _rotl16(unsigned short value, unsigned char shift); #ifdef __cplusplus } #endif #endif // defined(_UEFI) #ifdef TC_WINDOWS_BOOT #include <stddef.h> #endif #define TC_APP_NAME "VeraCrypt" // Version displayed to user -#define VERSION_STRING "1.26.4" +#define VERSION_STRING "1.26.15" #ifdef VC_EFI_CUSTOM_MODE #define VERSION_STRING_SUFFIX "-CustomEFI" #elif defined(VC_SKIP_OS_DRIVER_REQ_CHECK) #define VERSION_STRING_SUFFIX "-TESTSIGNING" #else #define VERSION_STRING_SUFFIX "" #endif // Version number to compare against driver #define VERSION_NUM 0x0126 // Release date -#define TC_STR_RELEASE_DATE L"July 24, 2023" -#define TC_RELEASE_DATE_YEAR 2023 -#define TC_RELEASE_DATE_MONTH 07 +#define TC_STR_RELEASE_DATE L"September 2, 2024" +#define TC_RELEASE_DATE_YEAR 2024 +#define TC_RELEASE_DATE_MONTH 9 #define BYTES_PER_KB 1024LL #define BYTES_PER_MB 1048576LL #define BYTES_PER_GB 1073741824LL #define BYTES_PER_TB 1099511627776LL #define BYTES_PER_PB 1125899906842624LL /* GUI/driver errors */ #define WIDE(x) (LPWSTR)L##x #define VC_MAX(a,b) ((a)>(b))?(a):(b) #define VC_MIN(a,b) ((a)<(b))?(a):(b) #ifdef _MSC_VER typedef __int8 int8; typedef __int16 int16; typedef __int32 int32; -typedef unsigned __int8 byte; typedef unsigned __int8 uint8; typedef unsigned __int16 uint16; typedef unsigned __int32 uint32; #ifdef TC_NO_COMPILER_INT64 typedef unsigned __int32 TC_LARGEST_COMPILER_UINT; #else typedef unsigned __int64 TC_LARGEST_COMPILER_UINT; typedef __int64 int64; typedef unsigned __int64 uint64; #define LL(x) x##ui64 #endif +#if _MSC_VER > 1900 +#define VC_CDECL __cdecl // this is needed because Windows driver on VS2019 uses stdcall for build +#else +#define VC_CDECL +#endif + #pragma warning( disable : 4201 ) // disable: 4201 nonstandard extension used : nameless struct/union #pragma warning( disable : 4324 ) // disable: 4324 structure was padded due to __declspec(align()) #else // !_MSC_VER #include <inttypes.h> #include <limits.h> #include <memory.h> typedef int8_t int8; typedef int16_t int16; typedef int32_t int32; typedef int64_t int64; -typedef uint8_t byte; typedef uint8_t uint8; typedef uint16_t uint16; typedef uint32_t uint32; typedef uint64_t uint64; #define LL(x) x##ULL #if UCHAR_MAX != 0xffU #error UCHAR_MAX != 0xff #endif #define __int8 char #if USHRT_MAX != 0xffffU #error USHRT_MAX != 0xffff #endif #define __int16 short #if UINT_MAX != 0xffffffffU #error UINT_MAX != 0xffffffff #endif #define __int32 int typedef uint64 TC_LARGEST_COMPILER_UINT; #define BOOL int #ifndef FALSE #define FALSE 0 #define TRUE 1 #endif +#define VC_CDECL + #endif // !_MSC_VER #define TC_INT_TYPES_DEFINED // Integer types required by Cryptolib typedef unsigned __int8 uint_8t; typedef unsigned __int16 uint_16t; typedef unsigned __int32 uint_32t; #ifndef TC_NO_COMPILER_INT64 typedef uint64 uint_64t; #endif typedef union { struct { unsigned __int32 LowPart; unsigned __int32 HighPart; }; #ifndef TC_NO_COMPILER_INT64 uint64 Value; #endif } UINT64_STRUCT; #ifndef __has_builtin // Optional of course #define __has_builtin(x) 0 // Compatibility with non-clang compilers #endif #if defined(_UEFI) @@ -278,100 +284,114 @@ typedef USHORT WORD; #ifndef BOOLEAN typedef unsigned char BOOLEAN; #endif #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE !TRUE #endif typedef NTSTATUS (NTAPI *KeSaveExtendedProcessorStateFn) ( __in ULONG64 Mask, PXSTATE_SAVE XStateSave ); typedef VOID (NTAPI *KeRestoreExtendedProcessorStateFn) ( PXSTATE_SAVE XStateSave ); typedef NTSTATUS (NTAPI *ExGetFirmwareEnvironmentVariableFn) ( PUNICODE_STRING VariableName, LPGUID VendorGuid, PVOID Value, PULONG ValueLength, PULONG Attributes ); +typedef ULONG64 (NTAPI *KeQueryInterruptTimePreciseFn)( + PULONG64 QpcTimeStamp +); + typedef BOOLEAN (NTAPI *KeAreAllApcsDisabledFn) (); typedef void (NTAPI *KeSetSystemGroupAffinityThreadFn)( PGROUP_AFFINITY Affinity, PGROUP_AFFINITY PreviousAffinity ); typedef USHORT (NTAPI *KeQueryActiveGroupCountFn)(); typedef ULONG (NTAPI *KeQueryActiveProcessorCountExFn)( USHORT GroupNumber ); extern NTSTATUS NTAPI KeSaveExtendedProcessorStateVC ( __in ULONG64 Mask, PXSTATE_SAVE XStateSave ); extern VOID NTAPI KeRestoreExtendedProcessorStateVC ( PXSTATE_SAVE XStateSave ); extern BOOLEAN VC_KeAreAllApcsDisabled (VOID); #else /* !TC_WINDOWS_DRIVER */ #if !defined(_UEFI) #define TCalloc malloc #define TCfree free #else #define TCalloc VeraCryptMemAlloc #define TCfree VeraCryptMemFree #endif //!defined(_UEFI) #ifdef _WIN32 #ifndef TC_LOCAL_WIN32_WINNT_OVERRIDE # undef _WIN32_WINNT -# define _WIN32_WINNT 0x0501 /* Does not apply to the driver */ +#ifdef _M_ARM64 +# define _WIN32_WINNT 0x0A00 +#else +// for Visual Studio 2015 and later, set minimum Windows version to Windows 8 +// for old versions of Visual Studio, set minimum Windows version to Windows 7 +#if _MSC_VER >= 1900 +# define _WIN32_WINNT 0x0602 +#else +# define _WIN32_WINNT 0x0601 +#endif +#endif #endif #include <windows.h> /* Windows header */ #include <commctrl.h> /* The common controls */ #include <process.h> /* Process control */ #include <winioctl.h> #include <stdio.h> /* For sprintf */ #include <tchar.h> #endif /* _WIN32 */ #endif /* !TC_WINDOWS_DRIVER */ #ifndef TC_TO_STRING # define TC_TO_STRING2(n) #n # define TC_TO_STRING(n) TC_TO_STRING2(n) #endif #ifdef DEVICE_DRIVER # if defined (DEBUG) || defined (DEBUG_TRACE) # if 0 // DbgPrintEx is not available on Windows 2000 # define Dump DbgPrint # else # define Dump(...) DbgPrintEx (DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, __VA_ARGS__) # endif # define DumpMem(...) DumpMemory (__VA_ARGS__) # else # define Dump(...) # define DumpMem(...) # endif @@ -461,34 +481,36 @@ enum ERR_DRIVE_NOT_FOUND = 5, ERR_FILES_OPEN = 6, ERR_VOL_SIZE_WRONG = 7, ERR_COMPRESSION_NOT_SUPPORTED = 8, ERR_PASSWORD_CHANGE_VOL_TYPE = 9, ERR_PASSWORD_CHANGE_VOL_VERSION = 10, ERR_VOL_SEEKING = 11, ERR_VOL_WRITING = 12, ERR_FILES_OPEN_LOCK = 13, ERR_VOL_READING = 14, ERR_DRIVER_VERSION = 15, ERR_NEW_VERSION_REQUIRED = 16, ERR_CIPHER_INIT_FAILURE = 17, ERR_CIPHER_INIT_WEAK_KEY = 18, ERR_SELF_TESTS_FAILED = 19, ERR_SECTOR_SIZE_INCOMPATIBLE = 20, ERR_VOL_ALREADY_MOUNTED = 21, ERR_NO_FREE_DRIVES = 22, ERR_FILE_OPEN_FAILED = 23, ERR_VOL_MOUNT_FAILED = 24, DEPRECATED_ERR_INVALID_DEVICE = 25, ERR_ACCESS_DENIED = 26, ERR_MODE_INIT_FAILED = 27, ERR_DONT_REPORT = 28, ERR_ENCRYPTION_NOT_COMPLETED = 29, ERR_PARAMETER_INCORRECT = 30, ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG = 31, ERR_NONSYS_INPLACE_ENC_INCOMPLETE = 32, ERR_USER_ABORT = 33, ERR_RAND_INIT_FAILED = 34, - ERR_CAPI_INIT_FAILED = 35 + ERR_CAPI_INIT_FAILED = 35, + ERR_XTS_MASTERKEY_VULNERABLE = 36, + ERR_SYSENC_XTS_MASTERKEY_VULNERABLE = 37 }; #endif // #ifndef TCDEFS_H |