Author: pschweitzer
Date: Sat Oct 11 06:29:49 2008
New Revision: 36714
URL:
http://svn.reactos.org/svn/reactos?rev=36714&view=rev
Log:
- Added "stub" for internal notification structure
- Implemented FsRtlNotifyInitializeSync. It's not complete, not perfect. That's a
WIP.
See issue #2821 for more details.
Modified:
branches/pierre-fsd/ntoskrnl/fsrtl/notify.c
Modified: branches/pierre-fsd/ntoskrnl/fsrtl/notify.c
URL:
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/ntoskrnl/fsrtl/notif…
==============================================================================
--- branches/pierre-fsd/ntoskrnl/fsrtl/notify.c [iso-8859-1] (original)
+++ branches/pierre-fsd/ntoskrnl/fsrtl/notify.c [iso-8859-1] Sat Oct 11 06:29:49 2008
@@ -11,6 +11,20 @@
#include <ntoskrnl.h>
#define NDEBUG
#include <debug.h>
+
+typedef struct _INT_NOTIFY_SYNC
+{
+ ULONG Unknown0;
+ ULONG Unknown1;
+ ULONG Unknown2;
+ USHORT Unknown3;
+ USHORT Unknown4;
+ ULONG Unknown5;
+ LIST_ENTRY Unknown6;
+ ULONG Unknown7;
+ ULONG Unknown8;
+ ULONG Unknown9;
+} INT_NOTIFY_SYNC, * PINT_NOTIFY_SYNC;
/* PUBLIC FUNCTIONS **********************************************************/
@@ -352,23 +366,38 @@
/*++
* @name FsRtlNotifyInitializeSync
- * @unimplemented
- *
- * FILLME
- *
- * @param NotifySync
- * FILLME
- *
- * @return None
- *
- * @remarks None
+ * @implemented
+ *
+ * Allocates the internal structure associated with notifications.
+ *
+ * @param NotifySync
+ * Opaque pointer. It will receive the address of the allocated internal
structure.
+ *
+ * @return None
+ *
+ * @remarks This function raise an exception in case of a failure.
*
*--*/
VOID
NTAPI
FsRtlNotifyInitializeSync(IN PNOTIFY_SYNC *NotifySync)
{
- KEBUGCHECK(0);
+ PINT_NOTIFY_SYNC IntNotifySync;
+
+ *NotifySync = NULL;
+
+ IntNotifySync = FsRtlAllocatePoolWithTag(NonPagedPool, sizeof(INT_NOTIFY_SYNC),
TAG('F', 'S', 'N', 'S'));
+ IntNotifySync->Unknown1 = 0;
+ IntNotifySync->Unknown2 = 0;
+ IntNotifySync->Unknown5 = 0;
+ IntNotifySync->Unknown0 = 1;
+ IntNotifySync->Unknown3 = 1;
+ IntNotifySync->Unknown4 = 4;
+ InitializeListHead(&(IntNotifySync->Unknown6));
+ IntNotifySync->Unknown8 = 0;
+ IntNotifySync->Unknown9 = 0;
+
+ *NotifySync = IntNotifySync;
}
/*++