2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/cc/fs.c
5 * PURPOSE: Implements MDL Cache Manager Functions
7 * PROGRAMMERS: Alex Ionescu
10 /* INCLUDES ******************************************************************/
16 /* FUNCTIONS *****************************************************************/
24 IN PFILE_OBJECT FileObject
,
25 IN PLARGE_INTEGER FileOffset
,
28 OUT PIO_STATUS_BLOCK IoStatus
36 * CcMdlReadComplete2@8
48 * Used by CcMdlReadComplete@8 and FsRtl
54 IN PMDL MemoryDescriptorList
,
55 IN PFILE_OBJECT FileObject
)
60 while ((Mdl
= MemoryDescriptorList
))
62 MemoryDescriptorList
= Mdl
->Next
;
80 * From Bo Branten's ntifs.h v13.
87 IN PFILE_OBJECT FileObject
,
90 PDEVICE_OBJECT DeviceObject
= NULL
;
91 PFAST_IO_DISPATCH FastDispatch
;
93 /* Get Fast Dispatch Data */
94 DeviceObject
= IoGetRelatedDeviceObject(FileObject
);
95 FastDispatch
= DeviceObject
->DriverObject
->FastIoDispatch
;
97 /* Check if we support Fast Calls, and check this one */
98 if (FastDispatch
&& FastDispatch
->MdlReadComplete
)
100 /* Use the fast path */
101 FastDispatch
->MdlReadComplete(FileObject
,
107 CcMdlReadComplete2(MdlChain
, FileObject
);
116 IN PFILE_OBJECT FileObject
,
117 IN PLARGE_INTEGER FileOffset
,
120 PDEVICE_OBJECT DeviceObject
= NULL
;
121 PFAST_IO_DISPATCH FastDispatch
;
123 /* Get Fast Dispatch Data */
124 DeviceObject
= IoGetRelatedDeviceObject(FileObject
);
125 FastDispatch
= DeviceObject
->DriverObject
->FastIoDispatch
;
127 /* Check if we support Fast Calls, and check this one */
128 if (FastDispatch
&& FastDispatch
->MdlWriteComplete
)
130 /* Use the fast path */
131 FastDispatch
->MdlWriteComplete(FileObject
,
138 CcMdlWriteComplete2(FileObject
,FileOffset
, MdlChain
);
143 CcMdlWriteComplete2 (
144 IN PFILE_OBJECT FileObject
,
145 IN PLARGE_INTEGER FileOffset
,
157 IN PFILE_OBJECT FileObject
,
169 IN PFILE_OBJECT FileObject
,
170 IN PLARGE_INTEGER FileOffset
,
173 OUT PIO_STATUS_BLOCK IoStatus
)