NTOSKRNL.FSRtl MDL stubs added.
[reactos.git] / reactos / ntoskrnl / fs / mdl.c
1 /* $Id: mdl.c,v 1.1 2000/03/05 19:17:42 ea Exp $
2 *
3 * reactos/ntoskrnl/fs/mdl.c
4 *
5 */
6 #include <ntos.h>
7 #include <internal/cc.h>
8 #include <ddk/ntifs.h>
9
10 /**********************************************************************
11 * NAME EXPORTED
12 * FsRtlMdlRead@24
13 *
14 * DESCRIPTION
15 *
16 * ARGUMENTS
17 *
18 * RETURN VALUE
19 *
20 */
21 BOOLEAN
22 STDCALL
23 FsRtlMdlRead (
24 DWORD Unknown0,
25 DWORD Unknown1,
26 DWORD Unknown2,
27 DWORD Unknown3,
28 DWORD Unknown4,
29 DWORD Unknown5
30 )
31 {
32 return FALSE; /* FIXME: call FsRtlMdlReadDev ? */
33 }
34
35
36 /**********************************************************************
37 * NAME EXPORTED
38 * FsRtlMdlReadComplete@8
39 *
40 * DESCRIPTION
41 *
42 * ARGUMENTS
43 *
44 * RETURN VALUE
45 *
46 */
47 BOOLEAN
48 STDCALL
49 FsRtlMdlReadComplete (
50 IN PFILE_OBJECT FileObject,
51 IN OUT PMDL Mdl
52 )
53 {
54 PDEVICE_OBJECT DeviceObject [2] = {NULL};
55 PDRIVER_OBJECT DriverObject = NULL;
56
57 /*
58 * Try fast I/O first
59 */
60 DeviceObject [0] = IoGetRelatedDeviceObject (FileObject);
61 DriverObject = DeviceObject [0]->DriverObject;
62 if (NULL != DriverObject->FastIoDispatch)
63 {
64 #if 0
65 if (IRP_MJ_READ <= DriverObject->FastIoDispatch->Count)
66 {
67 return FALSE;
68 }
69 if (NULL == DriverObject->FastIoDispatch->Dispatch [IRP_MJ_READ])
70 {
71 return FALSE;
72 }
73 return DriverObject->FastIoDispatch->Dispatch
74 [IRP_MJ_READ] (
75 Mdl,
76 NULL /* FIXME: how to get the IRP? */
77 );
78 #endif
79 }
80 /*
81 * Default I/O path
82 */
83 DeviceObject [1] = IoGetBaseFileSystemDeviceObject (FileObject);
84 /*
85 * Did IoGetBaseFileSystemDeviceObject ()
86 * returned the same device
87 * IoGetRelatedDeviceObject () returned?
88 */
89 if (DeviceObject [1] != DeviceObject [0])
90 {
91 #if 0
92 DriverObject = DeviceObject [1]->DriverObject;
93 if (NULL != DriverObject->FastIoDispatch)
94 {
95 /*
96 * Check if the driver provides
97 * IRP_MJ_READ.
98 */
99 if (IRP_MJ_READ <= DriverObject->FastIoDispatch->Count)
100 {
101 if (NULL == DriverObject->FastIoDispatch->Dispatch [IRP_MJ_READ])
102 {
103 return FALSE;
104 }
105 }
106 }
107 #endif
108 DeviceObject [0] = DeviceObject [1];
109 }
110 return FsRtlMdlReadCompleteDev (
111 FileObject,
112 Mdl,
113 DeviceObject [0]
114 );
115 }
116
117
118 /**********************************************************************
119 * NAME EXPORTED
120 * FsRtlMdlReadCompleteDev@12
121 *
122 * DESCRIPTION
123 *
124 * ARGUMENTS
125 *
126 * RETURN VALUE
127 *
128 * NOTE
129 * From Bo Branten's ntifs.h v13.
130 * (CcMdlReadCompleteDev declared in internal/cc.h)
131 */
132 BOOLEAN
133 STDCALL
134 FsRtlMdlReadCompleteDev (
135 IN PFILE_OBJECT FileObject,
136 IN PMDL MdlChain,
137 IN PDEVICE_OBJECT DeviceObject
138 )
139 {
140 FileObject = FileObject; /* unused parameter */
141 CcMdlReadCompleteDev (MdlChain, DeviceObject);
142 return TRUE;
143 }
144
145
146 /**********************************************************************
147 * NAME EXPORTED
148 * FsRtlMdlReadDev@28
149 *
150 * DESCRIPTION
151 *
152 * ARGUMENTS
153 *
154 * RETURN VALUE
155 *
156 */
157 BOOLEAN
158 STDCALL
159 FsRtlMdlReadDev (
160 DWORD Unknown0,
161 DWORD Unknown1,
162 DWORD Unknown2,
163 DWORD Unknown3,
164 DWORD Unknown4,
165 DWORD Unknown5,
166 DWORD Unknown6
167 )
168 {
169 return FALSE;
170 }
171
172
173 /**********************************************************************
174 * NAME EXPORTED
175 * FsRtlMdlWriteComplete@12
176 *
177 * DESCRIPTION
178 *
179 * ARGUMENTS
180 *
181 * RETURN VALUE
182 *
183 */
184 BOOLEAN
185 STDCALL
186 FsRtlMdlWriteComplete (
187 IN PFILE_OBJECT FileObject,
188 IN PLARGE_INTEGER FileOffset,
189 IN PMDL MdlChain
190 )
191 {
192 return FALSE; /* FIXME: call FsRtlMdlWriteCompleteDev ? */
193 }
194
195
196 /**********************************************************************
197 * NAME EXPORTED
198 * FsRtlMdlWriteCompleteDev@16
199 *
200 * DESCRIPTION
201 *
202 * ARGUMENTS
203 *
204 * RETURN VALUE
205 *
206 */
207 BOOLEAN
208 STDCALL
209 FsRtlMdlWriteCompleteDev (
210 IN PFILE_OBJECT FileObject,
211 IN PLARGE_INTEGER FileOffset,
212 IN PMDL MdlChain,
213 IN PDEVICE_OBJECT DeviceObject
214 )
215 {
216 return FALSE;
217 }
218
219
220 /**********************************************************************
221 * NAME EXPORTED
222 * FsRtlPrepareMdlWrite@24
223 *
224 * DESCRIPTION
225 *
226 * ARGUMENTS
227 *
228 * RETURN VALUE
229 *
230 */
231 BOOLEAN
232 STDCALL
233 FsRtlPrepareMdlWrite (
234 DWORD Unknown0,
235 DWORD Unknown1,
236 DWORD Unknown2,
237 DWORD Unknown3,
238 DWORD Unknown4,
239 DWORD Unknown5
240 )
241 {
242 return FALSE; /* call FsRtlPrepareMdlWriteDev ? */
243 }
244
245
246 /**********************************************************************
247 * NAME EXPORTED
248 * FsRtlPrepareMdlWriteDev@28
249 *
250 * DESCRIPTION
251 *
252 * ARGUMENTS
253 *
254 * RETURN VALUE
255 *
256 */
257 BOOLEAN
258 STDCALL
259 FsRtlPrepareMdlWriteDev (
260 DWORD Unknown0,
261 DWORD Unknown1,
262 DWORD Unknown2,
263 DWORD Unknown3,
264 DWORD Unknown4,
265 DWORD Unknown5,
266 DWORD Unknown6
267 )
268 {
269 return FALSE;
270 }
271
272
273 /* EOF */