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