Added required defines and typedefs for ntoskrnl/io modules.
[reactos.git] / reactos / include / ddk / ccfuncs.h
1
2 #ifndef _NTOS_CCFUNCS_H
3 #define _NTOS_CCFUNCS_H
4 /* $Id: ccfuncs.h,v 1.8 2002/09/08 10:47:43 chorns Exp $ */
5
6 /* exported variables */
7 /*
8 CcFastMdlReadWait
9 CcFastReadNotPossible
10 CcFastReadWait
11 */
12
13 BOOLEAN
14 STDCALL
15 CcCanIWrite (
16 IN PFILE_OBJECT FileObject,
17 IN ULONG BytesToWrite,
18 IN BOOLEAN Wait,
19 IN BOOLEAN Retrying
20 );
21
22 BOOLEAN
23 STDCALL
24 CcCopyRead (
25 IN PFILE_OBJECT FileObject,
26 IN PLARGE_INTEGER FileOffset,
27 IN ULONG Length,
28 IN BOOLEAN Wait,
29 OUT PVOID Buffer,
30 OUT PIO_STATUS_BLOCK IoStatus
31 );
32
33 BOOLEAN
34 STDCALL
35 CcCopyWrite (
36 IN PFILE_OBJECT FileObject,
37 IN PLARGE_INTEGER FileOffset,
38 IN ULONG Length,
39 IN BOOLEAN Wait,
40 IN PVOID Buffer
41 );
42
43 VOID
44 STDCALL
45 CcDeferWrite (
46 IN PFILE_OBJECT FileObject,
47 IN PCC_POST_DEFERRED_WRITE PostRoutine,
48 IN PVOID Context1,
49 IN PVOID Context2,
50 IN ULONG BytesToWrite,
51 IN BOOLEAN Retrying
52 );
53
54 BOOLEAN
55 STDCALL
56 CcFastCopyRead (
57 IN PFILE_OBJECT FileObject,
58 IN ULONG FileOffset,
59 IN ULONG Length,
60 IN ULONG PageCount,
61 OUT PVOID Buffer,
62 OUT PIO_STATUS_BLOCK IoStatus
63 );
64
65 BOOLEAN
66 STDCALL
67 CcFastCopyWrite (
68 IN PFILE_OBJECT FileObject,
69 IN PLARGE_INTEGER FileOffset,
70 IN ULONG Length,
71 IN PVOID Buffer
72 );
73
74 VOID
75 STDCALL
76 CcFlushCache (
77 IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
78 IN PLARGE_INTEGER FileOffset OPTIONAL,
79 IN ULONG Length,
80 OUT PIO_STATUS_BLOCK IoStatus OPTIONAL
81 );
82
83 LARGE_INTEGER
84 STDCALL
85 CcGetDirtyPages (
86 IN PVOID LogHandle,
87 IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine,
88 IN PVOID Context1,
89 IN PVOID Context2
90 );
91
92 PFILE_OBJECT
93 STDCALL
94 CcGetFileObjectFromBcb (
95 IN PVOID Bcb
96 );
97
98 PFILE_OBJECT
99 STDCALL
100 CcGetFileObjectFromSectionPtrs (
101 IN PSECTION_OBJECT_POINTERS SectionObjectPointer
102 );
103
104 LARGE_INTEGER
105 STDCALL
106 CcGetLsnForFileObject (
107 IN PFILE_OBJECT FileObject,
108 OUT PLARGE_INTEGER OldestLsn OPTIONAL
109 );
110
111 VOID
112 STDCALL
113 CcInitializeCacheMap (
114 IN PFILE_OBJECT FileObject,
115 IN PCC_FILE_SIZES FileSizes,
116 IN BOOLEAN PinAccess,
117 IN PCACHE_MANAGER_CALLBACKS CallBacks,
118 IN PVOID LazyWriterContext
119 );
120
121 BOOLEAN
122 STDCALL
123 CcIsThereDirtyData (
124 IN PVPB Vpb
125 );
126
127 BOOLEAN
128 STDCALL
129 CcMapData (
130 IN PFILE_OBJECT FileObject,
131 IN PLARGE_INTEGER FileOffset,
132 IN ULONG Length,
133 IN BOOLEAN Wait,
134 OUT PVOID * Bcb,
135 OUT PVOID * Buffer
136 );
137
138 VOID
139 STDCALL
140 CcMdlRead (
141 IN PFILE_OBJECT FileObject,
142 IN PLARGE_INTEGER FileOffset,
143 IN ULONG Length,
144 OUT PMDL * MdlChain,
145 OUT PIO_STATUS_BLOCK IoStatus
146 );
147
148 VOID
149 STDCALL
150 CcMdlReadComplete (
151 IN PFILE_OBJECT FileObject,
152 IN PMDL MdlChain
153 );
154
155 VOID
156 STDCALL
157 CcMdlWriteComplete (
158 IN PFILE_OBJECT FileObject,
159 IN PLARGE_INTEGER FileOffset,
160 IN PMDL MdlChain
161 );
162
163 BOOLEAN
164 STDCALL
165 CcPinMappedData (
166 IN PFILE_OBJECT FileObject,
167 IN PLARGE_INTEGER FileOffset,
168 IN ULONG Length,
169 IN BOOLEAN Wait,
170 OUT PVOID * Bcb
171 );
172
173 BOOLEAN
174 STDCALL
175 CcPinRead (
176 IN PFILE_OBJECT FileObject,
177 IN PLARGE_INTEGER FileOffset,
178 IN ULONG Length,
179 IN BOOLEAN Wait,
180 OUT PVOID * Bcb,
181 OUT PVOID * Buffer
182 );
183
184 VOID
185 STDCALL
186 CcPrepareMdlWrite (
187 IN PFILE_OBJECT FileObject,
188 IN PLARGE_INTEGER FileOffset,
189 IN ULONG Length,
190 OUT PMDL * MdlChain,
191 OUT PIO_STATUS_BLOCK IoStatus
192 );
193
194 BOOLEAN
195 STDCALL
196 CcPreparePinWrite (
197 IN PFILE_OBJECT FileObject,
198 IN PLARGE_INTEGER FileOffset,
199 IN ULONG Length,
200 IN BOOLEAN Zero,
201 IN BOOLEAN Wait,
202 OUT PVOID * Bcb,
203 OUT PVOID * Buffer
204 );
205
206 BOOLEAN
207 STDCALL
208 CcPurgeCacheSection (
209 IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
210 IN PLARGE_INTEGER FileOffset OPTIONAL,
211 IN ULONG Length,
212 IN BOOLEAN UninitializeCacheMaps
213 );
214
215 #define CcReadAhead(FO,FOFF,LEN) \
216 { \
217 if ((LEN) >= 256) \
218 { \
219 CcScheduleReadAhead((FO),(FOFF),(LEN)); \
220 } \
221 }
222
223 VOID
224 STDCALL
225 CcRepinBcb (
226 IN PVOID Bcb
227 );
228
229 VOID
230 STDCALL
231 CcScheduleReadAhead (
232 IN PFILE_OBJECT FileObject,
233 IN PLARGE_INTEGER FileOffset,
234 IN ULONG Length
235 );
236
237 VOID
238 STDCALL
239 CcSetAdditionalCacheAttributes (
240 IN PFILE_OBJECT FileObject,
241 IN BOOLEAN DisableReadAhead,
242 IN BOOLEAN DisableWriteBehind
243 );
244
245 VOID
246 STDCALL
247 CcSetBcbOwnerPointer (
248 IN PVOID Bcb,
249 IN PVOID Owner
250 );
251
252 VOID
253 STDCALL
254 CcSetDirtyPageThreshold (
255 IN PFILE_OBJECT FileObject,
256 IN ULONG DirtyPageThreshold
257 );
258
259 VOID
260 STDCALL
261 CcSetDirtyPinnedData (
262 IN PVOID Bcb,
263 IN PLARGE_INTEGER Lsn OPTIONAL
264 );
265
266 VOID
267 STDCALL
268 CcSetFileSizes (
269 IN PFILE_OBJECT FileObject,
270 IN PCC_FILE_SIZES FileSizes
271 );
272
273 VOID
274 STDCALL
275 CcSetLogHandleForFile (
276 IN PFILE_OBJECT FileObject,
277 IN PVOID LogHandle,
278 IN PFLUSH_TO_LSN FlushToLsnRoutine
279 );
280
281 VOID
282 STDCALL
283 CcSetReadAheadGranularity (
284 IN PFILE_OBJECT FileObject,
285 IN ULONG Granularity
286 );
287
288 BOOLEAN
289 STDCALL
290 CcUninitializeCacheMap (
291 IN PFILE_OBJECT FileObject,
292 IN PLARGE_INTEGER TruncateSize OPTIONAL,
293 IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL
294 );
295
296 VOID
297 STDCALL
298 CcUnpinData (
299 IN PVOID Bcb
300 );
301
302 VOID
303 STDCALL
304 CcUnpinDataForThread (
305 IN PVOID Bcb,
306 IN ERESOURCE_THREAD ResourceThreadId
307 );
308
309 VOID
310 STDCALL
311 CcUnpinRepinnedBcb (
312 IN PVOID Bcb,
313 IN BOOLEAN WriteThrough,
314 IN PIO_STATUS_BLOCK IoStatus
315 );
316
317 BOOLEAN
318 STDCALL
319 CcZeroData (
320 IN PFILE_OBJECT FileObject,
321 IN PLARGE_INTEGER StartOffset,
322 IN PLARGE_INTEGER EndOffset,
323 IN BOOLEAN Wait
324 );
325
326 #endif
327
328 /* EOF */