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
53 CcMdlReadComplete2(IN PMDL MemoryDescriptorList
,
54 IN PFILE_OBJECT FileObject
)
59 while ((Mdl
= MemoryDescriptorList
))
61 MemoryDescriptorList
= Mdl
->Next
;
79 * From Bo Branten's ntifs.h v13.
85 CcMdlReadComplete(IN PFILE_OBJECT FileObject
,
88 PDEVICE_OBJECT DeviceObject
= NULL
;
89 PFAST_IO_DISPATCH FastDispatch
;
91 /* Get Fast Dispatch Data */
92 DeviceObject
= IoGetRelatedDeviceObject(FileObject
);
93 FastDispatch
= DeviceObject
->DriverObject
->FastIoDispatch
;
95 /* Check if we support Fast Calls, and check this one */
96 if (FastDispatch
&& FastDispatch
->MdlReadComplete
)
98 /* Use the fast path */
99 FastDispatch
->MdlReadComplete(FileObject
,
105 CcMdlReadComplete2(MdlChain
, FileObject
);
113 CcMdlWriteComplete(IN PFILE_OBJECT FileObject
,
114 IN PLARGE_INTEGER FileOffset
,
117 PDEVICE_OBJECT DeviceObject
= NULL
;
118 PFAST_IO_DISPATCH FastDispatch
;
120 /* Get Fast Dispatch Data */
121 DeviceObject
= IoGetRelatedDeviceObject(FileObject
);
122 FastDispatch
= DeviceObject
->DriverObject
->FastIoDispatch
;
124 /* Check if we support Fast Calls, and check this one */
125 if (FastDispatch
&& FastDispatch
->MdlWriteComplete
)
127 /* Use the fast path */
128 FastDispatch
->MdlWriteComplete(FileObject
,
135 CcMdlWriteComplete2(FileObject
,FileOffset
, MdlChain
);
141 IN PFILE_OBJECT FileObject
,
142 IN PLARGE_INTEGER FileOffset
,
155 IN PFILE_OBJECT FileObject
,
168 IN PFILE_OBJECT FileObject
,
169 IN PLARGE_INTEGER FileOffset
,
172 OUT PIO_STATUS_BLOCK IoStatus