ProjectArcade
112 строк · 4.2 Кб
1using System;
2
3namespace DokanNet
4{
5/// <summary>
6/// Defines feature flags for the file system.
7/// </summary>
8/// \see <a href="https://msdn.microsoft.com/en-us/library/cc246323.aspx">File System Attribute Extensions (MSDN)</a>
9[Flags]
10#pragma warning disable 3009
11public enum FileSystemFeatures : uint
12#pragma warning restore 3009
13{
14/// <summary>
15/// No features defined.
16/// </summary>
17None = 0,
18
19/// <summary>
20/// The file system supports case-sensitive file names.
21/// </summary>
22CaseSensitiveSearch = 1,
23
24/// <summary>
25/// The file system preserves the case of file names when it stores the name on disk.
26/// </summary>
27CasePreservedNames = 2,
28
29/// <summary>
30/// The file system supports Unicode in file names.
31/// </summary>
32UnicodeOnDisk = 4,
33
34/// <summary>
35/// The file system preserves and enforces access control lists.
36/// </summary>
37PersistentAcls = 8,
38
39/// <summary>
40/// The file system supports per-user quotas.
41/// </summary>
42VolumeQuotas = 0x20,
43
44/// <summary>
45/// The file system supports sparse files.
46///
47/// This feature allows programs to create very large files, but to consume disk space only as needed.
48/// A sparse file is a file that contains much of zeros, and a file system that support
49/// this are removing repeating zeros to save space.
50/// </summary>
51/// \see <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa365564(v=vs.85).aspx">Sparse Files (MSDN)</a>
52SupportsSparseFiles = 0x40,
53
54/// <summary>
55/// The file system supports reparse points.
56///
57/// Programs can trap open operations against objects in the file system and run their
58/// own code before returning file data. This feature can be used to extend file
59/// system features such as mount points, which you can use to redirect data read
60/// and written from a folder to another volume or physical disk.
61/// </summary>
62SupportsReparsePoints = 0x80,
63
64/// <summary>
65/// The file system supports remote storage.
66/// </summary>
67SupportsRemoteStorage = 0x100,
68
69/// <summary>
70/// Volume is a compressed volume. This flag is incompatible with FILE_FILE_COMPRESSION.
71/// This does not affect how data is transferred over the network.
72/// </summary>
73VolumeIsCompressed = 0x00008000,
74
75/// <summary>
76/// File system supports object identifiers.
77/// </summary>
78SupportsObjectIDs = 0x00010000,
79
80/// <summary>
81/// File system supports encryption.
82/// </summary>
83SupportsEncryption = 0x00020000,
84
85/// <summary>
86/// File system supports multiple named data streams for a file.
87///
88/// The unnamed data stream is the stream where the content in the file is stored.
89/// A named stream is a stream where extra data can be stored. The data is connected to the file
90/// and if the file is moved, the data is copied to the new place if that file system support it.
91/// \see <a href="https://blogs.technet.microsoft.com/askcore/2013/03/24/alternate-data-streams-in-ntfs/">Alternate Data Streams in NTFS (TechNet)</a>
92/// </summary>
93NamedStreams = 0x00040000,
94
95/// <summary>
96/// Specified volume is read-only.
97/// </summary>
98ReadOnlyVolume = 0x00080000,
99
100/// <summary>
101/// Specified volume can be written to one time only. The write MUST be performed in sequential order.
102/// </summary>
103SequentialWriteOnce = 0x00100000,
104
105/// <summary>
106/// The file system supports transaction processing to group changes to files into a transaction.
107/// The transaction will guarantee that all changes happens, or none of them.
108/// \see <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa365993(v=vs.85).aspx">About KTM (MSDN)</a>
109/// </summary>
110SupportsTransactions = 0x00200000
111}
112}