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
18 #define GENERIC_READ (0x80000000L)
19 #define GENERIC_WRITE (0x40000000L)
20 #define FILE_READ_DATA ( 0x0001 ) /* file & pipe */
21 #define FILE_LIST_DIRECTORY ( 0x0001 ) /* directory */
23 #define FILE_WRITE_DATA ( 0x0002 ) /* file & pipe */
24 #define FILE_ADD_FILE ( 0x0002 ) /* directory */
26 #define FILE_APPEND_DATA ( 0x0004 ) /* file */
27 #define FILE_ADD_SUBDIRECTORY ( 0x0004 ) /* directory */
28 #define FILE_CREATE_PIPE_INSTANCE ( 0x0004 ) /* named pipe */
30 #define FILE_READ_EA ( 0x0008 ) /* file & directory */
31 #define FILE_READ_PROPERTIES FILE_READ_EA
33 #define FILE_WRITE_EA ( 0x0010 ) /* file & directory */
34 #define FILE_WRITE_PROPERTIES FILE_WRITE_EA
36 #define FILE_EXECUTE ( 0x0020 ) /* file */
37 #define FILE_TRAVERSE ( 0x0020 ) /* directory */
39 #define FILE_DELETE_CHILD ( 0x0040 ) /* directory */
41 #define FILE_READ_ATTRIBUTES ( 0x0080 ) /* all */
43 #define FILE_WRITE_ATTRIBUTES ( 0x0100 ) /* all */
45 #define FILE_SHARE_DELETE (4)
46 #define FILE_SHARE_READ (1)
47 #define FILE_SHARE_WRITE (2)
48 #define CONSOLE_TEXTMODE_BUFFER (1)
49 #define CREATE_NEW (1)
50 #define CREATE_ALWAYS (2)
51 #define OPEN_EXISTING (3)
52 #define OPEN_ALWAYS (4)
53 #define TRUNCATE_EXISTING (5)
54 #define FILE_ATTRIBUTE_ARCHIVE (32)
55 #define FILE_ATTRIBUTE_COMPRESSED (2048)
56 #define FILE_ATTRIBUTE_DEVICE (64)
57 #define FILE_ATTRIBUTE_NORMAL (128)
58 #define FILE_ATTRIBUTE_DIRECTORY (16)
59 #define FILE_ATTRIBUTE_ENCRYPTED (16384)
60 #define FILE_ATTRIBUTE_HIDDEN (2)
61 #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED (8192)
62 #define FILE_ATTRIBUTE_OFFLINE (4096)
63 #define FILE_ATTRIBUTE_READONLY (1)
64 #define FILE_ATTRIBUTE_REPARSE_POINT (1024)
65 #define FILE_ATTRIBUTE_SPARSE_FILE (512)
66 #define FILE_ATTRIBUTE_SYSTEM (4)
67 #define FILE_ATTRIBUTE_TEMPORARY (256)
68 #define FILE_ATTRIBUTE_VALID_FLAGS (0x00007fb7)
69 #define FILE_ATTRIBUTE_VALID_SET_FLAGS (0x000031a7)
70 #define FILE_FLAG_WRITE_THROUGH (0x80000000)
71 #define FILE_FLAG_OVERLAPPED (0x40000000)
72 #define FILE_FLAG_NO_BUFFERING (0x20000000)
73 #define FILE_FLAG_RANDOM_ACCESS (0x10000000)
74 #define FILE_FLAG_SEQUENTIAL_SCAN (0x08000000)
75 #define FILE_FLAG_DELETE_ON_CLOSE (0x04000000)
76 #define FILE_FLAG_BACKUP_SEMANTICS (0x02000000)
77 #define FILE_FLAG_POSIX_SEMANTICS (0x01000000)
79 /* GetVolumeInformation */
80 #define FS_CASE_IS_PRESERVED (2)
81 #define FS_CASE_SENSITIVE (1)
82 #define FS_UNICODE_STORED_ON_DISK (4)
83 #define FS_PERSISTENT_ACLS (8)
84 #define FS_FILE_COMPRESSION (16)
85 #define FS_VOL_IS_COMPRESSED (32768)
87 /* NtQueryVolumeInformationFile */
88 #define FILE_CASE_SENSITIVE_SEARCH (0x00000001)
89 #define FILE_CASE_PRESERVED_NAMES (0x00000002)
90 #define FILE_UNICODE_ON_DISK (0x00000004)
91 #define FILE_PERSISTENT_ACLS (0x00000008)
92 #define FILE_FILE_COMPRESSION (0x00000010)
93 #define FILE_VOLUME_IS_COMPRESSED (0x00008000)
95 #endif /* !__USE_W32API */
97 #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)
99 #define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\
101 FILE_READ_ATTRIBUTES |\
106 #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
108 FILE_WRITE_ATTRIBUTES |\
114 #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
115 FILE_READ_ATTRIBUTES |\
119 #endif /* __INCLUDE_FILE_H */