0d38543460d854a9d944501fa3e2f9cf4aba9397
[reactos.git] / reactos / ntoskrnl / include / internal / ifs.h
1 #ifndef __INCLUDE_INTERNAL_IFS_H
2 #define __INCLUDE_INTERNAL_IFS_H
3 /* $Id$ */
4
5 #include <ddk/ntifs.h>
6 #include <ntos.h>
7
8 /* Look for "FSrt" in mem view */
9 #define IFS_POOL_TAG 0x74725346
10
11 VOID
12 STDCALL INIT_FUNCTION
13 FsRtlpInitNotifyImplementation(VOID);
14
15
16 VOID STDCALL
17 FsRtlpInitFileLockingImplementation(VOID);
18
19 VOID STDCALL
20 FsRtlpFileLockCancelRoutine(
21 IN PDEVICE_OBJECT DeviceObject,
22 IN PIRP Irp
23 );
24
25 BOOLEAN FASTCALL
26 FsRtlpCheckLockForReadOrWriteAccess(
27 IN PFILE_LOCK FileLock,
28 IN PLARGE_INTEGER FileOffset,
29 IN PLARGE_INTEGER Length,
30 IN ULONG Key,
31 IN PFILE_OBJECT FileObject,
32 IN PEPROCESS Process,
33 IN BOOLEAN Read
34 );
35
36 NTSTATUS FASTCALL
37 FsRtlpFastUnlockAllByKey(
38 IN PFILE_LOCK FileLock,
39 IN PFILE_OBJECT FileObject,
40 IN PEPROCESS Process,
41 IN DWORD Key, /* FIXME: guess */
42 IN BOOLEAN UseKey, /* FIXME: guess */
43 IN PVOID Context OPTIONAL
44 );
45
46 BOOLEAN FASTCALL
47 FsRtlpAddLock(
48 IN PFILE_LOCK_TOC LockToc,
49 IN PFILE_OBJECT FileObject,
50 IN PLARGE_INTEGER FileOffset,
51 IN PLARGE_INTEGER Length,
52 IN PEPROCESS Process,
53 IN ULONG Key,
54 IN BOOLEAN ExclusiveLock,
55 IN PVOID UnlockContext
56 );
57
58 VOID FASTCALL
59 FsRtlpCompletePendingLocks(
60 IN PFILE_LOCK FileLock,
61 IN PFILE_LOCK_TOC LockToc,
62 IN OUT PKIRQL oldirql,
63 IN PVOID Context
64 );
65
66 NTSTATUS FASTCALL
67 FsRtlpUnlockSingle(
68 IN PFILE_LOCK FileLock,
69 IN PFILE_OBJECT FileObject,
70 IN PLARGE_INTEGER FileOffset,
71 IN PLARGE_INTEGER Length,
72 IN PEPROCESS Process,
73 IN ULONG Key,
74 IN PVOID Context OPTIONAL,
75 IN BOOLEAN CallUnlockRoutine
76 );
77
78 VOID FASTCALL
79 FsRtlpDumpFileLocks(
80 IN PFILE_LOCK FileLock
81 );
82
83 #endif