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 along 18 with this program; if not, write to the Free Software Foundation, Inc., 19 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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; 140