|
|
1.1.1.3 ! root 1: /* Copyright (C) 2004 TrueCrypt Foundation 1.1 root 2: This product uses components written by Paul Le Roux <[email protected]> */ 3: 4: // Version displayed to user 1.1.1.3 ! root 5: #define VERSION_STRING "2.0" 1.1 root 6: 7: // Version number to compare against driver 1.1.1.3 ! root 8: #define VERSION_NUM 0x0200 1.1 root 9: 10: // Version number written to volume header during format, 11: // specifies the minimum program version required to mount the volume 12: #define VOLUME_VERSION_NUM 0x0100 13: 14: #define TC_MAX_PATH 260 /* Includes the null terminator */ 15: #define SECTOR_SIZE 512 /* sector size */ 16: 17: #define BYTES_PER_KB 1024 18: #define BYTES_PER_MB 1048576 19: 20: /* GUI/driver errors */ 21: 22: #define ERR_OS_ERROR 1 23: #define ERR_OUTOFMEMORY 2 24: #define ERR_PASSWORD_WRONG 3 25: #define ERR_VOL_FORMAT_BAD 4 26: #define ERR_BAD_DRIVE_LETTER 5 27: #define ERR_DRIVE_NOT_FOUND 6 28: #define ERR_FILES_OPEN 7 29: #define ERR_VOL_SIZE_WRONG 8 30: #define ERR_COMPRESSION_NOT_SUPPORTED 9 31: #define ERR_PASSWORD_CHANGE_VOL_TYPE 10 32: #define ERR_PASSWORD_CHANGE_VOL_VERSION 11 33: #define ERR_VOL_SEEKING 12 34: #define ERR_VOL_WRITING 13 35: #define ERR_FILES_OPEN_LOCK 14 36: #define ERR_VOL_READING 15 37: #define ERR_DRIVER_VERSION 16 38: #define ERR_NEW_VERSION_REQUIRED 17 39: 40: #define ERR_VOL_ALREADY_MOUNTED 32 41: #define ERR_NO_FREE_SLOTS 33 42: #define ERR_NO_FREE_DRIVES 34 43: #define ERR_FILE_OPEN_FAILED 35 44: #define ERR_VOL_MOUNT_FAILED 36 45: #define ERR_INVALID_DEVICE 37 46: #define ERR_ACCESS_DENIED 38 47: 48: #define MIN_VOLUME_SIZE 19456 49: #define MAX_VOLUME_SIZE 0x7fffFFFFffffFFFFI64 50: 51: #define burn(mem,size) \ 52: memset(mem,0xff,size); \ 53: memset(mem,0,size); 54: 55: #define WIDE(x) (LPWSTR)L##x 56: 57: #include <string.h> 58: 59: #pragma intrinsic(memcmp, memcpy, memset, strcat, strcmp, strcpy, strlen) 60: 61: #ifdef NT4_DRIVER 62: 63: #pragma warning( disable : 4201 ) 64: #pragma warning( disable : 4214 ) 65: #pragma warning( disable : 4115 ) 66: #pragma warning( disable : 4100 ) 67: #pragma warning( disable : 4101 ) 68: #pragma warning( disable : 4057 ) 69: #pragma warning( disable : 4244 ) 70: #pragma warning( disable : 4514 ) 71: #pragma warning( disable : 4127 ) 72: 73: 74: #include <ntddk.h> /* Standard header file for nt drivers */ 75: #undef _WIN32_WINNT 76: #define _WIN32_WINNT 0x0501 77: #include <ntdddisk.h> /* Standard I/O control codes */ 78: #include <ntiologc.h> 79: 80: #pragma warning( default : 4201 ) 81: #pragma warning( default : 4214 ) 82: #pragma warning( default : 4115 ) 83: #pragma warning( default : 4100 ) 84: #pragma warning( default : 4101 ) 85: #pragma warning( default : 4057 ) 86: #pragma warning( default : 4244 ) 87: #pragma warning( default : 4127 ) 88: 89: /* #pragma warning( default : 4514 ) this warning remains disabled */ 90: 91: #define TCalloc(size) ((void *) ExAllocatePoolWithTag( NonPagedPool, size, 'MMCT' )) 92: #define TCfree(memblock) ExFreePoolWithTag( memblock, 'MMCT' ) 93: 94: #define DEVICE_DRIVER 95: 96: #endif /* NT4_DRIVER */ 97: 98: 99: #ifdef WIN9X_DRIVER 100: 101: #pragma warning( disable : 4047 ) 102: 103: #include "iosdcls.inc" /* VMM and IOS headers */ 104: 105: #pragma warning( default : 4047 ) 106: 107: #include <vwin32.h> 108: #include <winerror.h> 109: #undef WANTVDXWRAPS 110: #pragma warning( disable : 4229 ) 111: #include <shell.h> 112: #pragma warning( default : 4229 ) 113: #pragma hdrstop 114: #include <malloc.h> 115: #include <vmm.h> 116: #include "ifs.h" 117: #include <dbt.h> 118: #define MBYTE16 3967 119: #define UWORD unsigned short 120: #define UBYTE unsigned char 121: 122: #define MBYTE16 3967 123: 124: #define TCalloc(size) _PageAllocate(size % 4096 ? (size/4096)+1 : size/4096,\ 125: PG_SYS,0,0,0,MBYTE16,NULL,PAGEZEROINIT|PAGEFIXED|PAGECONTIG|PAGEUSEALIGN); 126: 127: #define TCfree(memblock) _PageFree(memblock,0) 128: 129: #define DEVICE_DRIVER 130: 131: #endif /* WIN9X_DRIVER */ 132: 133: #ifdef DEVICE_DRIVER 134: 135: #ifndef BOOL 136: typedef int BOOL; 137: #endif 138: 139: #ifndef TRUE 140: #define TRUE 1 141: #endif 142: 143: #ifndef FALSE 144: #define FALSE !TRUE 145: #endif 146: 147: /* Define dummies for the drivers */ 148: typedef int HFILE; 149: typedef unsigned int WPARAM; 150: typedef unsigned long LPARAM; 151: #define CALLBACK 152: 153: #ifndef UINT 154: typedef unsigned int UINT; 155: #endif 156: 157: #ifndef LRESULT 158: typedef unsigned long LRESULT; 159: #endif 160: 161: #else 162: 163: #define TCalloc malloc 164: #define TCfree free 165: 166: #pragma warning( disable : 4201 ) 167: #pragma warning( disable : 4214 ) 168: #pragma warning( disable : 4115 ) 169: #pragma warning( disable : 4514 ) 170: 171: #undef _WIN32_WINNT 172: #define _WIN32_WINNT 0x0501 173: #include <windows.h> /* Windows header */ 174: #include <commctrl.h> /* The common controls */ 175: #include <process.h> /* Process control */ 176: #include <winioctl.h> 177: #include <stdio.h> /* For sprintf */ 178: 179: #pragma warning( default : 4201 ) 180: #pragma warning( default : 4214 ) 181: #pragma warning( default : 4115 ) 182: 183: /* #pragma warning( default : 4514 ) this warning remains disabled */ 184: 185: /* This is needed to fix a bug with VC 5, the TCHAR macro _ttoi64 maps 186: incorrectly to atoi64 when it should be _atoi64 */ 187: #define atoi64 _atoi64 188: 189: #endif /* DEVICE_DRIVER */ 190: 191: typedef UINT (_stdcall * diskio_f) (int, void *, UINT); 192: 193: #pragma hdrstop
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.