|
|
1.1 root 1: /* Copyright (C) 2004 TrueCrypt Team, truecrypt.org
2: This product uses components written by Paul Le Roux <[email protected]> */
3:
4: // Version displayed to user
1.1.1.2 ! root 5: #define VERSION_STRING "1.0a"
1.1 root 6:
7: // Version number to compare against driver
1.1.1.2 ! root 8: #define VERSION_NUM 0x010a
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.