- NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL...
[reactos.git] / reactos / ntoskrnl / include / internal / fsrtl.h
1 #ifndef __INCLUDE_INTERNAL_IFS_H
2 #define __INCLUDE_INTERNAL_IFS_H
3
4 typedef struct _FILE_LOCK_GRANTED
5 {
6 LIST_ENTRY ListEntry;
7 FILE_LOCK_INFO Lock;
8 PVOID UnlockContext;
9 } FILE_LOCK_GRANTED, *PFILE_LOCK_GRANTED;
10
11 typedef struct _FILE_LOCK_TOC
12 {
13 KSPIN_LOCK SpinLock;
14 LIST_ENTRY GrantedListHead;
15 LIST_ENTRY PendingListHead;
16 } FILE_LOCK_TOC, *PFILE_LOCK_TOC;
17
18 VOID
19 INIT_FUNCTION
20 STDCALL
21 FsRtlpInitNotifyImplementation(VOID);
22
23 VOID
24 STDCALL
25 FsRtlpInitFileLockingImplementation(VOID);
26
27 VOID
28 STDCALL
29 FsRtlpFileLockCancelRoutine(
30 IN PDEVICE_OBJECT DeviceObject,
31 IN PIRP Irp
32 );
33
34 BOOLEAN
35 FASTCALL
36 FsRtlpCheckLockForReadOrWriteAccess(
37 IN PFILE_LOCK FileLock,
38 IN PLARGE_INTEGER FileOffset,
39 IN PLARGE_INTEGER Length,
40 IN ULONG Key,
41 IN PFILE_OBJECT FileObject,
42 IN PEPROCESS Process,
43 IN BOOLEAN Read
44 );
45
46 NTSTATUS
47 FASTCALL
48 FsRtlpFastUnlockAllByKey(
49 IN PFILE_LOCK FileLock,
50 IN PFILE_OBJECT FileObject,
51 IN PEPROCESS Process,
52 IN DWORD Key,
53 IN BOOLEAN UseKey,
54 IN PVOID Context OPTIONAL
55 );
56
57 BOOLEAN
58 FASTCALL
59 FsRtlpAddLock(
60 IN PFILE_LOCK_TOC LockToc,
61 IN PFILE_OBJECT FileObject,
62 IN PLARGE_INTEGER FileOffset,
63 IN PLARGE_INTEGER Length,
64 IN PEPROCESS Process,
65 IN ULONG Key,
66 IN BOOLEAN ExclusiveLock,
67 IN PVOID UnlockContext
68 );
69
70 VOID
71 FASTCALL
72 FsRtlpCompletePendingLocks(
73 IN PFILE_LOCK FileLock,
74 IN PFILE_LOCK_TOC LockToc,
75 IN OUT PKIRQL oldirql,
76 IN PVOID Context
77 );
78
79 NTSTATUS
80 FASTCALL
81 FsRtlpUnlockSingle(
82 IN PFILE_LOCK FileLock,
83 IN PFILE_OBJECT FileObject,
84 IN PLARGE_INTEGER FileOffset,
85 IN PLARGE_INTEGER Length,
86 IN PEPROCESS Process,
87 IN ULONG Key,
88 IN PVOID Context OPTIONAL,
89 IN BOOLEAN CallUnlockRoutine
90 );
91
92 VOID
93 FASTCALL
94 FsRtlpDumpFileLocks(IN PFILE_LOCK FileLock);
95
96 #endif