2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
5 * PURPOSE: Filesystem declarations used by all the parts of the
7 * PROGRAMMER: David Welch <welch@cwcom.net>
13 #ifndef __INCLUDE_FILE_H
14 #define __INCLUDE_FILE_H
16 #define GENERIC_READ (0x80000000L)
17 #define GENERIC_WRITE (0x40000000L)
18 #define FILE_READ_DATA ( 0x0001 ) /* file & pipe */
19 #define FILE_LIST_DIRECTORY ( 0x0001 ) /* directory */
21 #define FILE_WRITE_DATA ( 0x0002 ) /* file & pipe */
22 #define FILE_ADD_FILE ( 0x0002 ) /* directory */
24 #define FILE_APPEND_DATA ( 0x0004 ) /* file */
25 #define FILE_ADD_SUBDIRECTORY ( 0x0004 ) /* directory */
26 #define FILE_CREATE_PIPE_INSTANCE ( 0x0004 ) /* named pipe */
28 #define FILE_READ_EA ( 0x0008 ) /* file & directory */
29 #define FILE_READ_PROPERTIES FILE_READ_EA
31 #define FILE_WRITE_EA ( 0x0010 ) /* file & directory */
32 #define FILE_WRITE_PROPERTIES FILE_WRITE_EA
34 #define FILE_EXECUTE ( 0x0020 ) /* file */
35 #define FILE_TRAVERSE ( 0x0020 ) /* directory */
37 #define FILE_DELETE_CHILD ( 0x0040 ) /* directory */
39 #define FILE_READ_ATTRIBUTES ( 0x0080 ) /* all */
41 #define FILE_WRITE_ATTRIBUTES ( 0x0100 ) /* all */
43 #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)
45 #define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\
47 FILE_READ_ATTRIBUTES |\
52 #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
54 FILE_WRITE_ATTRIBUTES |\
60 #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
61 FILE_READ_ATTRIBUTES |\
65 #define FILE_SHARE_DELETE (4)
66 #define FILE_SHARE_READ (1)
67 #define FILE_SHARE_WRITE (2)
68 #define CONSOLE_TEXTMODE_BUFFER (1)
69 #define CREATE_NEW (1)
70 #define CREATE_ALWAYS (2)
71 #define OPEN_EXISTING (3)
72 #define OPEN_ALWAYS (4)
73 #define TRUNCATE_EXISTING (5)
74 #define FILE_ATTRIBUTE_ARCHIVE (32)
75 #define FILE_ATTRIBUTE_COMPRESSED (2048)
76 #define FILE_ATTRIBUTE_DEVICE (64)
77 #define FILE_ATTRIBUTE_NORMAL (128)
78 #define FILE_ATTRIBUTE_DIRECTORY (16)
79 #define FILE_ATTRIBUTE_ENCRYPTED (16384)
80 #define FILE_ATTRIBUTE_HIDDEN (2)
81 #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED (8192)
82 #define FILE_ATTRIBUTE_OFFLINE (4096)
83 #define FILE_ATTRIBUTE_READONLY (1)
84 #define FILE_ATTRIBUTE_REPARSE_POINT (1024)
85 #define FILE_ATTRIBUTE_SPARSE_FILE (512)
86 #define FILE_ATTRIBUTE_SYSTEM (4)
87 #define FILE_ATTRIBUTE_TEMPORARY (256)
88 #define FILE_ATTRIBUTE_VALID_FLAGS (0x00007fb7)
89 #define FILE_ATTRIBUTE_VALID_SET_FLAGS (0x000031a7)
90 #define FILE_FLAG_WRITE_THROUGH (0x80000000)
91 #define FILE_FLAG_OVERLAPPED (0x40000000)
92 #define FILE_FLAG_NO_BUFFERING (0x20000000)
93 #define FILE_FLAG_RANDOM_ACCESS (0x10000000)
94 #define FILE_FLAG_SEQUENTIAL_SCAN (0x08000000)
95 #define FILE_FLAG_DELETE_ON_CLOSE (0x04000000)
96 #define FILE_FLAG_BACKUP_SEMANTICS (0x02000000)
97 #define FILE_FLAG_POSIX_SEMANTICS (0x01000000)
99 /* GetVolumeInformation */
100 #define FS_CASE_IS_PRESERVED (2)
101 #define FS_CASE_SENSITIVE (1)
102 #define FS_UNICODE_STORED_ON_DISK (4)
103 #define FS_PERSISTENT_ACLS (8)
104 #define FS_FILE_COMPRESSION (16)
105 #define FS_VOL_IS_COMPRESSED (32768)
107 /* NtQueryVolumeInformationFile */
108 #define FILE_CASE_SENSITIVE_SEARCH (0x00000001)
109 #define FILE_CASE_PRESERVED_NAMES (0x00000002)
110 #define FILE_UNICODE_ON_DISK (0x00000004)
111 #define FILE_PERSISTENT_ACLS (0x00000008)
112 #define FILE_FILE_COMPRESSION (0x00000010)
113 #define FILE_VOLUME_IS_COMPRESSED (0x00008000)
116 #endif /* __INCLUDE_FILE_H */