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))
7 FsRtlAddLargeMcbEntry (
26 FsRtlAddToTunnelCache (
39 IN POOL_TYPE PoolType
,
40 IN ULONG NumberOfBytes
44 FsRtlAllocatePoolWithQuota (
45 IN POOL_TYPE PoolType
,
46 IN ULONG NumberOfBytes
50 FsRtlAllocatePoolWithQuotaTag (
51 IN POOL_TYPE PoolType
,
52 IN ULONG NumberOfBytes
,
57 FsRtlAllocatePoolWithTag (
58 IN POOL_TYPE PoolType
,
59 IN ULONG NumberOfBytes
,
64 FsRtlAllocateResource (
70 IN PUNICODE_STRING Name1
,
71 IN PUNICODE_STRING Name2
,
72 IN BOOLEAN IgnoreCase
,
73 IN PWCHAR UpcaseTable OPTIONAL
82 FsRtlCheckLockForReadAccess (
88 FsRtlCheckLockForWriteAccess (
104 IN PFILE_OBJECT FileObject
,
105 IN PLARGE_INTEGER FileOffset
,
110 OUT PIO_STATUS_BLOCK IoStatus
,
111 IN PDEVICE_OBJECT DeviceObject
116 IN PFILE_OBJECT FileObject
,
117 IN PLARGE_INTEGER FileOffset
,
122 OUT PIO_STATUS_BLOCK IoStatus
,
123 IN PDEVICE_OBJECT DeviceObject
127 FsRtlCurrentBatchOplock (
132 FsRtlDeleteKeyFromTunnelCache (
139 FsRtlDeleteTunnelCache (
140 IN OUT PVOID lpTunnel
144 FsRtlDeregisterUncProvider (
165 FsRtlDoesDbcsContainWildCards (
170 FsRtlDoesNameContainWildCards (
171 IN PUNICODE_STRING Name
175 FsRtlFastCheckLockForRead (
176 IN PFILE_LOCK_ANCHOR FileLockAnchor
,
177 IN PLARGE_INTEGER FileOffset
,
178 IN PLARGE_INTEGER Length
,
180 IN PFILE_OBJECT FileObject
,
181 IN PEPROCESS ProcessId
185 FsRtlFastCheckLockForWrite (
186 IN PFILE_LOCK_ANCHOR FileLockAnchor
,
187 IN PLARGE_INTEGER FileOffset
,
188 IN PLARGE_INTEGER Length
,
190 IN PFILE_OBJECT FileObject
,
191 IN PEPROCESS ProcessId
203 FsRtlFastUnlockAllByKey (
212 FsRtlFastUnlockSingle (
224 FsRtlFindInTunnelCache (
242 FsRtlGetNextFileLock (
244 IN OUT PVOID Unknown1
248 FsRtlGetNextLargeMcbEntry (
257 FsRtlGetNextMcbEntry (
264 #define FsRtlEnterFileSystem KeEnterCriticalRegion
265 #define FsRtlExitFileSystem KeLeaveCriticalRegion
268 FsRtlInitializeFileLock (
275 FsRtlInitializeLargeMcb (
287 FsRtlInitializeOplock (
292 FsRtlInitializeTunnelCache (
293 IN OUT PVOID lpTunnel
297 FsRtlIsDbcsInExpression (
303 FsRtlIsFatDbcsLegal (
312 FsRtlIsHpfsDbcsLegal (
321 FsRtlIsNameInExpression (
322 IN PUNICODE_STRING Expression
,
323 IN PUNICODE_STRING Name
,
324 IN BOOLEAN IgnoreCase
,
325 IN PWCHAR UpcaseTable OPTIONAL
329 FsRtlIsNtstatusExpected (
334 FsRtlIsTotalDeviceFailure (
337 #define FsRtlIsUnicodeCharacterWild(C) ( \
340 FlagOn((*FsRtlLegalAnsiCharacterArray)[(C)], FSRTL_WILD_CHARACTER )) \
344 FsRtlLookupLargeMcbEntry (
356 FsRtlLookupLastLargeMcbEntry (
363 FsRtlLookupLastMcbEntry (
370 FsRtlLookupMcbEntry (
389 FsRtlMdlReadComplete (
390 IN PFILE_OBJECT FileObject
,
395 FsRtlMdlReadCompleteDev (
396 IN PFILE_OBJECT FileObject
,
398 IN PDEVICE_OBJECT DeviceObject
413 FsRtlMdlWriteComplete (
414 IN PFILE_OBJECT FileObject
,
415 IN PLARGE_INTEGER FileOffset
,
420 FsRtlMdlWriteCompleteDev (
421 IN PFILE_OBJECT FileObject
,
422 IN PLARGE_INTEGER FileOffset
,
424 IN PDEVICE_OBJECT DeviceObject
428 FsRtlNotifyChangeDirectory (
429 IN PNOTIFY_SYNC NotifySync
,
430 IN PLIST_ENTRY NotifyList
,
432 IN PSTRING FullDirectoryName
,
433 IN BOOLEAN WatchTree
,
434 IN ULONG CompletionFilter
,
440 IN PNOTIFY_SYNC NotifySync
,
441 IN PLIST_ENTRY NotifyList
,
445 BOOLEAN (*PCHECK_FOR_TRAVERSE_ACCESS
) (
446 IN PVOID NotifyContext
,
447 IN PVOID TargetContext
,
448 IN PSECURITY_SUBJECT_CONTEXT SubjectContext
452 FsRtlNotifyFullChangeDirectory (
453 IN PNOTIFY_SYNC NotifySync
,
454 IN PLIST_ENTRY NotifyList
,
456 IN PSTRING FullDirectoryName
,
457 IN BOOLEAN WatchTree
,
458 IN BOOLEAN IgnoreBuffer
,
459 IN ULONG CompletionFilter
,
461 IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL
,
462 IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL
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
,
475 IN PVOID TargetContext
479 FsRtlNotifyUninitializeSync (
480 IN OUT PVOID
* Unknown0
484 FsRtlNotifyReportChange (
485 IN PNOTIFY_SYNC NotifySync
,
486 IN PLIST_ENTRY NotifyList
,
487 IN PSTRING FullTargetName
,
488 IN USHORT TargetNameOffset
,
493 FsRtlNotifyInitializeSync (
494 IN OUT PVOID
* Unknown0
505 FsRtlOplockIsFastIoPossible (
510 FsRtlPrepareMdlWrite (
520 FsRtlPrepareMdlWriteDev (
531 FsRtlNormalizeNtstatus (
532 IN NTSTATUS NtStatusToNormalize
,
533 IN NTSTATUS NormalizedNtStatus
537 FsRtlNumberOfRunsInLargeMcb (
542 FsRtlNumberOfRunsInMcb (
547 FsRtlPostPagingFileStackOverflow (
554 FsRtlPostStackOverflow (
577 FsRtlProcessFileLock (
584 FsRtlRegisterUncProvider (
591 FsRtlRemoveLargeMcbEntry (
600 FsRtlRemoveMcbEntry (
623 FsRtlTruncateLargeMcb (
636 FsRtlUninitializeFileLock (
637 IN OUT PVOID lpUnknown0
641 FsRtlUninitializeLargeMcb (
646 FsRtlUninitializeMcb (
651 FsRtlUninitializeOplock (
655 #endif /* __INCLUDE_DDK_FSFUNCS_H */