#ifndef __INCLUDE_DDK_FSFUNCS_H
#define __INCLUDE_DDK_FSFUNCS_H
-/* $Id: fsfuncs.h,v 1.11 2001/04/24 18:36:38 ea Exp $ */
+/* $Id: fsfuncs.h,v 1.12 2002/01/13 22:02:30 ea Exp $ */
#define FlagOn(x,f) ((x) & (f))
VOID
STDCALL
VOID
STDCALL
FsRtlAddToTunnelCache (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5,
- DWORD Unknown6,
- DWORD Unknown7
- );
+ IN PTUNNEL Cache,
+ IN ULONGLONG DirectoryKey,
+ IN PUNICODE_STRING ShortName,
+ IN PUNICODE_STRING LongName,
+ IN BOOLEAN KeyByShortName,
+ IN ULONG DataLength,
+ IN PVOID Data
+ );
PVOID
STDCALL
FsRtlAllocatePool (
BOOLEAN
STDCALL
FsRtlCheckLockForReadAccess (
- DWORD Unknown0,
- DWORD Unknown1
+ IN PFILE_LOCK FileLock,
+ IN PIRP Irp
);
BOOLEAN
STDCALL
FsRtlCheckLockForWriteAccess (
- DWORD Unknown0,
- DWORD Unknown1
+ IN PFILE_LOCK FileLock,
+ IN PIRP Irp
);
DWORD
STDCALL
VOID
STDCALL
FsRtlDeleteKeyFromTunnelCache (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2
- );
+ IN PTUNNEL Cache,
+ IN ULONGLONG DirectoryKey
+ );
VOID
STDCALL
FsRtlDeleteTunnelCache (
- IN OUT PVOID lpTunnel
- );
+ IN PTUNNEL Cache
+ );
VOID
STDCALL
FsRtlDeregisterUncProvider (
BOOLEAN
STDCALL
FsRtlFastCheckLockForRead (
- IN PFILE_LOCK_ANCHOR FileLockAnchor,
+ IN PFILE_LOCK FileLock,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
IN ULONG Key,
IN PFILE_OBJECT FileObject,
- IN PEPROCESS ProcessId
+ IN PEPROCESS Process
);
BOOLEAN
STDCALL
FsRtlFastCheckLockForWrite (
- IN PFILE_LOCK_ANCHOR FileLockAnchor,
+ IN PFILE_LOCK FileLock,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
IN ULONG Key,
IN PFILE_OBJECT FileObject,
- IN PEPROCESS ProcessId
+ IN PEPROCESS Process
);
NTSTATUS
STDCALL
FsRtlFastUnlockAll (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PEPROCESS Process,
+ IN PVOID Context OPTIONAL
);
NTSTATUS
STDCALL
FsRtlFastUnlockAllByKey (
- IN DWORD Unknown0,
- IN DWORD Unknown1,
- IN DWORD Unknown2,
- IN DWORD Unknown3,
- IN DWORD Key
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PEPROCESS Process,
+ IN DWORD Key,
+ IN PVOID Context OPTIONAL
);
NTSTATUS
STDCALL
FsRtlFastUnlockSingle (
- IN DWORD Unknown0,
- IN DWORD Unknown1,
- IN DWORD Unknown2,
- IN DWORD Unknown3,
- IN DWORD Unknown4,
- IN DWORD Unknown5,
- IN DWORD Unknown6,
- IN DWORD Unknown7
- );
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PLARGE_INTEGER FileOffset,
+ IN PLARGE_INTEGER Length,
+ IN PEPROCESS Process,
+ IN ULONG Key,
+ IN PVOID Context OPTIONAL,
+ IN BOOLEAN AlreadySynchronized
+ );
VOID
STDCALL
FsRtlFindInTunnelCache (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5,
- DWORD Unknown6,
- DWORD Unknown7
- );
-DWORD
+ IN PTUNNEL Cache,
+ IN ULONGLONG DirectoryKey,
+ IN PUNICODE_STRING Name,
+ OUT PUNICODE_STRING ShortName,
+ OUT PUNICODE_STRING LongName,
+ IN OUT PULONG DataLength,
+ OUT PVOID Data
+ );
+NTSTATUS
STDCALL
FsRtlGetFileSize (
- DWORD Unknown0,
- DWORD Unknown1
+ IN PFILE_OBJECT FileObject,
+ IN OUT PLARGE_INTEGER FileSize
);
-NTSTATUS
+PFILE_LOCK_INFO
STDCALL
FsRtlGetNextFileLock (
- IN DWORD Unknown0,
- IN OUT PVOID Unknown1
+ IN PFILE_LOCK FileLock,
+ IN BOOLEAN Restart
);
VOID
STDCALL
VOID
STDCALL
FsRtlInitializeFileLock (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2
+ IN PFILE_LOCK FileLock,
+ IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL,
+ IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL
);
VOID
STDCALL
VOID
STDCALL
FsRtlInitializeTunnelCache (
- IN OUT PVOID lpTunnel
- );
+ IN PTUNNEL Cache
+ );
BOOLEAN
STDCALL
FsRtlIsDbcsInExpression (
VOID
STDCALL
FsRtlNotifyChangeDirectory (
- IN PNOTIFY_SYNC NotifySync,
- IN PLIST_ENTRY NotifyList,
- IN PVOID FsContext,
- IN PSTRING FullDirectoryName,
- IN BOOLEAN WatchTree,
- IN ULONG CompletionFilter,
- IN PIRP NotifyIrp
+ IN PNOTIFY_SYNC NotifySync,
+ IN PVOID FsContext,
+ IN PSTRING FullDirectoryName,
+ IN PLIST_ENTRY NotifyList,
+ IN BOOLEAN WatchTree,
+ IN ULONG CompletionFilter,
+ IN PIRP NotifyIrp
);
VOID
STDCALL
VOID
STDCALL
FsRtlNotifyUninitializeSync (
- IN OUT PVOID * Unknown0
+ IN OUT PNOTIFY_SYNC * NotifySync
);
VOID
STDCALL
IN PNOTIFY_SYNC NotifySync,
IN PLIST_ENTRY NotifyList,
IN PSTRING FullTargetName,
- IN USHORT TargetNameOffset,
+ IN PUSHORT FileNamePartLength,
IN ULONG FilterMatch
);
VOID
STDCALL
FsRtlNotifyInitializeSync (
- IN OUT PVOID * Unknown0
+ IN OUT PNOTIFY_SYNC * NotifySync
+ );
+NTSTATUS
+STDCALL
+FsRtlNotifyVolumeEvent (
+ IN PFILE_OBJECT FileObject,
+ IN ULONG EventCode
);
NTSTATUS
STDCALL
BOOLEAN
STDCALL
FsRtlPrivateLock (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5,
- DWORD Unknown6,
- DWORD Unknown7,
- DWORD Unknown8,
- DWORD Unknown9,
- DWORD Unknown10,
- DWORD Unknown11
- );
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PLARGE_INTEGER FileOffset,
+ IN PLARGE_INTEGER Length,
+ IN PEPROCESS Process,
+ IN ULONG Key,
+ IN BOOLEAN FailImmediately,
+ IN BOOLEAN ExclusiveLock,
+ OUT PIO_STATUS_BLOCK IoStatus,
+ IN PIRP Irp OPTIONAL,
+ IN PVOID Context,
+ IN BOOLEAN AlreadySynchronized
+ );
NTSTATUS
STDCALL
FsRtlProcessFileLock (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2
- );
+ IN PFILE_LOCK FileLock,
+ IN PIRP Irp,
+ IN PVOID Context OPTIONAL
+ );
DWORD
STDCALL
FsRtlRegisterUncProvider (
VOID
STDCALL
FsRtlUninitializeFileLock (
- IN OUT PVOID lpUnknown0
- );
+ IN PFILE_LOCK FileLock
+ );
VOID
STDCALL
FsRtlUninitializeLargeMcb (
#ifndef __INCLUDE_DDK_FSTYPES_H
#define __INCLUDE_DDK_FSTYPES_H
-/* $Id: fstypes.h,v 1.3 2001/09/07 21:37:47 ea Exp $ */
+/* $Id: fstypes.h,v 1.4 2002/01/13 22:02:30 ea Exp $ */
+#define FSRTL_TAG TAG('F','S','r','t')
-typedef
-struct _FILE_LOCK_ANCHOR
-{
- LIST_ENTRY GrantedFileLockList;
- LIST_ENTRY PendingFileLockList;
+typedef struct _FILE_LOCK_INFO {
+ LARGE_INTEGER StartingByte;
+ LARGE_INTEGER Length;
+ BOOLEAN ExclusiveLock;
+ ULONG Key;
+ PFILE_OBJECT FileObject;
+ PEPROCESS Process;
+ LARGE_INTEGER EndingByte;
+} FILE_LOCK_INFO, *PFILE_LOCK_INFO;
+
+// raw internal file lock struct returned from FsRtlGetNextFileLock
+typedef struct _FILE_SHARED_LOCK_ENTRY {
+ PVOID Unknown1;
+ PVOID Unknown2;
+ FILE_LOCK_INFO FileLock;
+} FILE_SHARED_LOCK_ENTRY, *PFILE_SHARED_LOCK_ENTRY;
+
+// raw internal file lock struct returned from FsRtlGetNextFileLock
+typedef struct _FILE_EXCLUSIVE_LOCK_ENTRY {
+ LIST_ENTRY ListEntry;
+ PVOID Unknown1;
+ PVOID Unknown2;
+ FILE_LOCK_INFO FileLock;
+} FILE_EXCLUSIVE_LOCK_ENTRY, *PFILE_EXCLUSIVE_LOCK_ENTRY;
+
+typedef NTSTATUS (*PCOMPLETE_LOCK_IRP_ROUTINE) (
+ IN PVOID Context,
+ IN PIRP Irp
+);
-} FILE_LOCK_ANCHOR, *PFILE_LOCK_ANCHOR;
+typedef VOID (*PUNLOCK_ROUTINE) (
+ IN PVOID Context,
+ IN PFILE_LOCK_INFO FileLockInfo
+);
-typedef PVOID PNOTIFY_SYNC;
+typedef struct _FILE_LOCK {
+ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine;
+ PUNLOCK_ROUTINE UnlockRoutine;
+ BOOLEAN FastIoIsQuestionable;
+ BOOLEAN Pad[3];
+ PVOID LockInformation;
+ FILE_LOCK_INFO LastReturnedLockInfo;
+ PVOID LastReturnedLock;
+} FILE_LOCK, *PFILE_LOCK;
+
+typedef struct _RTL_SPLAY_LINKS {
+ struct _RTL_SPLAY_LINKS *Parent;
+ struct _RTL_SPLAY_LINKS *LeftChild;
+ struct _RTL_SPLAY_LINKS *RightChild;
+} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
+
+typedef struct _TUNNEL {
+ FAST_MUTEX Mutex;
+ PRTL_SPLAY_LINKS Cache;
+ LIST_ENTRY TimerQueue;
+ USHORT NumEntries;
+} TUNNEL, *PTUNNEL;
+
+typedef struct _NOTIFY_SYNC
+{
+ DWORD Unknown0; /* 0x00 */
+ DWORD Unknown1; /* 0x04 */
+ DWORD Unknown2; /* 0x08 */
+ WORD Unknown3; /* 0x0c */
+ WORD Unknown4; /* 0x0e */
+ DWORD Unknown5; /* 0x10 */
+ DWORD Unknown6; /* 0x14 */
+ DWORD Unknown7; /* 0x18 */
+ DWORD Unknown8; /* 0x1c */
+ DWORD Unknown9; /* 0x20 */
+ DWORD Unknown10; /* 0x24 */
+
+} NOTIFY_SYNC, * PNOTIFY_SYNC;
#endif /* __INCLUDE_DDK_FSFUNCS_H */
-/* $Id: exception.c,v 1.7 2001/09/24 00:51:16 chorns Exp $
+/* $Id: exception.c,v 1.8 2002/01/13 22:02:30 ea Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
VOID STDCALL
RtlRaiseException(PEXCEPTION_RECORD ExceptionRecord)
{
+#if 0
+ CONTEXT Context;
+
+ /* FIXME: fill in the CONTEXT */
+ NtRaiseException (
+ ExceptionRecord,
+ & Context,
+ TRUE
+ );
+ /* FIXME: ExceptionRecord */
+ RtlRaiseException (ExceptionRecord);
+#endif
}
ULONG
-/* $Id: filelock.c,v 1.2 2001/04/24 18:36:39 ea Exp $
+/* $Id: filelock.c,v 1.3 2002/01/13 22:02:31 ea Exp $
*
* reactos/ntoskrnl/fs/filelock.c
*
*
* RETURN VALUE
*
+ * NOTE (Bo Branten)
+ * All this really does is pick out the lock parameters from
+ * the irp (io stack location?), get IoGetRequestorProcess,
+ * and pass values on to FsRtlFastCheckLockForRead.
+ *
*/
BOOLEAN
STDCALL
FsRtlCheckLockForReadAccess (
- DWORD Unknown0,
- DWORD Unknown1
- )
+ IN PFILE_LOCK FileLock,
+ IN PIRP Irp
+ )
{
return FALSE;
}
*
* RETURN VALUE
*
+ * NOTE (Bo Branten)
+ * All this really does is pick out the lock parameters from
+ * the irp (io stack location?), get IoGetRequestorProcess,
+ * and pass values on to FsRtlFastCheckLockForWrite.
*/
BOOLEAN
STDCALL
FsRtlCheckLockForWriteAccess (
- DWORD Unknown0,
- DWORD Unknown1
- )
+ IN PFILE_LOCK FileLock,
+ IN PIRP Irp
+ )
{
return FALSE;
}
BOOLEAN
STDCALL
FsRtlFastCheckLockForRead (
- IN PFILE_LOCK_ANCHOR FileLockAnchor,
- IN PLARGE_INTEGER FileOffset,
- IN PLARGE_INTEGER Length,
- IN ULONG Key,
- IN PFILE_OBJECT FileObject,
- IN PEPROCESS ProcessId
- )
+ IN PFILE_LOCK FileLock,
+ IN PLARGE_INTEGER FileOffset,
+ IN PLARGE_INTEGER Length,
+ IN ULONG Key,
+ IN PFILE_OBJECT FileObject,
+ IN PEPROCESS Process
+ )
{
return FALSE;
}
BOOLEAN
STDCALL
FsRtlFastCheckLockForWrite (
- IN PFILE_LOCK_ANCHOR FileLockAnchor,
- IN PLARGE_INTEGER FileOffset,
- IN PLARGE_INTEGER Length,
- IN ULONG Key,
- IN PFILE_OBJECT FileObject,
- IN PEPROCESS ProcessId
- )
+ IN PFILE_LOCK FileLock,
+ IN PLARGE_INTEGER FileOffset,
+ IN PLARGE_INTEGER Length,
+ IN ULONG Key,
+ IN PFILE_OBJECT FileObject,
+ IN PEPROCESS Process
+ )
{
return FALSE;
}
static
NTSTATUS
STDCALL
-_FsRtlFastUnlockAllByKey (
- IN DWORD Unknown0,
- IN DWORD Unknown1,
- IN DWORD Unknown2,
- IN DWORD Unknown3,
- IN BOOLEAN UseKey, /* FIXME: guess */
- IN DWORD Key /* FIXME: guess */
- )
+FsRtlpFastUnlockAllByKey (
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PEPROCESS Process,
+ IN DWORD Key, /* FIXME: guess */
+ IN BOOLEAN UseKey, /* FIXME: guess */
+ IN PVOID Context OPTIONAL
+ )
{
/* FIXME: */
return (STATUS_RANGE_NOT_LOCKED);
NTSTATUS
STDCALL
FsRtlFastUnlockAll (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3
- )
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PEPROCESS Process,
+ IN PVOID Context OPTIONAL
+ )
{
- return _FsRtlFastUnlockAllByKey (
- Unknown0,
- Unknown1,
- Unknown2,
- Unknown3,
- FALSE, /* DO NOT USE KEY? */
- 0
+ return FsRtlpFastUnlockAllByKey (
+ FileLock,
+ FileObject,
+ Process,
+ 0, /* Key */
+ FALSE, /* Do NOT use Key */
+ Context
);
}
NTSTATUS
STDCALL
FsRtlFastUnlockAllByKey (
- IN DWORD Unknown0,
- IN DWORD Unknown1,
- IN DWORD Unknown2,
- IN DWORD Unknown3,
- IN DWORD Key
- )
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PEPROCESS Process,
+ IN ULONG Key,
+ IN PVOID Context OPTIONAL
+ )
{
- return _FsRtlFastUnlockAllByKey (
- Unknown0,
- Unknown1,
- Unknown2,
- Unknown3,
- TRUE, /* USE KEY? */
- Key
+ return FsRtlpFastUnlockAllByKey (
+ FileLock,
+ FileObject,
+ Process,
+ Key,
+ TRUE, /* Use Key */
+ Context
);
}
NTSTATUS
STDCALL
FsRtlFastUnlockSingle (
- IN DWORD Unknown0,
- IN DWORD Unknown1,
- IN DWORD Unknown2,
- IN DWORD Unknown3,
- IN DWORD Unknown4,
- IN DWORD Unknown5,
- IN DWORD Unknown6,
- IN DWORD Unknown7
- )
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PLARGE_INTEGER FileOffset,
+ IN PLARGE_INTEGER Length,
+ IN PEPROCESS Process,
+ IN ULONG Key,
+ IN PVOID Context OPTIONAL,
+ IN BOOLEAN AlreadySynchronized
+ )
{
return (STATUS_RANGE_NOT_LOCKED);
}
* ARGUMENTS
*
* RETURN VALUE
- *
+ * NULL if no more locks.
+ *
+ * NOTE (Bo Branten)
+ * Internals: FsRtlGetNextFileLock uses
+ * FileLock->LastReturnedLockInfo and FileLock->LastReturnedLock
+ * as storage. LastReturnedLock is a pointer to the 'raw' lock
+ * inkl. double linked list, and FsRtlGetNextFileLock needs this
+ * to get next lock on subsequent calls with Restart = FALSE.
*/
-NTSTATUS
+PFILE_LOCK_INFO
STDCALL
FsRtlGetNextFileLock (
- IN DWORD Unknown0,
- IN OUT PVOID Unknown1
- )
+ IN PFILE_LOCK FileLock,
+ IN BOOLEAN Restart
+ )
{
- return (STATUS_NOT_IMPLEMENTED);
+ return (NULL);
}
VOID
STDCALL
FsRtlInitializeFileLock (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2
- )
+ IN PFILE_LOCK FileLock,
+ IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL,
+ IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL
+ )
{
}
* ARGUMENTS
*
* RETURN VALUE
+ * IoStatus->Status: STATUS_PENDING, STATUS_LOCK_NOT_GRANTED
*
+ * NOTE (Bo Branten)
+ * -Calls IoCompleteRequest if Irp
+ * -Uses exception handling / ExRaiseStatus with
+ * STATUS_INSUFFICIENT_RESOURCES
*/
BOOLEAN
STDCALL
FsRtlPrivateLock (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5,
- DWORD Unknown6,
- DWORD Unknown7,
- DWORD Unknown8,
- DWORD Unknown9,
- DWORD Unknown10,
- DWORD Unknown11
- )
+ IN PFILE_LOCK FileLock,
+ IN PFILE_OBJECT FileObject,
+ IN PLARGE_INTEGER FileOffset,
+ IN PLARGE_INTEGER Length,
+ IN PEPROCESS Process,
+ IN ULONG Key,
+ IN BOOLEAN FailImmediately,
+ IN BOOLEAN ExclusiveLock,
+ OUT PIO_STATUS_BLOCK IoStatus,
+ IN PIRP Irp OPTIONAL,
+ IN PVOID Context,
+ IN BOOLEAN AlreadySynchronized
+ )
{
return FALSE;
}
* ARGUMENTS
*
* RETURN VALUE
- *
+ * -STATUS_INVALID_DEVICE_REQUEST
+ * -STATUS_RANGE_NOT_LOCKED from unlock routines.
+ * -STATUS_PENDING, STATUS_LOCK_NOT_GRANTED from FsRtlPrivateLock
+ * (redirected IoStatus->Status).
+ *
+ * NOTE (Bo Branten)
+ * -switch ( Irp->CurrentStackLocation->MinorFunction )
+ * lock: return FsRtlPrivateLock;
+ * unlocksingle: return FsRtlFastUnlockSingle;
+ * unlockall: return FsRtlFastUnlockAll;
+ * unlockallbykey: return FsRtlFastUnlockAllByKey;
+ * default: IofCompleteRequest with STATUS_INVALID_DEVICE_REQUEST;
+ * return STATUS_INVALID_DEVICE_REQUEST;
+ *
+ * -'AllwaysZero' is passed thru as 'AllwaysZero' to lock / unlock routines.
+ * -'Irp' is passet thru as 'Irp' to FsRtlPrivateLock.
*/
NTSTATUS
STDCALL
FsRtlProcessFileLock (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2
- )
+ IN PFILE_LOCK FileLock,
+ IN PIRP Irp,
+ IN PVOID Context OPTIONAL
+ )
{
return (STATUS_NOT_IMPLEMENTED);
}
VOID
STDCALL
FsRtlUninitializeFileLock (
- IN OUT PVOID lpUnknown0
- )
+ IN PFILE_LOCK FileLock
+ )
{
}
+/**********************************************************************
+ * NAME EXPORTED
+ * FsRtlAllocateFileLock@8
+ *
+ * DESCRIPTION
+ * Only present in NT 5.0 or later.
+ *
+ * ARGUMENTS
+ *
+ * RETURN VALUE
+ *
+ */
+PFILE_LOCK
+STDCALL
+FsRtlAllocateFileLock (
+ IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL,
+ IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL
+ )
+{
+ return NULL;
+}
+
/* EOF */
-/* $Id: notify.c,v 1.2 2001/04/24 18:36:39 ea Exp $
+/* $Id: notify.c,v 1.3 2002/01/13 22:02:31 ea Exp $
*
* reactos/ntoskrnl/fs/notify.c
*
VOID
STDCALL
FsRtlNotifyChangeDirectory (
- IN PNOTIFY_SYNC NotifySync,
- IN PLIST_ENTRY NotifyList,
- IN PVOID FsContext,
- IN PSTRING FullDirectoryName,
- IN BOOLEAN WatchTree,
- IN ULONG CompletionFilter,
- IN PIRP NotifyIrp
+ IN PNOTIFY_SYNC NotifySync,
+ IN PVOID FsContext,
+ IN PSTRING FullDirectoryName,
+ IN PLIST_ENTRY NotifyList,
+ IN BOOLEAN WatchTree,
+ IN ULONG CompletionFilter,
+ IN PIRP NotifyIrp
)
{
FsRtlNotifyFullChangeDirectory (
IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL
)
{
+ DbgPrint("%s()\n", __FUNCTION__);
}
VOID
STDCALL
FsRtlNotifyInitializeSync (
- IN OUT PVOID * Unknown0
+ IN PNOTIFY_SYNC * NotifySync
)
{
+ *NotifySync = NULL;
+ *NotifySync = ExAllocatePoolWithTag (
+ 0x10, // PoolType???
+ sizeof (NOTIFY_SYNC), // NumberOfBytes = 0x28
+ FSRTL_TAG
+ );
+#if 0
+ *NotifySync->Unknown0 = 1;
+ *NotifySync->Unknown2 = 0;
+ *NotifySync->Unknown3 = 1;
+ *NotifySync->Unknown4 = 4;
+ *NotifySync->Unknown5 = 0;
+ *NotifySync->Unknown9 = 0;
+ *NotifySync->Unknown10 = 0;
+#endif
}
IN PNOTIFY_SYNC NotifySync,
IN PLIST_ENTRY NotifyList,
IN PSTRING FullTargetName,
- IN USHORT TargetNameOffset,
+ IN PUSHORT FileNamePartLength,
IN ULONG FilterMatch
)
{
NotifySync,
NotifyList,
FullTargetName,
- (FullTargetName->Length - TargetNameOffset), /*?*/
+ (FullTargetName->Length - *FileNamePartLength), /*?*/
NULL,
NULL,
FilterMatch,
* FsRtlNotifyUninitializeSync@4
*
* DESCRIPTION
- *
+ * Uninitialize a NOTIFY_SYNC object.
+ *
* ARGUMENTS
+ * NotifySync is the address of a pointer
+ * to a PNOTIFY_SYNC object previously initialized by
+ * FsRtlNotifyInitializeSync().
*
* RETURN VALUE
- *
+ * None.
*/
VOID
STDCALL
FsRtlNotifyUninitializeSync (
- IN OUT PVOID * Unknown0
+ IN OUT PNOTIFY_SYNC * NotifySync
)
{
+ if (NULL != *NotifySync)
+ {
+ ExFreePool (*NotifySync);
+ *NotifySync = NULL;
+ }
}
+/**********************************************************************
+ * NAME EXPORTED
+ * FsRtlNotifyVolumeEvent@8
+ *
+ * DESCRIPTION
+ * NOTE: Only present in NT 5+.
+ *
+ * ARGUMENTS
+ *
+ * RETURN VALUE
+ *
+ */
+NTSTATUS
+STDCALL
+FsRtlNotifyVolumeEvent (
+ IN PFILE_OBJECT FileObject,
+ IN ULONG EventCode
+ )
+{
+ return STATUS_NOT_IMPLEMENTED;
+}
/* EOF */
-/* $Id: tunnel.c,v 1.1 2000/03/11 00:51:36 ea Exp $
+/* $Id: tunnel.c,v 1.2 2002/01/13 22:02:31 ea Exp $
*
* reactos/ntoskrnl/fs/tunnel.c
*
VOID
STDCALL
FsRtlAddToTunnelCache (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5,
- DWORD Unknown6,
- DWORD Unknown7
- )
+ IN PTUNNEL Cache,
+ IN ULONGLONG DirectoryKey,
+ IN PUNICODE_STRING ShortName,
+ IN PUNICODE_STRING LongName,
+ IN BOOLEAN KeyByShortName,
+ IN ULONG DataLength,
+ IN PVOID Data
+ )
{
}
VOID
STDCALL
FsRtlDeleteKeyFromTunnelCache (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2
- )
+ IN PTUNNEL Cache,
+ IN ULONGLONG DirectoryKey
+ )
{
}
VOID
STDCALL
FsRtlDeleteTunnelCache (
- IN OUT PVOID lpTunnel
- )
+ IN PTUNNEL Cache
+ )
{
}
VOID
STDCALL
FsRtlFindInTunnelCache (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5,
- DWORD Unknown6,
- DWORD Unknown7
- )
+ IN PTUNNEL Cache,
+ IN ULONGLONG DirectoryKey,
+ IN PUNICODE_STRING Name,
+ OUT PUNICODE_STRING ShortName,
+ OUT PUNICODE_STRING LongName,
+ IN OUT PULONG DataLength,
+ OUT PVOID Data
+ )
{
}
VOID
STDCALL
FsRtlInitializeTunnelCache (
- IN OUT PVOID lpTunnel
- )
+ IN PTUNNEL Cache
+ )
{
}
-/* $Id: util.c,v 1.7 2001/04/24 18:36:39 ea Exp $
+/* $Id: util.c,v 1.8 2002/01/13 22:02:31 ea Exp $
*
* reactos/ntoskrnl/fs/util.c
*
* RETURN VALUE
*
*/
-DWORD
+NTSTATUS
STDCALL
FsRtlGetFileSize (
- DWORD Unknown0,
- DWORD Unknown1
- )
+ IN PFILE_OBJECT FileObject,
+ IN OUT PLARGE_INTEGER FileSize
+ )
{
- return 0;
+ return STATUS_NOT_IMPLEMENTED;
}
-; $Id: ntoskrnl.def,v 1.123 2002/01/04 13:09:37 ekohl Exp $
+; $Id: ntoskrnl.def,v 1.124 2002/01/13 22:02:30 ea Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
FsRtlAddLargeMcbEntry@28
FsRtlAddMcbEntry@16
FsRtlAddToTunnelCache@32
+FsRtlAllocateFileLock@8
FsRtlAllocatePool@8
FsRtlAllocatePoolWithQuota@8
FsRtlAllocatePoolWithQuotaTag@12
FsRtlNotifyInitializeSync@4
FsRtlNotifyReportChange@20
FsRtlNotifyUninitializeSync@4
+FsRtlNotifyVolumeEvent@8
FsRtlNumberOfRunsInLargeMcb@4
FsRtlNumberOfRunsInMcb@4
FsRtlOplockFsctrl@12
-; $Id: ntoskrnl.edf,v 1.109 2002/01/04 13:09:37 ekohl Exp $
+; $Id: ntoskrnl.edf,v 1.110 2002/01/13 22:02:30 ea Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
FsRtlAddLargeMcbEntry=FsRtlAddLargeMcbEntry@28
FsRtlAddMcbEntry=FsRtlAddMcbEntry@16
FsRtlAddToTunnelCache=FsRtlAddToTunnelCache@32
+FsRtlAllocateFileLock=FsRtlAllocateFileLock@8
FsRtlAllocatePool=FsRtlAllocatePool@8
FsRtlAllocatePoolWithQuota=FsRtlAllocatePoolWithQuota@8
FsRtlAllocatePoolWithQuotaTag=FsRtlAllocatePoolWithQuotaTag@12
FsRtlNotifyInitializeSync=FsRtlNotifyInitializeSync@4
FsRtlNotifyReportChange=FsRtlNotifyReportChange@20
FsRtlNotifyUninitializeSync=FsRtlNotifyUninitializeSync@4
+FsRtlNotifyVolumeEvent=FsRtlNotifyVolumeEvent@8
FsRtlNumberOfRunsInLargeMcb=FsRtlNumberOfRunsInLargeMcb@4
FsRtlNumberOfRunsInMcb=FsRtlNumberOfRunsInMcb@4
FsRtlOplockFsctrl=FsRtlOplockFsctrl@12