reactos/ntoskrnl/fsrtl/notify.c
Timo Kreuzer 9ea495ba33 Create a branch for header work.
svn path=/branches/header-work/; revision=45691
2010-02-26 22:57:55 +00:00

409 lines
8.6 KiB
C

/*
* 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 <ntoskrnl.h>
#define NDEBUG
#include <debug.h>
/* 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);
}