Standardize comment headers. Patch by Trevor McCort
[reactos.git] / reactos / ntoskrnl / fs / notify.c
1 /* $Id$
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/fs/notify.c
6 * PURPOSE: No purpose listed.
7 *
8 * PROGRAMMERS: No programmer listed.
9 */
10
11 #include <ntoskrnl.h>
12 #define NDEBUG
13 #include <internal/debug.h>
14
15 /**********************************************************************
16 * NAME EXPORTED
17 * FsRtlNotifyChangeDirectory@28
18 *
19 * DESCRIPTION
20 *
21 * ARGUMENTS
22 *
23 * RETURN VALUE
24 *
25 * @implemented
26 */
27 VOID
28 STDCALL
29 FsRtlNotifyChangeDirectory (
30 IN PNOTIFY_SYNC NotifySync,
31 IN PVOID FsContext,
32 IN PSTRING FullDirectoryName,
33 IN PLIST_ENTRY NotifyList,
34 IN BOOLEAN WatchTree,
35 IN ULONG CompletionFilter,
36 IN PIRP NotifyIrp
37 )
38 {
39 FsRtlNotifyFullChangeDirectory (
40 NotifySync,
41 NotifyList,
42 FsContext,
43 FullDirectoryName,
44 WatchTree,
45 TRUE, /* IgnoreBuffer */
46 CompletionFilter,
47 NotifyIrp,
48 NULL,
49 NULL
50 );
51 }
52
53
54
55 /**********************************************************************
56 * NAME EXPORTED
57 * FsRtlNotifyCleanup@12
58 *
59 * DESCRIPTION
60 *
61 * ARGUMENTS
62 *
63 * RETURN VALUE
64 *
65 * @unimplemented
66 */
67 VOID
68 STDCALL
69 FsRtlNotifyCleanup (
70 IN PNOTIFY_SYNC NotifySync,
71 IN PLIST_ENTRY NotifyList,
72 IN PVOID FsContext
73 )
74 {
75 }
76
77
78 /*
79 * @unimplemented
80 */
81 VOID
82 STDCALL
83 FsRtlNotifyFilterChangeDirectory (
84 IN PNOTIFY_SYNC NotifySync,
85 IN PLIST_ENTRY NotifyList,
86 IN PVOID FsContext,
87 IN PSTRING FullDirectoryName,
88 IN BOOLEAN WatchTree,
89 IN BOOLEAN IgnoreBuffer,
90 IN ULONG CompletionFilter,
91 IN PIRP NotifyIrp,
92 IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
93 IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL,
94 IN PFILTER_REPORT_CHANGE FilterCallback OPTIONAL
95 )
96 {
97 UNIMPLEMENTED;
98 }
99
100 /*
101 * @unimplemented
102 */
103 VOID
104 STDCALL
105 FsRtlNotifyFilterReportChange (
106 IN PNOTIFY_SYNC NotifySync,
107 IN PLIST_ENTRY NotifyList,
108 IN PSTRING FullTargetName,
109 IN USHORT TargetNameOffset,
110 IN PSTRING StreamName OPTIONAL,
111 IN PSTRING NormalizedParentName OPTIONAL,
112 IN ULONG FilterMatch,
113 IN ULONG Action,
114 IN PVOID TargetContext,
115 IN PVOID FilterContext
116 )
117 {
118 UNIMPLEMENTED;
119 }
120
121
122 /**********************************************************************
123 * NAME EXPORTED
124 * FsRtlNotifyFullChangeDirectory@40
125 *
126 * DESCRIPTION
127 *
128 * ARGUMENTS
129 *
130 * RETURN VALUE
131 *
132 * @unimplemented
133 */
134 VOID
135 STDCALL
136 FsRtlNotifyFullChangeDirectory (
137 IN PNOTIFY_SYNC NotifySync,
138 IN PLIST_ENTRY NotifyList,
139 IN PVOID FsContext,
140 IN PSTRING FullDirectoryName,
141 IN BOOLEAN WatchTree,
142 IN BOOLEAN IgnoreBuffer,
143 IN ULONG CompletionFilter,
144 IN PIRP NotifyIrp,
145 IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
146 IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL
147 )
148 {
149 #if defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1300)
150 DbgPrint("%s()\n", __FUNCTION__);
151 #else
152 DbgPrint("FsRtlNotifyFullChangeDirectory()\n");
153 #endif
154 }
155
156
157 /**********************************************************************
158 * NAME EXPORTED
159 * FsRtlNotifyFullReportChange@36
160 *
161 * DESCRIPTION
162 *
163 * ARGUMENTS
164 *
165 * RETURN VALUE
166 *
167 * @unimplemented
168 */
169 VOID
170 STDCALL
171 FsRtlNotifyFullReportChange (
172 IN PNOTIFY_SYNC NotifySync,
173 IN PLIST_ENTRY NotifyList,
174 IN PSTRING FullTargetName,
175 IN USHORT TargetNameOffset,
176 IN PSTRING StreamName OPTIONAL,
177 IN PSTRING NormalizedParentName OPTIONAL,
178 IN ULONG FilterMatch,
179 IN ULONG Action,
180 IN PVOID TargetContext
181 )
182 {
183 }
184
185
186 /**********************************************************************
187 * NAME EXPORTED
188 * FsRtlNotifyInitializeSync@4
189 *
190 * DESCRIPTION
191 *
192 * ARGUMENTS
193 *
194 * RETURN VALUE
195 *
196 * @implemented
197 */
198 VOID
199 STDCALL
200 FsRtlNotifyInitializeSync (
201 IN PNOTIFY_SYNC NotifySync
202 )
203 {
204 #if 0
205 *NotifySync = NULL;
206 *NotifySync = ExAllocatePoolWithTag (
207 0x10, // PoolType???
208 sizeof (NOTIFY_SYNC), // NumberOfBytes = 0x28
209 FSRTL_TAG
210 );
211
212 *NotifySync->Unknown0 = 1;
213 *NotifySync->Unknown2 = 0;
214 *NotifySync->Unknown3 = 1;
215 *NotifySync->Unknown4 = 4;
216 *NotifySync->Unknown5 = 0;
217 *NotifySync->Unknown9 = 0;
218 *NotifySync->Unknown10 = 0;
219 #endif
220 }
221
222
223 /**********************************************************************
224 * NAME EXPORTED
225 * FsRtlNotifyReportChange@20
226 *
227 * DESCRIPTION
228 *
229 * ARGUMENTS
230 *
231 * RETURN VALUE
232 *
233 * @implemented
234 */
235 VOID
236 STDCALL
237 FsRtlNotifyReportChange (
238 IN PNOTIFY_SYNC NotifySync,
239 IN PLIST_ENTRY NotifyList,
240 IN PSTRING FullTargetName,
241 IN PUSHORT FileNamePartLength,
242 IN ULONG FilterMatch
243 )
244 {
245 FsRtlNotifyFullReportChange (
246 NotifySync,
247 NotifyList,
248 FullTargetName,
249 (FullTargetName->Length - *FileNamePartLength), /*?*/
250 NULL,
251 NULL,
252 FilterMatch,
253 0, /* Action ? */
254 NULL
255 );
256 }
257
258
259 /**********************************************************************
260 * NAME EXPORTED
261 * FsRtlNotifyUninitializeSync@4
262 *
263 * DESCRIPTION
264 * Uninitialize a NOTIFY_SYNC object.
265 *
266 * ARGUMENTS
267 * NotifySync is the address of a pointer
268 * to a PNOTIFY_SYNC object previously initialized by
269 * FsRtlNotifyInitializeSync().
270 *
271 * RETURN VALUE
272 * None.
273 *
274 * @implemented
275 */
276 VOID
277 STDCALL
278 FsRtlNotifyUninitializeSync (
279 IN OUT PNOTIFY_SYNC NotifySync
280 )
281 {
282 #if 0
283 if (NULL != *NotifySync)
284 {
285 ExFreePool (*NotifySync);
286 *NotifySync = NULL;
287 }
288 #endif
289 }
290
291 /**********************************************************************
292 * NAME EXPORTED
293 * FsRtlNotifyVolumeEvent@8
294 *
295 * DESCRIPTION
296 * NOTE: Only present in NT 5+.
297 *
298 * ARGUMENTS
299 *
300 * RETURN VALUE
301 *
302 * @unimplemented
303 */
304 NTSTATUS
305 STDCALL
306 FsRtlNotifyVolumeEvent (
307 IN PFILE_OBJECT FileObject,
308 IN ULONG EventCode
309 )
310 {
311 return STATUS_NOT_IMPLEMENTED;
312 }
313
314 /*
315 *
316 * @unimplemented
317 */
318 NTSTATUS
319 STDCALL
320 FsRtlRegisterFileSystemFilterCallbacks(IN PDRIVER_OBJECT FilterDriverObject,
321 IN PFS_FILTER_CALLBACKS Callbacks)
322 {
323 UNIMPLEMENTED;
324 return STATUS_NOT_IMPLEMENTED;
325 }
326 /* EOF */