Minor changes and some interfaces updated in FsRtl.

svn path=/trunk/; revision=2503
This commit is contained in:
Emanuele Aliberti 2002-01-13 22:02:31 +00:00
parent 2c1c5c45b1
commit a600e78a7a
9 changed files with 430 additions and 245 deletions

View file

@ -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 (

View file

@ -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 */

View file

@ -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

View file

@ -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 */

View file

@ -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 */

View file

@ -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
)
{
}

View file

@ -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;
}

View file

@ -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

View file

@ -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