2c981731a5f1094cb34cfc82f7395840030abfc4
[reactos.git] / reactos / include / ddk / fsfuncs.h
1 #ifndef __INCLUDE_DDK_FSFUNCS_H
2 #define __INCLUDE_DDK_FSFUNCS_H
3 /* $Id: fsfuncs.h,v 1.11 2001/04/24 18:36:38 ea Exp $ */
4 #define FlagOn(x,f) ((x) & (f))
5 VOID
6 STDCALL
7 FsRtlAddLargeMcbEntry (
8 DWORD Unknown0,
9 DWORD Unknown1,
10 DWORD Unknown2,
11 DWORD Unknown3,
12 DWORD Unknown4,
13 DWORD Unknown5,
14 DWORD Unknown6
15 );
16 VOID
17 STDCALL
18 FsRtlAddMcbEntry (
19 DWORD Unknown0,
20 DWORD Unknown1,
21 DWORD Unknown2,
22 DWORD Unknown3
23 );
24 VOID
25 STDCALL
26 FsRtlAddToTunnelCache (
27 DWORD Unknown0,
28 DWORD Unknown1,
29 DWORD Unknown2,
30 DWORD Unknown3,
31 DWORD Unknown4,
32 DWORD Unknown5,
33 DWORD Unknown6,
34 DWORD Unknown7
35 );
36 PVOID
37 STDCALL
38 FsRtlAllocatePool (
39 IN POOL_TYPE PoolType,
40 IN ULONG NumberOfBytes
41 );
42 PVOID
43 STDCALL
44 FsRtlAllocatePoolWithQuota (
45 IN POOL_TYPE PoolType,
46 IN ULONG NumberOfBytes
47 );
48 PVOID
49 STDCALL
50 FsRtlAllocatePoolWithQuotaTag (
51 IN POOL_TYPE PoolType,
52 IN ULONG NumberOfBytes,
53 IN ULONG Tag
54 );
55 PVOID
56 STDCALL
57 FsRtlAllocatePoolWithTag (
58 IN POOL_TYPE PoolType,
59 IN ULONG NumberOfBytes,
60 IN ULONG Tag
61 );
62 DWORD
63 STDCALL
64 FsRtlAllocateResource (
65 VOID
66 );
67 BOOLEAN
68 STDCALL
69 FsRtlAreNamesEqual (
70 IN PUNICODE_STRING Name1,
71 IN PUNICODE_STRING Name2,
72 IN BOOLEAN IgnoreCase,
73 IN PWCHAR UpcaseTable OPTIONAL
74 );
75 DWORD
76 STDCALL
77 FsRtlBalanceReads (
78 DWORD Unknown0
79 );
80 BOOLEAN
81 STDCALL
82 FsRtlCheckLockForReadAccess (
83 DWORD Unknown0,
84 DWORD Unknown1
85 );
86 BOOLEAN
87 STDCALL
88 FsRtlCheckLockForWriteAccess (
89 DWORD Unknown0,
90 DWORD Unknown1
91 );
92 DWORD
93 STDCALL
94 FsRtlCheckOplock (
95 DWORD Unknown0,
96 DWORD Unknown1,
97 DWORD Unknown2,
98 DWORD Unknown3,
99 DWORD Unknown4
100 );
101 BOOLEAN
102 STDCALL
103 FsRtlCopyRead (
104 IN PFILE_OBJECT FileObject,
105 IN PLARGE_INTEGER FileOffset,
106 IN ULONG Length,
107 IN BOOLEAN Wait,
108 IN ULONG LockKey,
109 OUT PVOID Buffer,
110 OUT PIO_STATUS_BLOCK IoStatus,
111 IN PDEVICE_OBJECT DeviceObject
112 );
113 BOOLEAN
114 STDCALL
115 FsRtlCopyWrite (
116 IN PFILE_OBJECT FileObject,
117 IN PLARGE_INTEGER FileOffset,
118 IN ULONG Length,
119 IN BOOLEAN Wait,
120 IN ULONG LockKey,
121 IN PVOID Buffer,
122 OUT PIO_STATUS_BLOCK IoStatus,
123 IN PDEVICE_OBJECT DeviceObject
124 );
125 BOOLEAN
126 STDCALL
127 FsRtlCurrentBatchOplock (
128 DWORD Unknown0
129 );
130 VOID
131 STDCALL
132 FsRtlDeleteKeyFromTunnelCache (
133 DWORD Unknown0,
134 DWORD Unknown1,
135 DWORD Unknown2
136 );
137 VOID
138 STDCALL
139 FsRtlDeleteTunnelCache (
140 IN OUT PVOID lpTunnel
141 );
142 VOID
143 STDCALL
144 FsRtlDeregisterUncProvider (
145 DWORD Unknown0
146 );
147 VOID
148 STDCALL
149 FsRtlDissectDbcs (
150 DWORD Unknown0,
151 DWORD Unknown1,
152 DWORD Unknown2,
153 DWORD Unknown3
154 );
155 VOID
156 STDCALL
157 FsRtlDissectName (
158 DWORD Unknown0,
159 DWORD Unknown1,
160 DWORD Unknown2,
161 DWORD Unknown3
162 );
163 BOOLEAN
164 STDCALL
165 FsRtlDoesDbcsContainWildCards (
166 IN DWORD Unknown0
167 );
168 BOOLEAN
169 STDCALL
170 FsRtlDoesNameContainWildCards (
171 IN PUNICODE_STRING Name
172 );
173 BOOLEAN
174 STDCALL
175 FsRtlFastCheckLockForRead (
176 IN PFILE_LOCK_ANCHOR FileLockAnchor,
177 IN PLARGE_INTEGER FileOffset,
178 IN PLARGE_INTEGER Length,
179 IN ULONG Key,
180 IN PFILE_OBJECT FileObject,
181 IN PEPROCESS ProcessId
182 );
183 BOOLEAN
184 STDCALL
185 FsRtlFastCheckLockForWrite (
186 IN PFILE_LOCK_ANCHOR FileLockAnchor,
187 IN PLARGE_INTEGER FileOffset,
188 IN PLARGE_INTEGER Length,
189 IN ULONG Key,
190 IN PFILE_OBJECT FileObject,
191 IN PEPROCESS ProcessId
192 );
193 NTSTATUS
194 STDCALL
195 FsRtlFastUnlockAll (
196 DWORD Unknown0,
197 DWORD Unknown1,
198 DWORD Unknown2,
199 DWORD Unknown3
200 );
201 NTSTATUS
202 STDCALL
203 FsRtlFastUnlockAllByKey (
204 IN DWORD Unknown0,
205 IN DWORD Unknown1,
206 IN DWORD Unknown2,
207 IN DWORD Unknown3,
208 IN DWORD Key
209 );
210 NTSTATUS
211 STDCALL
212 FsRtlFastUnlockSingle (
213 IN DWORD Unknown0,
214 IN DWORD Unknown1,
215 IN DWORD Unknown2,
216 IN DWORD Unknown3,
217 IN DWORD Unknown4,
218 IN DWORD Unknown5,
219 IN DWORD Unknown6,
220 IN DWORD Unknown7
221 );
222 VOID
223 STDCALL
224 FsRtlFindInTunnelCache (
225 DWORD Unknown0,
226 DWORD Unknown1,
227 DWORD Unknown2,
228 DWORD Unknown3,
229 DWORD Unknown4,
230 DWORD Unknown5,
231 DWORD Unknown6,
232 DWORD Unknown7
233 );
234 DWORD
235 STDCALL
236 FsRtlGetFileSize (
237 DWORD Unknown0,
238 DWORD Unknown1
239 );
240 NTSTATUS
241 STDCALL
242 FsRtlGetNextFileLock (
243 IN DWORD Unknown0,
244 IN OUT PVOID Unknown1
245 );
246 VOID
247 STDCALL
248 FsRtlGetNextLargeMcbEntry (
249 DWORD Unknown0,
250 DWORD Unknown1,
251 DWORD Unknown2,
252 DWORD Unknown3,
253 DWORD Unknown4
254 );
255 VOID
256 STDCALL
257 FsRtlGetNextMcbEntry (
258 DWORD Unknown0,
259 DWORD Unknown1,
260 DWORD Unknown2,
261 DWORD Unknown3,
262 DWORD Unknown4
263 );
264 #define FsRtlEnterFileSystem KeEnterCriticalRegion
265 #define FsRtlExitFileSystem KeLeaveCriticalRegion
266 VOID
267 STDCALL
268 FsRtlInitializeFileLock (
269 DWORD Unknown0,
270 DWORD Unknown1,
271 DWORD Unknown2
272 );
273 VOID
274 STDCALL
275 FsRtlInitializeLargeMcb (
276 DWORD Unknown0,
277 DWORD Unknown1
278 );
279 VOID
280 STDCALL
281 FsRtlInitializeMcb (
282 DWORD Unknown0,
283 DWORD Unknown1
284 );
285 VOID
286 STDCALL
287 FsRtlInitializeOplock (
288 DWORD Unknown0
289 );
290 VOID
291 STDCALL
292 FsRtlInitializeTunnelCache (
293 IN OUT PVOID lpTunnel
294 );
295 BOOLEAN
296 STDCALL
297 FsRtlIsDbcsInExpression (
298 DWORD Unknown0,
299 DWORD Unknown1
300 );
301 BOOLEAN
302 STDCALL
303 FsRtlIsFatDbcsLegal (
304 DWORD Unknown0,
305 DWORD Unknown1,
306 DWORD Unknown2,
307 DWORD Unknown3,
308 DWORD Unknown4
309 );
310 BOOLEAN
311 STDCALL
312 FsRtlIsHpfsDbcsLegal (
313 DWORD Unknown0,
314 DWORD Unknown1,
315 DWORD Unknown2,
316 DWORD Unknown3,
317 DWORD Unknown4
318 );
319 BOOLEAN
320 STDCALL
321 FsRtlIsNameInExpression (
322 IN PUNICODE_STRING Expression,
323 IN PUNICODE_STRING Name,
324 IN BOOLEAN IgnoreCase,
325 IN PWCHAR UpcaseTable OPTIONAL
326 );
327 BOOLEAN
328 STDCALL
329 FsRtlIsNtstatusExpected (
330 IN NTSTATUS NtStatus
331 );
332 BOOLEAN
333 STDCALL
334 FsRtlIsTotalDeviceFailure (
335 NTSTATUS NtStatus
336 );
337 #define FsRtlIsUnicodeCharacterWild(C) ( \
338 (((C) >= 0x40) ? \
339 FALSE : \
340 FlagOn((*FsRtlLegalAnsiCharacterArray)[(C)], FSRTL_WILD_CHARACTER )) \
341 )
342 VOID
343 STDCALL
344 FsRtlLookupLargeMcbEntry (
345 DWORD Unknown0,
346 DWORD Unknown1,
347 DWORD Unknown2,
348 DWORD Unknown3,
349 DWORD Unknown4,
350 DWORD Unknown5,
351 DWORD Unknown6,
352 DWORD Unknown7
353 );
354 VOID
355 STDCALL
356 FsRtlLookupLastLargeMcbEntry (
357 DWORD Unknown0,
358 DWORD Unknown1,
359 DWORD Unknown2
360 );
361 VOID
362 STDCALL
363 FsRtlLookupLastMcbEntry (
364 DWORD Unknown0,
365 DWORD Unknown1,
366 DWORD Unknown2
367 );
368 VOID
369 STDCALL
370 FsRtlLookupMcbEntry (
371 DWORD Unknown0,
372 DWORD Unknown1,
373 DWORD Unknown2,
374 DWORD Unknown3,
375 DWORD Unknown4
376 );
377 BOOLEAN
378 STDCALL
379 FsRtlMdlRead (
380 DWORD Unknown0,
381 DWORD Unknown1,
382 DWORD Unknown2,
383 DWORD Unknown3,
384 DWORD Unknown4,
385 DWORD Unknown5
386 );
387 BOOLEAN
388 STDCALL
389 FsRtlMdlReadComplete (
390 IN PFILE_OBJECT FileObject,
391 IN OUT PMDL MdlChain
392 );
393 BOOLEAN
394 STDCALL
395 FsRtlMdlReadCompleteDev (
396 IN PFILE_OBJECT FileObject,
397 IN PMDL MdlChain,
398 IN PDEVICE_OBJECT DeviceObject
399 );
400 BOOLEAN
401 STDCALL
402 FsRtlMdlReadDev (
403 DWORD Unknown0,
404 DWORD Unknown1,
405 DWORD Unknown2,
406 DWORD Unknown3,
407 DWORD Unknown4,
408 DWORD Unknown5,
409 DWORD Unknown6
410 );
411 BOOLEAN
412 STDCALL
413 FsRtlMdlWriteComplete (
414 IN PFILE_OBJECT FileObject,
415 IN PLARGE_INTEGER FileOffset,
416 IN PMDL MdlChain
417 );
418 BOOLEAN
419 STDCALL
420 FsRtlMdlWriteCompleteDev (
421 IN PFILE_OBJECT FileObject,
422 IN PLARGE_INTEGER FileOffset,
423 IN PMDL MdlChain,
424 IN PDEVICE_OBJECT DeviceObject
425 );
426 VOID
427 STDCALL
428 FsRtlNotifyChangeDirectory (
429 IN PNOTIFY_SYNC NotifySync,
430 IN PLIST_ENTRY NotifyList,
431 IN PVOID FsContext,
432 IN PSTRING FullDirectoryName,
433 IN BOOLEAN WatchTree,
434 IN ULONG CompletionFilter,
435 IN PIRP NotifyIrp
436 );
437 VOID
438 STDCALL
439 FsRtlNotifyCleanup (
440 IN PNOTIFY_SYNC NotifySync,
441 IN PLIST_ENTRY NotifyList,
442 IN PVOID FsContext
443 );
444 typedef
445 BOOLEAN (*PCHECK_FOR_TRAVERSE_ACCESS) (
446 IN PVOID NotifyContext,
447 IN PVOID TargetContext,
448 IN PSECURITY_SUBJECT_CONTEXT SubjectContext
449 );
450 VOID
451 STDCALL
452 FsRtlNotifyFullChangeDirectory (
453 IN PNOTIFY_SYNC NotifySync,
454 IN PLIST_ENTRY NotifyList,
455 IN PVOID FsContext,
456 IN PSTRING FullDirectoryName,
457 IN BOOLEAN WatchTree,
458 IN BOOLEAN IgnoreBuffer,
459 IN ULONG CompletionFilter,
460 IN PIRP NotifyIrp,
461 IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
462 IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL
463 );
464 VOID
465 STDCALL
466 FsRtlNotifyFullReportChange (
467 IN PNOTIFY_SYNC NotifySync,
468 IN PLIST_ENTRY NotifyList,
469 IN PSTRING FullTargetName,
470 IN USHORT TargetNameOffset,
471 IN PSTRING StreamName OPTIONAL,
472 IN PSTRING NormalizedParentName OPTIONAL,
473 IN ULONG FilterMatch,
474 IN ULONG Action,
475 IN PVOID TargetContext
476 );
477 VOID
478 STDCALL
479 FsRtlNotifyUninitializeSync (
480 IN OUT PVOID * Unknown0
481 );
482 VOID
483 STDCALL
484 FsRtlNotifyReportChange (
485 IN PNOTIFY_SYNC NotifySync,
486 IN PLIST_ENTRY NotifyList,
487 IN PSTRING FullTargetName,
488 IN USHORT TargetNameOffset,
489 IN ULONG FilterMatch
490 );
491 VOID
492 STDCALL
493 FsRtlNotifyInitializeSync (
494 IN OUT PVOID * Unknown0
495 );
496 NTSTATUS
497 STDCALL
498 FsRtlOplockFsctrl (
499 DWORD Unknown0,
500 DWORD Unknown1,
501 DWORD Unknown2
502 );
503 BOOLEAN
504 STDCALL
505 FsRtlOplockIsFastIoPossible (
506 DWORD Unknown0
507 );
508 BOOLEAN
509 STDCALL
510 FsRtlPrepareMdlWrite (
511 DWORD Unknown0,
512 DWORD Unknown1,
513 DWORD Unknown2,
514 DWORD Unknown3,
515 DWORD Unknown4,
516 DWORD Unknown5
517 );
518 BOOLEAN
519 STDCALL
520 FsRtlPrepareMdlWriteDev (
521 DWORD Unknown0,
522 DWORD Unknown1,
523 DWORD Unknown2,
524 DWORD Unknown3,
525 DWORD Unknown4,
526 DWORD Unknown5,
527 DWORD Unknown6
528 );
529 NTSTATUS
530 STDCALL
531 FsRtlNormalizeNtstatus (
532 IN NTSTATUS NtStatusToNormalize,
533 IN NTSTATUS NormalizedNtStatus
534 );
535 VOID
536 STDCALL
537 FsRtlNumberOfRunsInLargeMcb (
538 DWORD Unknown0
539 );
540 VOID
541 STDCALL
542 FsRtlNumberOfRunsInMcb (
543 DWORD Unknown0
544 );
545 VOID
546 STDCALL
547 FsRtlPostPagingFileStackOverflow (
548 DWORD Unknown0,
549 DWORD Unknown1,
550 DWORD Unknown2
551 );
552 VOID
553 STDCALL
554 FsRtlPostStackOverflow (
555 DWORD Unknown0,
556 DWORD Unknown1,
557 DWORD Unknown2
558 );
559 BOOLEAN
560 STDCALL
561 FsRtlPrivateLock (
562 DWORD Unknown0,
563 DWORD Unknown1,
564 DWORD Unknown2,
565 DWORD Unknown3,
566 DWORD Unknown4,
567 DWORD Unknown5,
568 DWORD Unknown6,
569 DWORD Unknown7,
570 DWORD Unknown8,
571 DWORD Unknown9,
572 DWORD Unknown10,
573 DWORD Unknown11
574 );
575 NTSTATUS
576 STDCALL
577 FsRtlProcessFileLock (
578 DWORD Unknown0,
579 DWORD Unknown1,
580 DWORD Unknown2
581 );
582 DWORD
583 STDCALL
584 FsRtlRegisterUncProvider (
585 DWORD Unknown0,
586 DWORD Unknown1,
587 DWORD Unknown2
588 );
589 VOID
590 STDCALL
591 FsRtlRemoveLargeMcbEntry (
592 DWORD Unknown0,
593 DWORD Unknown1,
594 DWORD Unknown2,
595 DWORD Unknown3,
596 DWORD Unknown4
597 );
598 VOID
599 STDCALL
600 FsRtlRemoveMcbEntry (
601 DWORD Unknown0,
602 DWORD Unknown1,
603 DWORD Unknown2
604 );
605 VOID
606 STDCALL
607 FsRtlSplitLargeMcb (
608 DWORD Unknown0,
609 DWORD Unknown1,
610 DWORD Unknown2,
611 DWORD Unknown3,
612 DWORD Unknown4
613 );
614 NTSTATUS
615 STDCALL
616 FsRtlSyncVolumes (
617 DWORD Unknown0,
618 DWORD Unknown1,
619 DWORD Unknown2
620 );
621 VOID
622 STDCALL
623 FsRtlTruncateLargeMcb (
624 DWORD Unknown0,
625 DWORD Unknown1,
626 DWORD Unknown2
627 );
628 VOID
629 STDCALL
630 FsRtlTruncateMcb (
631 DWORD Unknown0,
632 DWORD Unknown1
633 );
634 VOID
635 STDCALL
636 FsRtlUninitializeFileLock (
637 IN OUT PVOID lpUnknown0
638 );
639 VOID
640 STDCALL
641 FsRtlUninitializeLargeMcb (
642 DWORD Unknown0
643 );
644 VOID
645 STDCALL
646 FsRtlUninitializeMcb (
647 DWORD Unknown0
648 );
649 DWORD
650 STDCALL
651 FsRtlUninitializeOplock (
652 DWORD Unknown0
653 );
654
655 #endif /* __INCLUDE_DDK_FSFUNCS_H */