update for HEAD-2003091401
[reactos.git] / include / ddk / fstypes.h
1 #ifndef __INCLUDE_DDK_FSTYPES_H
2 #define __INCLUDE_DDK_FSTYPES_H
3 /* $Id$ */
4
5 #ifndef __USE_W32API
6
7 typedef struct _FILE_LOCK_INFO {
8     LARGE_INTEGER   StartingByte;
9     LARGE_INTEGER   Length;
10     BOOLEAN         ExclusiveLock;
11     ULONG           Key;
12     PFILE_OBJECT    FileObject;
13     PEPROCESS       Process;
14     LARGE_INTEGER   EndingByte;
15 } FILE_LOCK_INFO, *PFILE_LOCK_INFO;
16
17
18 typedef NTSTATUS (*PCOMPLETE_LOCK_IRP_ROUTINE) (
19     IN PVOID    Context,
20     IN PIRP     Irp
21 );
22
23 typedef VOID (*PUNLOCK_ROUTINE) (
24     IN PVOID            Context,
25     IN PFILE_LOCK_INFO  FileLockInfo
26 );
27
28
29 typedef struct _FILE_LOCK {
30     PCOMPLETE_LOCK_IRP_ROUTINE  CompleteLockIrpRoutine;
31     PUNLOCK_ROUTINE             UnlockRoutine;
32     BOOLEAN                     FastIoIsQuestionable;
33     BOOLEAN                     Pad[3];
34     PVOID                       LockInformation;
35     FILE_LOCK_INFO              LastReturnedLockInfo;
36     PVOID                       LastReturnedLock;
37 } FILE_LOCK, *PFILE_LOCK;
38
39
40 typedef struct _TUNNEL {
41     FAST_MUTEX          Mutex;
42     PRTL_SPLAY_LINKS    Cache;
43     LIST_ENTRY          TimerQueue;
44     USHORT              NumEntries;
45 } TUNNEL, *PTUNNEL;
46
47 typedef struct _NOTIFY_SYNC
48 {
49         DWORD   Unknown0;       /* 0x00 */
50         DWORD   Unknown1;       /* 0x04 */
51         DWORD   Unknown2;       /* 0x08 */
52         WORD    Unknown3;       /* 0x0c */
53         WORD    Unknown4;       /* 0x0e */
54         DWORD   Unknown5;       /* 0x10 */
55         DWORD   Unknown6;       /* 0x14 */
56         DWORD   Unknown7;       /* 0x18 */
57         DWORD   Unknown8;       /* 0x1c */
58         DWORD   Unknown9;       /* 0x20 */
59         DWORD   Unknown10;      /* 0x24 */
60         
61 } NOTIFY_SYNC, * PNOTIFY_SYNC;
62
63
64 typedef VOID
65 (*POPLOCK_WAIT_COMPLETE_ROUTINE)(PVOID Context,
66                                  PIRP Irp);
67
68 typedef VOID
69 (*POPLOCK_FS_PREPOST_IRP)(PVOID Context,
70                           PIRP Irp);
71
72 typedef PVOID OPLOCK, *POPLOCK;
73
74 #endif /* __USE_W32API */
75
76 #endif /* __INCLUDE_DDK_FSFUNCS_H */