]> git.proxmox.com Git - rustc.git/blob - src/vendor/winapi-0.2.8/src/fileapi.rs
New upstream version 1.24.1+dfsg1
[rustc.git] / src / vendor / winapi-0.2.8 / src / fileapi.rs
1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 //! ApiSet Contract for api-ms-win-core-file-l1
4 pub const CREATE_NEW: ::DWORD = 1;
5 pub const CREATE_ALWAYS: ::DWORD = 2;
6 pub const OPEN_EXISTING: ::DWORD = 3;
7 pub const OPEN_ALWAYS: ::DWORD = 4;
8 pub const TRUNCATE_EXISTING: ::DWORD = 5;
9 pub const INVALID_FILE_SIZE: ::DWORD = 0xFFFFFFFF;
10 pub const INVALID_SET_FILE_POINTER: ::DWORD = 0xFFFFFFFF;
11 pub const INVALID_FILE_ATTRIBUTES: ::DWORD = 0xFFFFFFFF;
12 STRUCT!{struct WIN32_FILE_ATTRIBUTE_DATA {
13 dwFileAttributes: ::DWORD,
14 ftCreationTime: ::FILETIME,
15 ftLastAccessTime: ::FILETIME,
16 ftLastWriteTime: ::FILETIME,
17 nFileSizeHigh: ::DWORD,
18 nFileSizeLow: ::DWORD,
19 }}
20 pub type LPWIN32_FILE_ATTRIBUTE_DATA = *mut WIN32_FILE_ATTRIBUTE_DATA;
21 STRUCT!{struct BY_HANDLE_FILE_INFORMATION {
22 dwFileAttributes: ::DWORD,
23 ftCreationTime: ::FILETIME,
24 ftLastAccessTime: ::FILETIME,
25 ftLastWriteTime: ::FILETIME,
26 dwVolumeSerialNumber: ::DWORD,
27 nFileSizeHigh: ::DWORD,
28 nFileSizeLow: ::DWORD,
29 nNumberOfLinks: ::DWORD,
30 nFileIndexHigh: ::DWORD,
31 nFileIndexLow: ::DWORD,
32 }}
33 pub type PBY_HANDLE_FILE_INFORMATION = *mut BY_HANDLE_FILE_INFORMATION;
34 pub type LPBY_HANDLE_FILE_INFORMATION = *mut BY_HANDLE_FILE_INFORMATION;
35 STRUCT!{struct CREATEFILE2_EXTENDED_PARAMETERS {
36 dwSize: ::DWORD,
37 dwFileAttributes: ::DWORD,
38 dwFileFlags: ::DWORD,
39 dwSecurityQosFlags: ::DWORD,
40 lpSecurityAttributes: ::LPSECURITY_ATTRIBUTES,
41 hTemplateFile: ::HANDLE,
42 }}
43 pub type PCREATEFILE2_EXTENDED_PARAMETERS = *mut CREATEFILE2_EXTENDED_PARAMETERS;
44 pub type LPCREATEFILE2_EXTENDED_PARAMETERS = *mut CREATEFILE2_EXTENDED_PARAMETERS;
45 ENUM!{enum PRIORITY_HINT {
46 IoPriorityHintVeryLow = 0,
47 IoPriorityHintLow = 1,
48 IoPriorityHintNormal = 2,
49 MaximumIoPriorityHintType = 3,
50 }}
51 STRUCT!{struct FILE_BASIC_INFO {
52 CreationTime: ::LARGE_INTEGER,
53 LastAccessTime: ::LARGE_INTEGER,
54 LastWriteTime: ::LARGE_INTEGER,
55 ChangeTime: ::LARGE_INTEGER,
56 FileAttributes: ::DWORD,
57 }}
58 STRUCT!{struct FILE_STANDARD_INFO {
59 AllocationSize: ::LARGE_INTEGER,
60 EndOfFile: ::LARGE_INTEGER,
61 NumberOfLinks: ::DWORD,
62 DeletePending: ::BOOLEAN,
63 Directory: ::BOOLEAN,
64 }}
65 STRUCT!{struct FILE_NAME_INFO {
66 FileNameLength: ::DWORD,
67 FileName: [::WCHAR; 0],
68 }}
69 STRUCT!{struct FILE_RENAME_INFO {
70 ReplaceIfExists: ::BOOL,
71 RootDirectory: ::HANDLE,
72 FileNameLength: ::DWORD,
73 FileName: [::WCHAR; 0],
74 }}
75 STRUCT!{struct FILE_DISPOSITION_INFO {
76 DeleteFile: ::BOOL,
77 }}
78 STRUCT!{struct FILE_ALLOCATION_INFO {
79 AllocationSize: ::LARGE_INTEGER,
80 }}
81 STRUCT!{struct FILE_END_OF_FILE_INFO {
82 EndOfFile: ::LARGE_INTEGER,
83 }}
84 STRUCT!{struct FILE_STREAM_INFO {
85 NextEntryOffset: ::DWORD,
86 StreamNameLength: ::DWORD,
87 StreamSize: ::DWORD,
88 StreamAllocationSize: ::DWORD,
89 StreamName: [::WCHAR; 0],
90 }}
91 STRUCT!{struct FILE_COMPRESSION_INFO {
92 CompressedFileSize: ::LARGE_INTEGER,
93 CompressionFormat: ::WORD,
94 CompressionUnitShift: ::UCHAR,
95 ChunkShift: ::UCHAR,
96 ClusterShift: ::UCHAR,
97 Reserved: [::UCHAR; 3],
98 }}
99 STRUCT!{struct FILE_ATTRIBUTE_TAG_INFO {
100 NextEntryOffset: ::DWORD,
101 ReparseTag: ::DWORD,
102 }}
103 STRUCT!{struct FILE_ID_BOTH_DIR_INFO {
104 NextEntryOffset: ::DWORD,
105 FileIndex: ::DWORD,
106 CreationTime: ::LARGE_INTEGER,
107 LastAccessTime: ::LARGE_INTEGER,
108 LastWriteTime: ::LARGE_INTEGER,
109 ChangeTime: ::LARGE_INTEGER,
110 EndOfFile: ::LARGE_INTEGER,
111 AllocationSize: ::LARGE_INTEGER,
112 FileAttributes: ::DWORD,
113 FileNameLength: ::DWORD,
114 EaSize: ::DWORD,
115 ShortNameLength: ::CCHAR,
116 ShortName: [::WCHAR; 12],
117 FileId: ::LARGE_INTEGER,
118 FileName: [::WCHAR; 0],
119 }}
120 STRUCT!{struct FILE_IO_PRIORITY_HINT_INFO {
121 PriorityHint: ::PRIORITY_HINT,
122 }}
123 STRUCT!{struct FILE_FULL_DIR_INFO {
124 NextEntryOffset: ::ULONG,
125 FileIndex: ::ULONG,
126 CreationTime: ::LARGE_INTEGER,
127 LastAccessTime: ::LARGE_INTEGER,
128 LastWriteTime: ::LARGE_INTEGER,
129 ChangeTime: ::LARGE_INTEGER,
130 EndOfFile: ::LARGE_INTEGER,
131 AllocationSize: ::LARGE_INTEGER,
132 FileAttributes: ::ULONG,
133 FileNameLength: ::ULONG,
134 EaSize: ::ULONG,
135 FileName: [::WCHAR; 0],
136 }}
137 STRUCT!{struct FILE_STORAGE_INFO {
138 LogicalBytesPerSector: ::ULONG,
139 PhysicalBytesPerSectorForAtomicity: ::ULONG,
140 PhysicalBytesPerSectorForPerformance: ::ULONG,
141 FileSystemEffectivePhysicalBytesPerSectorForAtomicity: ::ULONG,
142 Flags: ::ULONG,
143 ByteOffsetForSectorAlignment: ::ULONG,
144 ByteOffsetForPartitionAlignment: ::ULONG,
145 }}
146 STRUCT!{struct FILE_ALIGNMENT_INFO {
147 AlignmentRequirement: ::ULONG,
148 }}
149 STRUCT!{struct FILE_ID_INFO {
150 VolumeSerialNumber: ::ULONGLONG,
151 FileId: ::FILE_ID_128,
152 }}