EaseFilter Demo Project
WinDataStructures.h
Go to the documentation of this file.
1 //
3 // (C) Copyright 2011 EaseFilter Technologies Inc.
4 // All Rights Reserved
5 //
6 // This software is part of a licensed software product and may
7 // only be used or copied in accordance with the terms of that license.
8 //
10 
11 #ifndef __WinDataStructures_H__
12 #define __WinDataStructures_H__
13 
14 #define STATUS_SUCCESS 0
15 #define STATUS_REPARSE 0x00000104L
16 #define STATUS_NO_MORE_FILES 0x80000006L
17 #define STATUS_WARNING (ULONG)0x80000000
18 #define STATUS_ERROR (ULONG)0xc0000000
19 
20 //for Disposition,ShareAccess,DesiredAccess,CreateOptions Please reference Winddows API CreateFile
21 //http://msdn.microsoft.com/en-us/library/aa363858%28v=vs.85%29.aspx
22 
23 typedef enum Disposition
24 {
31 };
32 
33 typedef enum ShareAccess
34 {
42 };
43 
44 typedef enum CreateOptions
45 {
46  FILE_DIRECTORY_FILE = 0x00000001,
47  FILE_WRITE_THROUGH = 0x00000002,
48  FILE_SEQUENTIAL_ONLY = 0x00000004,
55  FILE_NO_EA_KNOWLEDGE = 0x00000200,
57  FILE_RANDOM_ACCESS = 0x00000800,
58  FILE_DELETE_ON_CLOSE = 0x00001000,
59  FILE_OPEN_BY_FILE_ID = 0x00002000,
61  FILE_NO_COMPRESSION = 0x00008000,
64  FILE_RESERVE_OPFILTER = 0x00100000,
66  FILE_OPEN_NO_RECALL = 0x00400000,
68 };
69 
70 //this is the status for post create request.
71 typedef enum CreateStatus
72 {
73  FILE_SUPERSEDED = 0x00000000,
74  FILE_OPENED = 0x00000001,
75  FILE_CREATED = 0x00000002,
76  FILE_OVERWRITTEN = 0x00000003,
77  FILE_EXISTS = 0x00000004,
78  FILE_DOES_NOT_EXIST = 0x00000005,
79 };
80 
81 //
82 // Define the file information class values
83 //
84 // WARNING: The order of the following values are assumed by the I/O system.
85 // Any changes made here should be reflected there as well.
86 //
87 
146 
147 //
148 // Define the various structures which are returned on query operations
149 //
150 
151 typedef struct _FILE_BASIC_INFORMATION {
152  LARGE_INTEGER CreationTime;
153  LARGE_INTEGER LastAccessTime;
154  LARGE_INTEGER LastWriteTime;
155  LARGE_INTEGER ChangeTime;
158 
160  LARGE_INTEGER AllocationSize;
161  LARGE_INTEGER EndOfFile;
163  BOOLEAN DeletePending;
164  BOOLEAN Directory;
166 
167 
169  LARGE_INTEGER CurrentByteOffset;
171 
172 
174  LARGE_INTEGER CreationTime;
175  LARGE_INTEGER LastAccessTime;
176  LARGE_INTEGER LastWriteTime;
177  LARGE_INTEGER ChangeTime;
178  LARGE_INTEGER AllocationSize;
179  LARGE_INTEGER EndOfFile;
182 
183 
184 
185 //
186 // NtQueryDirectoryFile return types:
187 //
188 // FILE_DIRECTORY_INFORMATION
189 // FILE_FULL_DIR_INFORMATION
190 // FILE_ID_FULL_DIR_INFORMATION
191 // FILE_BOTH_DIR_INFORMATION
192 // FILE_ID_BOTH_DIR_INFORMATION
193 // FILE_NAMES_INFORMATION
194 // FILE_OBJECTID_INFORMATION
195 //
196 
199  ULONG FileIndex;
200  LARGE_INTEGER CreationTime;
201  LARGE_INTEGER LastAccessTime;
202  LARGE_INTEGER LastWriteTime;
203  LARGE_INTEGER ChangeTime;
204  LARGE_INTEGER EndOfFile;
205  LARGE_INTEGER AllocationSize;
208  WCHAR FileName[1];
210 
213  ULONG FileIndex;
214  LARGE_INTEGER CreationTime;
215  LARGE_INTEGER LastAccessTime;
216  LARGE_INTEGER LastWriteTime;
217  LARGE_INTEGER ChangeTime;
218  LARGE_INTEGER EndOfFile;
219  LARGE_INTEGER AllocationSize;
222  ULONG EaSize;
223  WCHAR FileName[1];
225 
228  ULONG FileIndex;
229  LARGE_INTEGER CreationTime;
230  LARGE_INTEGER LastAccessTime;
231  LARGE_INTEGER LastWriteTime;
232  LARGE_INTEGER ChangeTime;
233  LARGE_INTEGER EndOfFile;
234  LARGE_INTEGER AllocationSize;
237  ULONG EaSize;
238  LARGE_INTEGER FileId;
239  WCHAR FileName[1];
241 
244  ULONG FileIndex;
245  LARGE_INTEGER CreationTime;
246  LARGE_INTEGER LastAccessTime;
247  LARGE_INTEGER LastWriteTime;
248  LARGE_INTEGER ChangeTime;
249  LARGE_INTEGER EndOfFile;
250  LARGE_INTEGER AllocationSize;
253  ULONG EaSize;
255  WCHAR ShortName[12];
256  WCHAR FileName[1];
258 
261  ULONG FileIndex;
262  LARGE_INTEGER CreationTime;
263  LARGE_INTEGER LastAccessTime;
264  LARGE_INTEGER LastWriteTime;
265  LARGE_INTEGER ChangeTime;
266  LARGE_INTEGER EndOfFile;
267  LARGE_INTEGER AllocationSize;
270  ULONG EaSize;
272  WCHAR ShortName[12];
273  LARGE_INTEGER FileId;
274  WCHAR FileName[1];
276 
277 typedef struct _FILE_NAMES_INFORMATION {
279  ULONG FileIndex;
281  WCHAR FileName[1];
283 
286  ULONG FileIndex;
287  LARGE_INTEGER CreationTime;
288  LARGE_INTEGER LastAccessTime;
289  LARGE_INTEGER LastWriteTime;
290  LARGE_INTEGER ChangeTime;
291  LARGE_INTEGER EndOfFile;
292  LARGE_INTEGER AllocationSize;
295  LARGE_INTEGER FileId;
297  ULONG TxInfoFlags;
298  WCHAR FileName[1];
300 
301 
302 
303 #endif
struct _FILE_BASIC_INFORMATION FILE_BASIC_INFORMATION
struct _FILE_BASIC_INFORMATION * PFILE_BASIC_INFORMATION
_FILE_INFORMATION_CLASS
struct _FILE_DIRECTORY_INFORMATION FILE_DIRECTORY_INFORMATION
struct _FILE_ID_GLOBAL_TX_DIR_INFORMATION FILE_ID_GLOBAL_TX_DIR_INFORMATION
struct _FILE_ID_BOTH_DIR_INFORMATION FILE_ID_BOTH_DIR_INFORMATION
struct _FILE_NAMES_INFORMATION FILE_NAMES_INFORMATION
struct _FILE_ID_FULL_DIR_INFORMATION * PFILE_ID_FULL_DIR_INFORMATION
Disposition
struct _FILE_STANDARD_INFORMATION * PFILE_STANDARD_INFORMATION
struct _FILE_NETWORK_OPEN_INFORMATION * PFILE_NETWORK_OPEN_INFORMATION
struct _FILE_BOTH_DIR_INFORMATION * PFILE_BOTH_DIR_INFORMATION
struct _FILE_STANDARD_INFORMATION FILE_STANDARD_INFORMATION
struct _FILE_NAMES_INFORMATION * PFILE_NAMES_INFORMATION
struct _FILE_ID_BOTH_DIR_INFORMATION * PFILE_ID_BOTH_DIR_INFORMATION
struct _FILE_FULL_DIR_INFORMATION * PFILE_FULL_DIR_INFORMATION
struct _FILE_DIRECTORY_INFORMATION * PFILE_DIRECTORY_INFORMATION
struct _FILE_NETWORK_OPEN_INFORMATION FILE_NETWORK_OPEN_INFORMATION
struct _FILE_ID_GLOBAL_TX_DIR_INFORMATION * PFILE_ID_GLOBAL_TX_DIR_INFORMATION
CreateOptions
CreateStatus
struct _FILE_BOTH_DIR_INFORMATION FILE_BOTH_DIR_INFORMATION
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
struct _FILE_ID_FULL_DIR_INFORMATION FILE_ID_FULL_DIR_INFORMATION
ShareAccess
struct _FILE_FULL_DIR_INFORMATION FILE_FULL_DIR_INFORMATION
struct _FILE_POSITION_INFORMATION FILE_POSITION_INFORMATION
enum _FILE_INFORMATION_CLASS * PFILE_INFORMATION_CLASS
struct _FILE_POSITION_INFORMATION * PFILE_POSITION_INFORMATION

Social Network


Services Overview

Architect, implement and test file system filter drivers for a wide range of functionality. We can offer several levels of assistance to meet your specific.

Contact Us

You are welcome to contact us for salse or partnership.

Sales: sales@easefilter.com
Support: support@easefilter.com
Info: info@easefilter.com