1 /* $Id: mdl.c,v 1.1 2000/03/05 19:17:42 ea Exp $
3 * reactos/ntoskrnl/fs/mdl.c
7 #include <internal/cc.h>
10 /**********************************************************************
32 return FALSE
; /* FIXME: call FsRtlMdlReadDev ? */
36 /**********************************************************************
38 * FsRtlMdlReadComplete@8
49 FsRtlMdlReadComplete (
50 IN PFILE_OBJECT FileObject
,
54 PDEVICE_OBJECT DeviceObject
[2] = {NULL
};
55 PDRIVER_OBJECT DriverObject
= NULL
;
60 DeviceObject
[0] = IoGetRelatedDeviceObject (FileObject
);
61 DriverObject
= DeviceObject
[0]->DriverObject
;
62 if (NULL
!= DriverObject
->FastIoDispatch
)
65 if (IRP_MJ_READ
<= DriverObject
->FastIoDispatch
->Count
)
69 if (NULL
== DriverObject
->FastIoDispatch
->Dispatch
[IRP_MJ_READ
])
73 return DriverObject
->FastIoDispatch
->Dispatch
76 NULL
/* FIXME: how to get the IRP? */
83 DeviceObject
[1] = IoGetBaseFileSystemDeviceObject (FileObject
);
85 * Did IoGetBaseFileSystemDeviceObject ()
86 * returned the same device
87 * IoGetRelatedDeviceObject () returned?
89 if (DeviceObject
[1] != DeviceObject
[0])
92 DriverObject
= DeviceObject
[1]->DriverObject
;
93 if (NULL
!= DriverObject
->FastIoDispatch
)
96 * Check if the driver provides
99 if (IRP_MJ_READ
<= DriverObject
->FastIoDispatch
->Count
)
101 if (NULL
== DriverObject
->FastIoDispatch
->Dispatch
[IRP_MJ_READ
])
108 DeviceObject
[0] = DeviceObject
[1];
110 return FsRtlMdlReadCompleteDev (
118 /**********************************************************************
120 * FsRtlMdlReadCompleteDev@12
129 * From Bo Branten's ntifs.h v13.
130 * (CcMdlReadCompleteDev declared in internal/cc.h)
134 FsRtlMdlReadCompleteDev (
135 IN PFILE_OBJECT FileObject
,
137 IN PDEVICE_OBJECT DeviceObject
140 FileObject
= FileObject
; /* unused parameter */
141 CcMdlReadCompleteDev (MdlChain
, DeviceObject
);
146 /**********************************************************************
173 /**********************************************************************
175 * FsRtlMdlWriteComplete@12
186 FsRtlMdlWriteComplete (
187 IN PFILE_OBJECT FileObject
,
188 IN PLARGE_INTEGER FileOffset
,
192 return FALSE
; /* FIXME: call FsRtlMdlWriteCompleteDev ? */
196 /**********************************************************************
198 * FsRtlMdlWriteCompleteDev@16
209 FsRtlMdlWriteCompleteDev (
210 IN PFILE_OBJECT FileObject
,
211 IN PLARGE_INTEGER FileOffset
,
213 IN PDEVICE_OBJECT DeviceObject
220 /**********************************************************************
222 * FsRtlPrepareMdlWrite@24
233 FsRtlPrepareMdlWrite (
242 return FALSE
; /* call FsRtlPrepareMdlWriteDev ? */
246 /**********************************************************************
248 * FsRtlPrepareMdlWriteDev@28
259 FsRtlPrepareMdlWriteDev (