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