a180a41bba1d50822df23fff0099e90b86638b89vboxsync/*
a180a41bba1d50822df23fff0099e90b86638b89vboxsync rdesktop: A Remote Desktop Protocol client.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync Disk Redirection definitions
a180a41bba1d50822df23fff0099e90b86638b89vboxsync Copyright (C) Jeroen Meijer 2003-2008
a180a41bba1d50822df23fff0099e90b86638b89vboxsync Copyright (C) Peter Astrand 2004-2008
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync This program is free software: you can redistribute it and/or modify
a180a41bba1d50822df23fff0099e90b86638b89vboxsync it under the terms of the GNU General Public License as published by
a180a41bba1d50822df23fff0099e90b86638b89vboxsync the Free Software Foundation, either version 3 of the License, or
a180a41bba1d50822df23fff0099e90b86638b89vboxsync (at your option) any later version.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync This program is distributed in the hope that it will be useful,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync but WITHOUT ANY WARRANTY; without even the implied warranty of
a180a41bba1d50822df23fff0099e90b86638b89vboxsync MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a180a41bba1d50822df23fff0099e90b86638b89vboxsync GNU General Public License for more details.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync You should have received a copy of the GNU General Public License
a180a41bba1d50822df23fff0099e90b86638b89vboxsync along with this program. If not, see <http://www.gnu.org/licenses/>.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync*/
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync/*
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync * Oracle GPL Disclaimer: For the avoidance of doubt, except that if any license choice
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync * the General Public License version 2 (GPLv2) at this time for any software where
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync * a choice of GPL license versions is made available with the language indicating
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync * that GPLv2 or any later version may be used, or where a choice of which version
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync * of the GPL is applied is otherwise unspecified.
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync */
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_READONLY 0x00000001
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_HIDDEN 0x00000002
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_SYSTEM 0x00000004
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_DEVICE 0x00000040
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_UNKNOWNXXX0 0x00000060 /* ??? ACTION i.e. 0x860 == compress this file ? */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_NORMAL 0x00000080
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_OFFLINE 0x00001000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_OPEN_NO_RECALL 0x00100000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_POSIX_SEMANTICS 0x01000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 /* sometimes used to create a directory */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_RANDOM_ACCESS 0x10000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_NO_BUFFERING 0x20000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_OVERLAPPED 0x40000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_FLAG_WRITE_THROUGH 0x80000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_SHARE_READ 0x01
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_SHARE_WRITE 0x02
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_SHARE_DELETE 0x04
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_BASIC_INFORMATION 0x04
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_STANDARD_INFORMATION 0x05
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_CASE_SENSITIVE 0x00000001
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_CASE_IS_PRESERVED 0x00000002
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_UNICODE_STORED_ON_DISK 0x00000004
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_PERSISTENT_ACLS 0x00000008
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_FILE_COMPRESSION 0x00000010
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_VOLUME_QUOTAS 0x00000020
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_SUPPORTS_SPARSE_FILES 0x00000040
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_SUPPORTS_REPARSE_POINTS 0x00000080
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_SUPPORTS_REMOTE_STORAGE 0X00000100
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FS_VOL_IS_COMPRESSED 0x00008000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define FILE_READ_ONLY_VOLUME 0x00080000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define OPEN_EXISTING 1
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define CREATE_NEW 2
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define OPEN_ALWAYS 3
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define TRUNCATE_EXISTING 4
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define CREATE_ALWAYS 5
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define GENERIC_READ 0x80000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define GENERIC_WRITE 0x40000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define GENERIC_EXECUTE 0x20000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define GENERIC_ALL 0x10000000
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define ERROR_FILE_NOT_FOUND 2L
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define ERROR_ALREADY_EXISTS 183L
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define MAX_OPEN_FILES 0x100
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsynctypedef enum _FILE_INFORMATION_CLASS
a180a41bba1d50822df23fff0099e90b86638b89vboxsync{
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileDirectoryInformation = 1,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFullDirectoryInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileBothDirectoryInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileBasicInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileStandardInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileInternalInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileEaInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileAccessInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileNameInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileRenameInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileLinkInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileNamesInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileDispositionInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FilePositionInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFullEaInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileModeInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileAlignmentInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileAllInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileAllocationInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileEndOfFileInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileAlternateNameInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileStreamInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FilePipeInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FilePipeLocalInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FilePipeRemoteInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileMailslotQueryInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileMailslotSetInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileCompressionInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileCopyOnWriteInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileCompletionInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileMoveClusterInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileOleClassIdInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileOleStateBitsInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileNetworkOpenInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileObjectIdInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileOleAllInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileOleDirectoryInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileContentIndexInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileInheritContentIndexInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileOleInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileMaximumInformation
a180a41bba1d50822df23fff0099e90b86638b89vboxsync} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
a180a41bba1d50822df23fff0099e90b86638b89vboxsync
a180a41bba1d50822df23fff0099e90b86638b89vboxsynctypedef enum _FSINFOCLASS
a180a41bba1d50822df23fff0099e90b86638b89vboxsync{
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsVolumeInformation = 1,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsLabelInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsSizeInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsDeviceInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsAttributeInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsControlInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsFullSizeInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsObjectIdInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsDriverPathInformation,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FileFsMaximumInformation
a180a41bba1d50822df23fff0099e90b86638b89vboxsync} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;