/* * PROJECT: ReactOS Kernel * LICENSE: GPL - See COPYING in the top level directory * FILE: ntoskrnl/fsrtl/notify.c * PURPOSE: Change Notifications and Sync for File System Drivers * PROGRAMMERS: Pierre Schweitzer */ /* INCLUDES ******************************************************************/ #include #define NDEBUG #include /* PUBLIC FUNCTIONS **********************************************************/ /*++ * @name FsRtlNotifyChangeDirectory * @implemented * * Lets FSD know if changes occures in the specified directory. * Directory will be reenumerated. * * @param NotifySync * Synchronization object pointer * * @param FsContext * Used to identify the notify structure * * @param FullDirectoryName * String (A or W) containing the full directory name * * @param NotifyList * Notify list pointer (to head) * * @param WatchTree * True to notify changes in subdirectories too * * @param CompletionFilter * Used to define types of changes to notify * * @param NotifyIrp * IRP pointer to complete notify operation. It can be null * * @return None * * @remarks This function only redirects to FsRtlNotifyFullChangeDirectory. * So, it's better to call the entire function. * *--*/ VOID NTAPI FsRtlNotifyChangeDirectory(IN PNOTIFY_SYNC NotifySync, IN PVOID FsContext, IN PSTRING FullDirectoryName, IN PLIST_ENTRY NotifyList, IN BOOLEAN WatchTree, IN ULONG CompletionFilter, IN PIRP NotifyIrp) { FsRtlNotifyFullChangeDirectory(NotifySync, NotifyList, FsContext, FullDirectoryName, WatchTree, TRUE, CompletionFilter, NotifyIrp, NULL, NULL); } /*++ * @name FsRtlNotifyCleanup * @unimplemented * * Called by FSD when all handles to FileObject (identified by FsContext) are closed * * @param NotifySync * FILLME * * @param NotifyList * FILLME * * @param FsContext * FILLME * * @return None * * @remarks None * *--*/ VOID NTAPI FsRtlNotifyCleanup(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PVOID FsContext) { KeBugCheck(FILE_SYSTEM); } /*++ * @name FsRtlNotifyFilterChangeDirectory * @unimplemented * * FILLME * * @param NotifySync * FILLME * * @param NotifyList * FILLME * * @param FsContext * FILLME * * @param FullDirectoryName * FILLME * * @param WatchTree * FILLME * * @param IgnoreBuffer * FILLME * * @param CompletionFilter * FILLME * * @param NotifyIrp * FILLME * * @param TraverseCallback * FILLME * * @param SubjectContext * FILLME * * @param FilterCallback * FILLME * * @return None * * @remarks None * *--*/ VOID NTAPI FsRtlNotifyFilterChangeDirectory(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PVOID FsContext, IN PSTRING FullDirectoryName, IN BOOLEAN WatchTree, IN BOOLEAN IgnoreBuffer, IN ULONG CompletionFilter, IN PIRP NotifyIrp, IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL, IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL, IN PFILTER_REPORT_CHANGE FilterCallback OPTIONAL) { KeBugCheck(FILE_SYSTEM); } /*++ * @name FsRtlNotifyFilterReportChange * @unimplemented * * FILLME * * @param NotifySync * FILLME * * @param NotifyList * FILLME * * @param FullTargetName * FILLME * * @param TargetNameOffset * FILLME * * @param StreamName * FILLME * * @param NormalizedParentName * FILLME * * @param FilterMatch * FILLME * * @param Action * FILLME * * @param TargetContext * FILLME * * @param FilterContext * FILLME * * @return None * * @remarks None * *--*/ VOID NTAPI FsRtlNotifyFilterReportChange(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PSTRING FullTargetName, IN USHORT TargetNameOffset, IN PSTRING StreamName OPTIONAL, IN PSTRING NormalizedParentName OPTIONAL, IN ULONG FilterMatch, IN ULONG Action, IN PVOID TargetContext, IN PVOID FilterContext) { KeBugCheck(FILE_SYSTEM); } /*++ * @name FsRtlNotifyFullChangeDirectory * @unimplemented * * FILLME * * @param NotifySync * FILLME * * @param NotifyList * FILLME * * @param FsContext * FILLME * * @param FullDirectoryName * FILLME * * @param WatchTree * FILLME * * @param IgnoreBuffer * FILLME * * @param CompletionFilter * FILLME * * @param Irp * FILLME * * @param TraverseCallback * FILLME * * @param SubjectContext * FILLME * * @return None * * @remarks None * *--*/ VOID NTAPI FsRtlNotifyFullChangeDirectory(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PVOID FsContext, IN PSTRING FullDirectoryName, IN BOOLEAN WatchTree, IN BOOLEAN IgnoreBuffer, IN ULONG CompletionFilter, IN PIRP Irp, IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL, IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL) { KeBugCheck(FILE_SYSTEM); } /*++ * @name FsRtlNotifyFullReportChange * @unimplemented * * FILLME * * @param NotifySync * FILLME * * @param NotifyList * FILLME * * @param FullTargetName * FILLME * * @param TargetNameOffset * FILLME * * @param StreamName * FILLME * * @param NormalizedParentName * FILLME * * @param FilterMatch * FILLME * * @param Action * FILLME * * @param TargetContext * FILLME * * @return None * * @remarks None * *--*/ VOID NTAPI FsRtlNotifyFullReportChange(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PSTRING FullTargetName, IN USHORT TargetNameOffset, IN PSTRING StreamName OPTIONAL, IN PSTRING NormalizedParentName OPTIONAL, IN ULONG FilterMatch, IN ULONG Action, IN PVOID TargetContext) { KeBugCheck(FILE_SYSTEM); } /*++ * @name FsRtlNotifyInitializeSync * @unimplemented * * FILLME * * @param NotifySync * FILLME * * @return None * * @remarks None * *--*/ VOID NTAPI FsRtlNotifyInitializeSync(IN PNOTIFY_SYNC *NotifySync) { KeBugCheck(FILE_SYSTEM); } /*++ * @name FsRtlNotifyReportChange * @unimplemented * * FILLME * * @param NotifySync * FILLME * * @param NotifyList * FILLME * * @param FullTargetName * FILLME * * @param FileNamePartLength * FILLME * * @param FilterMatch * FILLME * * @return None * * @remarks None * *--*/ VOID NTAPI FsRtlNotifyReportChange(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PSTRING FullTargetName, IN PUSHORT FileNamePartLength, IN ULONG FilterMatch) { KeBugCheck(FILE_SYSTEM); } /*++ * @name FsRtlCurrentBatchOplock * @implemented * * Uninitialize a NOTIFY_SYNC object * * @param NotifySync * Address of a pointer to a PNOTIFY_SYNC object previously * initialized by FsRtlNotifyInitializeSync() * * @return None * * @remarks None * *--*/ VOID NTAPI FsRtlNotifyUninitializeSync(IN PNOTIFY_SYNC *NotifySync) { KeBugCheck(FILE_SYSTEM); }