3 * reactos/ntoskrnl/fs/notify.c
10 /**********************************************************************
12 * FsRtlNotifyChangeDirectory@28
23 FsRtlNotifyChangeDirectory (
24 IN PNOTIFY_SYNC NotifySync,
26 IN PSTRING FullDirectoryName,
27 IN PLIST_ENTRY NotifyList,
29 IN ULONG CompletionFilter,
33 FsRtlNotifyFullChangeDirectory (
39 TRUE, /* IgnoreBuffer */
48 /**********************************************************************
50 * FsRtlNotifyCleanup@12
62 IN PNOTIFY_SYNC NotifySync,
63 IN PLIST_ENTRY NotifyList,
70 /**********************************************************************
72 * FsRtlNotifyFullChangeDirectory@40
83 FsRtlNotifyFullChangeDirectory (
84 IN PNOTIFY_SYNC NotifySync,
85 IN PLIST_ENTRY NotifyList,
87 IN PSTRING FullDirectoryName,
89 IN BOOLEAN IgnoreBuffer,
90 IN ULONG CompletionFilter,
92 IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
93 IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL
96 DbgPrint("%s()\n", __FUNCTION__);
100 /**********************************************************************
102 * FsRtlNotifyFullReportChange@36
113 FsRtlNotifyFullReportChange (
114 IN PNOTIFY_SYNC NotifySync,
115 IN PLIST_ENTRY NotifyList,
116 IN PSTRING FullTargetName,
117 IN USHORT TargetNameOffset,
118 IN PSTRING StreamName OPTIONAL,
119 IN PSTRING NormalizedParentName OPTIONAL,
120 IN ULONG FilterMatch,
122 IN PVOID TargetContext
128 /**********************************************************************
130 * FsRtlNotifyInitializeSync@4
141 FsRtlNotifyInitializeSync (
142 IN PNOTIFY_SYNC * NotifySync
146 *NotifySync = ExAllocatePoolWithTag (
148 sizeof (NOTIFY_SYNC), // NumberOfBytes = 0x28
152 *NotifySync->Unknown0 = 1;
153 *NotifySync->Unknown2 = 0;
154 *NotifySync->Unknown3 = 1;
155 *NotifySync->Unknown4 = 4;
156 *NotifySync->Unknown5 = 0;
157 *NotifySync->Unknown9 = 0;
158 *NotifySync->Unknown10 = 0;
163 /**********************************************************************
165 * FsRtlNotifyReportChange@20
176 FsRtlNotifyReportChange (
177 IN PNOTIFY_SYNC NotifySync,
178 IN PLIST_ENTRY NotifyList,
179 IN PSTRING FullTargetName,
180 IN PUSHORT FileNamePartLength,
184 FsRtlNotifyFullReportChange (
188 (FullTargetName->Length - *FileNamePartLength), /*?*/
198 /**********************************************************************
200 * FsRtlNotifyUninitializeSync@4
203 * Uninitialize a NOTIFY_SYNC object.
206 * NotifySync is the address of a pointer
207 * to a PNOTIFY_SYNC object previously initialized by
208 * FsRtlNotifyInitializeSync().
215 FsRtlNotifyUninitializeSync (
216 IN OUT PNOTIFY_SYNC * NotifySync
219 if (NULL != *NotifySync)
221 ExFreePool (*NotifySync);
226 /**********************************************************************
228 * FsRtlNotifyVolumeEvent@8
231 * NOTE: Only present in NT 5+.
240 FsRtlNotifyVolumeEvent (
241 IN PFILE_OBJECT FileObject,
245 return STATUS_NOT_IMPLEMENTED;