Commit of the rest of Gunnars file locking patch.
[reactos.git] / reactos / ntoskrnl / include / internal / ifs.h
1 #ifndef __INCLUDE_INTERNAL_IFS_H
2 #define __INCLUDE_INTERNAL_IFS_H
3 /* $Id: ifs.h,v 1.4 2002/11/13 06:01:11 robd Exp $ */
4
5 #include <ddk/ntifs.h>
6
7 /* Look for "FSrt" in mem view */
8 #define IFS_POOL_TAG 0x74725346
9
10 VOID STDCALL
11 FsRtlpInitFileLockingImplementation(VOID);
12
13 VOID STDCALL
14 FsRtlpPendingFileLockCancelRoutine(
15 IN PDEVICE_OBJECT DeviceObject,
16 IN PIRP Irp
17 );
18
19 BOOLEAN STDCALL
20 FsRtlpCheckLockForReadOrWriteAccess(
21 IN PFILE_LOCK FileLock,
22 IN PLARGE_INTEGER FileOffset,
23 IN PLARGE_INTEGER Length,
24 IN ULONG Key,
25 IN PFILE_OBJECT FileObject,
26 IN PEPROCESS Process,
27 IN BOOLEAN Read
28 );
29
30 NTSTATUS STDCALL
31 FsRtlpFastUnlockAllByKey(
32 IN PFILE_LOCK FileLock,
33 IN PFILE_OBJECT FileObject,
34 IN PEPROCESS Process,
35 IN DWORD Key, /* FIXME: guess */
36 IN BOOLEAN UseKey, /* FIXME: guess */
37 IN PVOID Context OPTIONAL
38 );
39
40 NTSTATUS STDCALL
41 FsRtlpAddLock(
42 IN PFILE_LOCK_TOC LockToc,
43 IN PFILE_OBJECT FileObject,
44 IN PLARGE_INTEGER FileOffset,
45 IN PLARGE_INTEGER Length,
46 IN PEPROCESS Process,
47 IN ULONG Key,
48 IN BOOLEAN ExclusiveLock
49 );
50
51 VOID STDCALL
52 FsRtlpTryCompletePendingLocks(
53 IN PFILE_LOCK FileLock,
54 IN PFILE_LOCK_TOC LockToc,
55 IN OUT PKIRQL oldirql
56 );
57
58 NTSTATUS STDCALL
59 FsRtlpUnlockSingle(
60 IN PFILE_LOCK FileLock,
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 PVOID Context OPTIONAL,
67 IN BOOLEAN AlreadySynchronized,
68 IN BOOLEAN CallUnlockRoutine
69 );
70
71 VOID STDCALL
72 FsRtlpDumpFileLocks(
73 IN PFILE_LOCK FileLock
74 );
75
76 #endif