2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/cc/mdl.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
31 CCTRACE(CC_API_DEBUG
, "FileObject=%p FileOffset=%I64d Length=%lu\n",
32 FileObject
, FileOffset
->QuadPart
, Length
);
39 * CcMdlReadComplete2@8
51 * Used by CcMdlReadComplete@8 and FsRtl
57 IN PFILE_OBJECT FileObject
,
58 IN PMDL MemoryDescriptorList
64 while ((Mdl
= MemoryDescriptorList
))
66 MemoryDescriptorList
= Mdl
->Next
;
84 * From Bo Branten's ntifs.h v13.
91 IN PFILE_OBJECT FileObject
,
94 PDEVICE_OBJECT DeviceObject
= NULL
;
95 PFAST_IO_DISPATCH FastDispatch
;
97 /* Get Fast Dispatch Data */
98 DeviceObject
= IoGetRelatedDeviceObject(FileObject
);
99 FastDispatch
= DeviceObject
->DriverObject
->FastIoDispatch
;
101 /* Check if we support Fast Calls, and check this one */
102 if (FastDispatch
&& FastDispatch
->MdlReadComplete
)
104 /* Use the fast path */
105 FastDispatch
->MdlReadComplete(FileObject
,
111 CcMdlReadComplete2(FileObject
, MdlChain
);
120 IN PFILE_OBJECT FileObject
,
121 IN PLARGE_INTEGER FileOffset
,
124 PDEVICE_OBJECT DeviceObject
= NULL
;
125 PFAST_IO_DISPATCH FastDispatch
;
127 /* Get Fast Dispatch Data */
128 DeviceObject
= IoGetRelatedDeviceObject(FileObject
);
129 FastDispatch
= DeviceObject
->DriverObject
->FastIoDispatch
;
131 /* Check if we support Fast Calls, and check this one */
132 if (FastDispatch
&& FastDispatch
->MdlWriteComplete
)
134 /* Use the fast path */
135 FastDispatch
->MdlWriteComplete(FileObject
,
142 CcMdlWriteComplete2(FileObject
,FileOffset
, MdlChain
);
147 CcMdlWriteComplete2 (
148 IN PFILE_OBJECT FileObject
,
149 IN PLARGE_INTEGER FileOffset
,
161 IN PFILE_OBJECT FileObject
,
173 IN PFILE_OBJECT FileObject
,
174 IN PLARGE_INTEGER FileOffset
,
177 OUT PIO_STATUS_BLOCK IoStatus
)
179 CCTRACE(CC_API_DEBUG
, "FileObject=%p FileOffset=%I64d Length=%lu\n",
180 FileObject
, FileOffset
->QuadPart
, Length
);