The real, definitive, Visual C++ support branch. Accept no substitutes
[reactos.git] / base / applications / tsclient / rdesktop / disk.h
1 /*
2 rdesktop: A Remote Desktop Protocol client.
3 Disk Redirection definitions
4 Copyright (C) Jeroen Meijer 2003
5 Copyright (C) Peter Astrand 2004
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 */
21
22 #define FILE_ATTRIBUTE_READONLY 0x00000001
23 #define FILE_ATTRIBUTE_HIDDEN 0x00000002
24 #define FILE_ATTRIBUTE_SYSTEM 0x00000004
25 #define FILE_ATTRIBUTE_DIRECTORY 0x00000010
26 #define FILE_ATTRIBUTE_ARCHIVE 0x00000020
27 #define FILE_ATTRIBUTE_DEVICE 0x00000040
28 #define FILE_ATTRIBUTE_UNKNOWNXXX0 0x00000060 /* ??? ACTION i.e. 0x860 == compress this file ? */
29 #define FILE_ATTRIBUTE_NORMAL 0x00000080
30 #define FILE_ATTRIBUTE_TEMPORARY 0x00000100
31 #define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
32 #define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
33 #define FILE_ATTRIBUTE_COMPRESSED 0x00000800
34 #define FILE_ATTRIBUTE_OFFLINE 0x00001000
35 #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
36 #define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
37
38 #define FILE_FLAG_OPEN_NO_RECALL 0x00100000
39 #define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000
40 #define FILE_FLAG_POSIX_SEMANTICS 0x01000000
41 #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 /* sometimes used to create a directory */
42 #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
43 #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000
44 #define FILE_FLAG_RANDOM_ACCESS 0x10000000
45 #define FILE_FLAG_NO_BUFFERING 0x20000000
46 #define FILE_FLAG_OVERLAPPED 0x40000000
47 #define FILE_FLAG_WRITE_THROUGH 0x80000000
48
49 #define FILE_SHARE_READ 0x01
50 #define FILE_SHARE_WRITE 0x02
51 #define FILE_SHARE_DELETE 0x04
52
53 #define FILE_BASIC_INFORMATION 0x04
54 #define FILE_STANDARD_INFORMATION 0x05
55
56 #define FS_CASE_SENSITIVE 0x00000001
57 #define FS_CASE_IS_PRESERVED 0x00000002
58 #define FS_UNICODE_STORED_ON_DISK 0x00000004
59 #define FS_PERSISTENT_ACLS 0x00000008
60 #define FS_FILE_COMPRESSION 0x00000010
61 #define FS_VOLUME_QUOTAS 0x00000020
62 #define FS_SUPPORTS_SPARSE_FILES 0x00000040
63 #define FS_SUPPORTS_REPARSE_POINTS 0x00000080
64 #define FS_SUPPORTS_REMOTE_STORAGE 0X00000100
65 #define FS_VOL_IS_COMPRESSED 0x00008000
66 #define FILE_READ_ONLY_VOLUME 0x00080000
67
68 #define OPEN_EXISTING 1
69 #define CREATE_NEW 2
70 #define OPEN_ALWAYS 3
71 #define TRUNCATE_EXISTING 4
72 #define CREATE_ALWAYS 5
73
74 #define GENERIC_READ 0x80000000
75 #define GENERIC_WRITE 0x40000000
76 #define GENERIC_EXECUTE 0x20000000
77 #define GENERIC_ALL 0x10000000
78
79 #define ERROR_FILE_NOT_FOUND 2L
80 #define ERROR_ALREADY_EXISTS 183L
81
82 typedef enum _FILE_INFORMATION_CLASS
83 {
84 FileDirectoryInformation = 1,
85 FileFullDirectoryInformation,
86 FileBothDirectoryInformation,
87 FileBasicInformation,
88 FileStandardInformation,
89 FileInternalInformation,
90 FileEaInformation,
91 FileAccessInformation,
92 FileNameInformation,
93 FileRenameInformation,
94 FileLinkInformation,
95 FileNamesInformation,
96 FileDispositionInformation,
97 FilePositionInformation,
98 FileFullEaInformation,
99 FileModeInformation,
100 FileAlignmentInformation,
101 FileAllInformation,
102 FileAllocationInformation,
103 FileEndOfFileInformation,
104 FileAlternateNameInformation,
105 FileStreamInformation,
106 FilePipeInformation,
107 FilePipeLocalInformation,
108 FilePipeRemoteInformation,
109 FileMailslotQueryInformation,
110 FileMailslotSetInformation,
111 FileCompressionInformation,
112 FileCopyOnWriteInformation,
113 FileCompletionInformation,
114 FileMoveClusterInformation,
115 FileOleClassIdInformation,
116 FileOleStateBitsInformation,
117 FileNetworkOpenInformation,
118 FileObjectIdInformation,
119 FileOleAllInformation,
120 FileOleDirectoryInformation,
121 FileContentIndexInformation,
122 FileInheritContentIndexInformation,
123 FileOleInformation,
124 FileMaximumInformation
125 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
126
127 typedef enum _FSINFOCLASS
128 {
129 FileFsVolumeInformation = 1,
130 FileFsLabelInformation,
131 FileFsSizeInformation,
132 FileFsDeviceInformation,
133 FileFsAttributeInformation,
134 FileFsControlInformation,
135 FileFsFullSizeInformation,
136 FileFsObjectIdInformation,
137 FileFsDriverPathInformation,
138 FileFsMaximumInformation
139 } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;