2 rdesktop: A Remote Desktop Protocol client.
3 Disk Redirection definitions
4 Copyright (C) Jeroen Meijer 2003
5 Copyright (C) Peter Astrand 2004
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.
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.
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.
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
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
49 #define FILE_SHARE_READ 0x01
50 #define FILE_SHARE_WRITE 0x02
51 #define FILE_SHARE_DELETE 0x04
53 #define FILE_BASIC_INFORMATION 0x04
54 #define FILE_STANDARD_INFORMATION 0x05
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
68 #define OPEN_EXISTING 1
71 #define TRUNCATE_EXISTING 4
72 #define CREATE_ALWAYS 5
74 #define GENERIC_READ 0x80000000
75 #define GENERIC_WRITE 0x40000000
76 #define GENERIC_EXECUTE 0x20000000
77 #define GENERIC_ALL 0x10000000
79 #define ERROR_FILE_NOT_FOUND 2L
80 #define ERROR_ALREADY_EXISTS 183L
82 typedef enum _FILE_INFORMATION_CLASS
84 FileDirectoryInformation
= 1,
85 FileFullDirectoryInformation
,
86 FileBothDirectoryInformation
,
88 FileStandardInformation
,
89 FileInternalInformation
,
91 FileAccessInformation
,
93 FileRenameInformation
,
96 FileDispositionInformation
,
97 FilePositionInformation
,
98 FileFullEaInformation
,
100 FileAlignmentInformation
,
102 FileAllocationInformation
,
103 FileEndOfFileInformation
,
104 FileAlternateNameInformation
,
105 FileStreamInformation
,
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
,
124 FileMaximumInformation
125 } FILE_INFORMATION_CLASS
, *PFILE_INFORMATION_CLASS
;
127 typedef enum _FSINFOCLASS
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
;