mirror of
https://github.com/reactos/reactos.git
synced 2025-04-05 21:21:33 +00:00
Minor changes and some interfaces updated in FsRtl.
svn path=/trunk/; revision=2503
This commit is contained in:
parent
2c1c5c45b1
commit
a600e78a7a
9 changed files with 430 additions and 245 deletions
|
@ -1,6 +1,6 @@
|
|||
#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
|
||||
|
@ -24,15 +24,14 @@ FsRtlAddMcbEntry (
|
|||
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 (
|
||||
|
@ -80,14 +79,14 @@ FsRtlBalanceReads (
|
|||
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
|
||||
|
@ -130,15 +129,14 @@ FsRtlCurrentBatchOplock (
|
|||
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 (
|
||||
|
@ -173,75 +171,74 @@ FsRtlDoesNameContainWildCards (
|
|||
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
|
||||
STDCALL
|
||||
FsRtlGetFileSize (
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1
|
||||
);
|
||||
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 (
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN OUT PLARGE_INTEGER FileSize
|
||||
);
|
||||
PFILE_LOCK_INFO
|
||||
STDCALL
|
||||
FsRtlGetNextFileLock (
|
||||
IN DWORD Unknown0,
|
||||
IN OUT PVOID Unknown1
|
||||
IN PFILE_LOCK FileLock,
|
||||
IN BOOLEAN Restart
|
||||
);
|
||||
VOID
|
||||
STDCALL
|
||||
|
@ -266,9 +263,9 @@ FsRtlGetNextMcbEntry (
|
|||
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
|
||||
|
@ -290,8 +287,8 @@ FsRtlInitializeOplock (
|
|||
VOID
|
||||
STDCALL
|
||||
FsRtlInitializeTunnelCache (
|
||||
IN OUT PVOID lpTunnel
|
||||
);
|
||||
IN PTUNNEL Cache
|
||||
);
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
FsRtlIsDbcsInExpression (
|
||||
|
@ -426,13 +423,13 @@ FsRtlMdlWriteCompleteDev (
|
|||
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
|
||||
|
@ -477,7 +474,7 @@ FsRtlNotifyFullReportChange (
|
|||
VOID
|
||||
STDCALL
|
||||
FsRtlNotifyUninitializeSync (
|
||||
IN OUT PVOID * Unknown0
|
||||
IN OUT PNOTIFY_SYNC * NotifySync
|
||||
);
|
||||
VOID
|
||||
STDCALL
|
||||
|
@ -485,13 +482,19 @@ FsRtlNotifyReportChange (
|
|||
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
|
||||
|
@ -559,26 +562,26 @@ FsRtlPostStackOverflow (
|
|||
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 (
|
||||
|
@ -634,8 +637,8 @@ FsRtlTruncateMcb (
|
|||
VOID
|
||||
STDCALL
|
||||
FsRtlUninitializeFileLock (
|
||||
IN OUT PVOID lpUnknown0
|
||||
);
|
||||
IN PFILE_LOCK FileLock
|
||||
);
|
||||
VOID
|
||||
STDCALL
|
||||
FsRtlUninitializeLargeMcb (
|
||||
|
|
|
@ -1,17 +1,82 @@
|
|||
#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
|
||||
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
|
||||
);
|
||||
|
||||
typedef VOID (*PUNLOCK_ROUTINE) (
|
||||
IN PVOID Context,
|
||||
IN PFILE_LOCK_INFO FileLockInfo
|
||||
);
|
||||
|
||||
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
|
||||
{
|
||||
LIST_ENTRY GrantedFileLockList;
|
||||
LIST_ENTRY PendingFileLockList;
|
||||
|
||||
} FILE_LOCK_ANCHOR, *PFILE_LOCK_ANCHOR;
|
||||
|
||||
typedef PVOID PNOTIFY_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 */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $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
|
||||
|
@ -18,6 +18,18 @@
|
|||
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
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $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
|
||||
*
|
||||
|
@ -17,13 +17,18 @@
|
|||
*
|
||||
* 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;
|
||||
}
|
||||
|
@ -39,13 +44,17 @@ FsRtlCheckLockForReadAccess (
|
|||
*
|
||||
* 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;
|
||||
}
|
||||
|
@ -65,13 +74,13 @@ FsRtlCheckLockForWriteAccess (
|
|||
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;
|
||||
}
|
||||
|
@ -91,13 +100,13 @@ FsRtlFastCheckLockForRead (
|
|||
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;
|
||||
}
|
||||
|
@ -118,14 +127,14 @@ FsRtlFastCheckLockForWrite (
|
|||
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);
|
||||
|
@ -135,19 +144,19 @@ _FsRtlFastUnlockAllByKey (
|
|||
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
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -155,20 +164,20 @@ FsRtlFastUnlockAll (
|
|||
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
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -187,15 +196,15 @@ FsRtlFastUnlockAllByKey (
|
|||
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);
|
||||
}
|
||||
|
@ -210,16 +219,23 @@ FsRtlFastUnlockSingle (
|
|||
* 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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -237,10 +253,10 @@ FsRtlGetNextFileLock (
|
|||
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
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -254,24 +270,29 @@ FsRtlInitializeFileLock (
|
|||
* 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;
|
||||
}
|
||||
|
@ -286,15 +307,30 @@ FsRtlPrivateLock (
|
|||
* 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);
|
||||
}
|
||||
|
@ -314,10 +350,32 @@ FsRtlProcessFileLock (
|
|||
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 */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $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
|
||||
*
|
||||
|
@ -21,13 +21,13 @@
|
|||
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 (
|
||||
|
@ -93,6 +93,7 @@ FsRtlNotifyFullChangeDirectory (
|
|||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL
|
||||
)
|
||||
{
|
||||
DbgPrint("%s()\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
|
||||
|
@ -138,9 +139,24 @@ FsRtlNotifyFullReportChange (
|
|||
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
|
||||
}
|
||||
|
||||
|
||||
|
@ -161,7 +177,7 @@ FsRtlNotifyReportChange (
|
|||
IN PNOTIFY_SYNC NotifySync,
|
||||
IN PLIST_ENTRY NotifyList,
|
||||
IN PSTRING FullTargetName,
|
||||
IN USHORT TargetNameOffset,
|
||||
IN PUSHORT FileNamePartLength,
|
||||
IN ULONG FilterMatch
|
||||
)
|
||||
{
|
||||
|
@ -169,7 +185,7 @@ FsRtlNotifyReportChange (
|
|||
NotifySync,
|
||||
NotifyList,
|
||||
FullTargetName,
|
||||
(FullTargetName->Length - TargetNameOffset), /*?*/
|
||||
(FullTargetName->Length - *FileNamePartLength), /*?*/
|
||||
NULL,
|
||||
NULL,
|
||||
FilterMatch,
|
||||
|
@ -184,19 +200,49 @@ FsRtlNotifyReportChange (
|
|||
* 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 PNOTIFY_SYNC * NotifySync
|
||||
)
|
||||
{
|
||||
if (NULL != *NotifySync)
|
||||
{
|
||||
ExFreePool (*NotifySync);
|
||||
*NotifySync = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* NAME EXPORTED
|
||||
* FsRtlNotifyVolumeEvent@8
|
||||
*
|
||||
* DESCRIPTION
|
||||
* NOTE: Only present in NT 5+.
|
||||
*
|
||||
* ARGUMENTS
|
||||
*
|
||||
* RETURN VALUE
|
||||
*
|
||||
*/
|
||||
VOID
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
FsRtlNotifyUninitializeSync (
|
||||
IN OUT PVOID * Unknown0
|
||||
FsRtlNotifyVolumeEvent (
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN ULONG EventCode
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $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
|
||||
*
|
||||
|
@ -21,15 +21,14 @@
|
|||
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
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -48,10 +47,9 @@ FsRtlAddToTunnelCache (
|
|||
VOID
|
||||
STDCALL
|
||||
FsRtlDeleteKeyFromTunnelCache (
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1,
|
||||
DWORD Unknown2
|
||||
)
|
||||
IN PTUNNEL Cache,
|
||||
IN ULONGLONG DirectoryKey
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -70,8 +68,8 @@ FsRtlDeleteKeyFromTunnelCache (
|
|||
VOID
|
||||
STDCALL
|
||||
FsRtlDeleteTunnelCache (
|
||||
IN OUT PVOID lpTunnel
|
||||
)
|
||||
IN PTUNNEL Cache
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -90,15 +88,14 @@ FsRtlDeleteTunnelCache (
|
|||
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
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -117,8 +114,8 @@ FsRtlFindInTunnelCache (
|
|||
VOID
|
||||
STDCALL
|
||||
FsRtlInitializeTunnelCache (
|
||||
IN OUT PVOID lpTunnel
|
||||
)
|
||||
IN PTUNNEL Cache
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $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
|
||||
*
|
||||
|
@ -229,14 +229,14 @@ FsRtlCopyWrite (
|
|||
* 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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; $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
|
||||
;
|
||||
|
@ -108,6 +108,7 @@ Exi386InterlockedIncrementLong@4
|
|||
FsRtlAddLargeMcbEntry@28
|
||||
FsRtlAddMcbEntry@16
|
||||
FsRtlAddToTunnelCache@32
|
||||
FsRtlAllocateFileLock@8
|
||||
FsRtlAllocatePool@8
|
||||
FsRtlAllocatePoolWithQuota@8
|
||||
FsRtlAllocatePoolWithQuotaTag@12
|
||||
|
@ -168,6 +169,7 @@ FsRtlNotifyFullReportChange@36
|
|||
FsRtlNotifyInitializeSync@4
|
||||
FsRtlNotifyReportChange@20
|
||||
FsRtlNotifyUninitializeSync@4
|
||||
FsRtlNotifyVolumeEvent@8
|
||||
FsRtlNumberOfRunsInLargeMcb@4
|
||||
FsRtlNumberOfRunsInMcb@4
|
||||
FsRtlOplockFsctrl@12
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; $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
|
||||
;
|
||||
|
@ -108,6 +108,7 @@ Exi386InterlockedIncrementLong=Exi386InterlockedIncrementLong@4
|
|||
FsRtlAddLargeMcbEntry=FsRtlAddLargeMcbEntry@28
|
||||
FsRtlAddMcbEntry=FsRtlAddMcbEntry@16
|
||||
FsRtlAddToTunnelCache=FsRtlAddToTunnelCache@32
|
||||
FsRtlAllocateFileLock=FsRtlAllocateFileLock@8
|
||||
FsRtlAllocatePool=FsRtlAllocatePool@8
|
||||
FsRtlAllocatePoolWithQuota=FsRtlAllocatePoolWithQuota@8
|
||||
FsRtlAllocatePoolWithQuotaTag=FsRtlAllocatePoolWithQuotaTag@12
|
||||
|
@ -168,6 +169,7 @@ FsRtlNotifyFullReportChange=FsRtlNotifyFullReportChange@36
|
|||
FsRtlNotifyInitializeSync=FsRtlNotifyInitializeSync@4
|
||||
FsRtlNotifyReportChange=FsRtlNotifyReportChange@20
|
||||
FsRtlNotifyUninitializeSync=FsRtlNotifyUninitializeSync@4
|
||||
FsRtlNotifyVolumeEvent=FsRtlNotifyVolumeEvent@8
|
||||
FsRtlNumberOfRunsInLargeMcb=FsRtlNumberOfRunsInLargeMcb@4
|
||||
FsRtlNumberOfRunsInMcb=FsRtlNumberOfRunsInMcb@4
|
||||
FsRtlOplockFsctrl=FsRtlOplockFsctrl@12
|
||||
|
|
Loading…
Reference in a new issue