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/notify... ============================================================================== --- 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; }
/*++