update for HEAD-2003021201
[reactos.git] / 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 GENERIC_READ    (0x80000000L)
19 #define GENERIC_WRITE   (0x40000000L)
20 #define FILE_READ_DATA            ( 0x0001 )    /* file & pipe */
21 #define FILE_LIST_DIRECTORY       ( 0x0001 )    /* directory */
22
23 #define FILE_WRITE_DATA           ( 0x0002 )    /* file & pipe */
24 #define FILE_ADD_FILE             ( 0x0002 )    /* directory */
25
26 #define FILE_APPEND_DATA          ( 0x0004 )    /* file */
27 #define FILE_ADD_SUBDIRECTORY     ( 0x0004 )    /* directory */
28 #define FILE_CREATE_PIPE_INSTANCE ( 0x0004 )    /* named pipe */
29
30 #define FILE_READ_EA              ( 0x0008 )    /* file & directory */
31 #define FILE_READ_PROPERTIES      FILE_READ_EA
32
33 #define FILE_WRITE_EA             ( 0x0010 )    /* file & directory */
34 #define FILE_WRITE_PROPERTIES     FILE_WRITE_EA
35
36 #define FILE_EXECUTE              ( 0x0020 )    /* file */
37 #define FILE_TRAVERSE             ( 0x0020 )    /* directory */
38
39 #define FILE_DELETE_CHILD         ( 0x0040 )    /* directory */
40
41 #define FILE_READ_ATTRIBUTES      ( 0x0080 )    /* all */
42
43 #define FILE_WRITE_ATTRIBUTES     ( 0x0100 )    /* all */
44
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)
78
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)
86
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)
94
95 #endif /* !__USE_W32API */
96
97 #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)
98
99 #define FILE_GENERIC_READ         (STANDARD_RIGHTS_READ     |\
100                                    FILE_READ_DATA           |\
101                                    FILE_READ_ATTRIBUTES     |\
102                                    FILE_READ_EA             |\
103                                    SYNCHRONIZE)
104
105
106 #define FILE_GENERIC_WRITE        (STANDARD_RIGHTS_WRITE    |\
107                                    FILE_WRITE_DATA          |\
108                                    FILE_WRITE_ATTRIBUTES    |\
109                                    FILE_WRITE_EA            |\
110                                    FILE_APPEND_DATA         |\
111                                    SYNCHRONIZE)
112
113
114 #define FILE_GENERIC_EXECUTE      (STANDARD_RIGHTS_EXECUTE  |\
115                                    FILE_READ_ATTRIBUTES     |\
116                                    FILE_EXECUTE             |\
117                                    SYNCHRONIZE)
118
119 #endif /* __INCLUDE_FILE_H */