From f1d9e95a8479f4fe26743261a1fcf8ddd30e376c Mon Sep 17 00:00:00 2001 From: Emanuele Aliberti Date: Fri, 10 Mar 2000 22:09:17 +0000 Subject: [PATCH] NTOSKRNL.FsRtl opportunistic lock stubs added. svn path=/trunk/; revision=1046 --- reactos/include/ddk/fsfuncs.h | 38 ++++++++- reactos/ntoskrnl/fs/oplock.c | 142 ++++++++++++++++++++++++++++++++++ reactos/ntoskrnl/makefile_rex | 4 +- reactos/ntoskrnl/ntoskrnl.def | 8 +- reactos/ntoskrnl/ntoskrnl.edf | 8 +- 5 files changed, 195 insertions(+), 5 deletions(-) create mode 100644 reactos/ntoskrnl/fs/oplock.c diff --git a/reactos/include/ddk/fsfuncs.h b/reactos/include/ddk/fsfuncs.h index 58910d899e8..387dd13e7a7 100644 --- a/reactos/include/ddk/fsfuncs.h +++ b/reactos/include/ddk/fsfuncs.h @@ -1,6 +1,6 @@ #ifndef __INCLUDE_DDK_FSFUNCS_H #define __INCLUDE_DDK_FSFUNCS_H -/* $Id: fsfuncs.h,v 1.8 2000/03/05 19:17:37 ea Exp $ */ +/* $Id: fsfuncs.h,v 1.9 2000/03/10 22:09:16 ea Exp $ */ VOID STDCALL FsRtlAddLargeMcbEntry ( @@ -76,6 +76,15 @@ FsRtlCheckLockForWriteAccess ( DWORD Unknown0, DWORD Unknown1 ); +DWORD +STDCALL +FsRtlCheckOplock ( + DWORD Unknown0, + DWORD Unknown1, + DWORD Unknown2, + DWORD Unknown3, + DWORD Unknown4 + ); BOOLEAN STDCALL FsRtlCopyRead ( @@ -100,6 +109,11 @@ FsRtlCopyWrite ( OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject ); +BOOLEAN +STDCALL +FsRtlCurrentBatchOplock ( + DWORD Unknown0 + ); VOID STDCALL FsRtlDeregisterUncProvider ( @@ -231,6 +245,11 @@ FsRtlInitializeMcb ( DWORD Unknown0, DWORD Unknown1 ); +VOID +STDCALL +FsRtlInitializeOplock ( + DWORD Unknown0 + ); BOOLEAN STDCALL FsRtlIsDbcsInExpression ( @@ -362,6 +381,18 @@ FsRtlMdlWriteCompleteDev ( IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject ); +NTSTATUS +STDCALL +FsRtlOplockFsctrl ( + DWORD Unknown0, + DWORD Unknown1, + DWORD Unknown2 + ); +BOOLEAN +STDCALL +FsRtlOplockIsFastIoPossible ( + DWORD Unknown0 + ); BOOLEAN STDCALL FsRtlPrepareMdlWrite ( @@ -503,5 +534,10 @@ STDCALL FsRtlUninitializeMcb ( DWORD Unknown0 ); +DWORD +STDCALL +FsRtlUninitializeOplock ( + DWORD Unknown0 + ); #endif /* __INCLUDE_DDK_FSFUNCS_H */ diff --git a/reactos/ntoskrnl/fs/oplock.c b/reactos/ntoskrnl/fs/oplock.c new file mode 100644 index 00000000000..d98fea9149d --- /dev/null +++ b/reactos/ntoskrnl/fs/oplock.c @@ -0,0 +1,142 @@ +/* $Id: oplock.c,v 1.1 2000/03/10 22:09:17 ea Exp $ + * + * reactos/ntoskrnl/fs/oplock.c + * + */ +#include + + +/********************************************************************** + * NAME EXPORTED + * FsRtlCheckOplock@20 + * + * DESCRIPTION + * + * ARGUMENTS + * + * RETURN VALUE + * + */ +DWORD +STDCALL +FsRtlCheckOplock ( + DWORD Unknown0, + DWORD Unknown1, + DWORD Unknown2, + DWORD Unknown3, + DWORD Unknown4 + ) +{ + return 0; +} + + +/********************************************************************** + * NAME EXPORTED + * FsRtlCurrentBatchOplock@4 + * + * DESCRIPTION + * + * ARGUMENTS + * + * RETURN VALUE + * + */ +BOOLEAN +STDCALL +FsRtlCurrentBatchOplock ( + DWORD Unknown0 + ) +{ + return FALSE; +} + + +/********************************************************************** + * NAME EXPORTED + * FsRtlInitializeOplock@4 + * + * DESCRIPTION + * + * ARGUMENTS + * + * RETURN VALUE + * + * NOTE + * Obsolete function. + */ +VOID +STDCALL +FsRtlInitializeOplock ( + DWORD Unknown0 + ) +{ +} + + +/********************************************************************** + * NAME EXPORTED + * FsRtlOplockFsctrl@12 + * + * DESCRIPTION + * + * ARGUMENTS + * + * RETURN VALUE + * + */ +NTSTATUS +STDCALL +FsRtlOplockFsctrl ( + DWORD Unknown0, + DWORD Unknown1, + DWORD Unknown2 + ) +{ + return 0; +} + + +/********************************************************************** + * NAME EXPORTED + * FsRtlOplockIsFastIoPossible@4 + * + * DESCRIPTION + * + * ARGUMENTS + * + * RETURN VALUE + * + */ +BOOLEAN +STDCALL +FsRtlOplockIsFastIoPossible ( + DWORD Unknown0 + ) +{ + return FALSE; +} + + +/********************************************************************** + * NAME EXPORTED + * FsRtlUninitializeOplock@4 + * + * DESCRIPTION + * + * ARGUMENTS + * + * RETURN VALUE + * + */ +DWORD +STDCALL +FsRtlUninitializeOplock ( + DWORD Unknown0 + ) +{ + return 0; +} + + +/* EOF */ diff --git a/reactos/ntoskrnl/makefile_rex b/reactos/ntoskrnl/makefile_rex index 077adbdd36a..2eaa37b83d4 100644 --- a/reactos/ntoskrnl/makefile_rex +++ b/reactos/ntoskrnl/makefile_rex @@ -1,4 +1,4 @@ -# $Id: makefile_rex,v 1.58 2000/03/05 19:17:39 ea Exp $ +# $Id: makefile_rex,v 1.59 2000/03/10 22:09:17 ea Exp $ # # ReactOS Operating System # @@ -59,7 +59,7 @@ EX_OBJECTS = ex/work.o ex/fmutex.o ex/resource.o ex/time.o ex/interlck.o \ ex/stamp.o ex/init.o FS_OBJECTS = fs/dbcsname.o fs/name.o fs/mcb.o fs/unc.o fs/util.o \ - fs/filelock.o fs/pool.o fs/mdl.o + fs/filelock.o fs/pool.o fs/mdl.o fs/oplock.o SE_OBJECTS = se/semgr.o se/acl.o se/sid.o se/sd.o se/token.o se/luid.o \ se/priv.o diff --git a/reactos/ntoskrnl/ntoskrnl.def b/reactos/ntoskrnl/ntoskrnl.def index 3d2f40bff3e..636dc77a44c 100644 --- a/reactos/ntoskrnl/ntoskrnl.def +++ b/reactos/ntoskrnl/ntoskrnl.def @@ -1,4 +1,4 @@ -; $Id: ntoskrnl.def,v 1.55 2000/03/08 21:23:13 jfilby Exp $ +; $Id: ntoskrnl.def,v 1.56 2000/03/10 22:09:17 ea Exp $ ; ; reactos/ntoskrnl/ntoskrnl.def ; @@ -91,8 +91,10 @@ FsRtlAreNamesEqual@16 FsRtlBalanceReads@4 FsRtlCheckLockForReadAccess@8 FsRtlCheckLockForWriteAccess@8 +FsRtlCheckOplock@20 FsRtlCopyRead@32 FsRtlCopyWrite@32 +FsRtlCurrentBatchOplock@4 FsRtlDeregisterUncProvider@4 FsRtlDissectDbcs@16 FsRtlDissectName@16 @@ -110,6 +112,7 @@ FsRtlGetNextMcbEntry@20 FsRtlInitializeFileLock@12 FsRtlInitializeLargeMcb@8 FsRtlInitializeMcb@8 +FsRtlInitializeOplock@4 FsRtlIsDbcsInExpression@8 FsRtlIsFatDbcsLegal@20 FsRtlIsHpfsDbcsLegal@20 @@ -130,6 +133,8 @@ FsRtlMdlWriteCompleteDev@16 FsRtlNormalizeNtstatus@8 FsRtlNumberOfRunsInLargeMcb@4 FsRtlNumberOfRunsInMcb@4 +FsRtlOplockFsctrl@12 +FsRtlOplockIsFastIoPossible@4 FsRtlPostPagingFileStackOverflow@12 FsRtlPostStackOverflow@12 FsRtlPrepareMdlWrite@24 @@ -146,6 +151,7 @@ FsRtlTruncateMcb@8 FsRtlUninitializeFileLock@4 FsRtlUninitializeLargeMcb@4 FsRtlUninitializeMcb@4 +FsRtlUninitializeOplock@4 IoAllocateIrp@8 IoAllocateController IoAttachDeviceToDeviceStack diff --git a/reactos/ntoskrnl/ntoskrnl.edf b/reactos/ntoskrnl/ntoskrnl.edf index 5daaa3f7975..246024d5a4e 100644 --- a/reactos/ntoskrnl/ntoskrnl.edf +++ b/reactos/ntoskrnl/ntoskrnl.edf @@ -1,4 +1,4 @@ -; $Id: ntoskrnl.edf,v 1.42 2000/03/08 21:23:13 jfilby Exp $ +; $Id: ntoskrnl.edf,v 1.43 2000/03/10 22:09:17 ea Exp $ ; ; reactos/ntoskrnl/ntoskrnl.def ; @@ -91,8 +91,10 @@ FsRtlAreNamesEqual=FsRtlAreNamesEqual@16 FsRtlBalanceReads=FsRtlBalanceReads@4 FsRtlCheckLockForReadAccess=FsRtlCheckLockForReadAccess@8 FsRtlCheckLockForWriteAccess=FsRtlCheckLockForWriteAccess@8 +FsRtlCheckOplock=FsRtlCheckOplock@20 FsRtlCopyRead=FsRtlCopyRead@32 FsRtlCopyWrite=FsRtlCopyWrite@32 +FsRtlCurrentBatchOplock=FsRtlCurrentBatchOplock@4 FsRtlDeregisterUncProvider=FsRtlDeregisterUncProvider@4 FsRtlDissectDbcs=FsRtlDissectDbcs@16 FsRtlDissectName=FsRtlDissectName@16 @@ -110,6 +112,7 @@ FsRtlGetNextMcbEntry=FsRtlGetNextMcbEntry@20 FsRtlInitializeFileLock=FsRtlInitializeFileLock@12 FsRtlInitializeLargeMcb=FsRtlInitializeLargeMcb@8 FsRtlInitializeMcb=FsRtlInitializeMcb@8 +FsRtlInitializeOplock=FsRtlInitializeOplock@4 FsRtlIsDbcsInExpression=FsRtlIsDbcsInExpression@8 FsRtlIsFatDbcsLegal=FsRtlIsFatDbcsLegal@20 FsRtlIsHpfsDbcsLegal=FsRtlIsHpfsDbcsLegal@20 @@ -130,6 +133,8 @@ FsRtlMdlWriteCompleteDev=FsRtlMdlWriteCompleteDev@16 FsRtlNormalizeNtstatus=FsRtlNormalizeNtstatus@8 FsRtlNumberOfRunsInLargeMcb=FsRtlNumberOfRunsInLargeMcb@4 FsRtlNumberOfRunsInMcb=FsRtlNumberOfRunsInMcb@4 +FsRtlOplockFsctrl=FsRtlOplockFsctrl@12 +FsRtlOplockIsFastIoPossible=FsRtlOplockIsFastIoPossible@4 FsRtlPostPagingFileStackOverflow=FsRtlPostPagingFileStackOverflow@12 FsRtlPostStackOverflow=FsRtlPostStackOverflow@12 FsRtlPrepareMdlWrite=FsRtlPrepareMdlWrite@24 @@ -146,6 +151,7 @@ FsRtlTruncateMcb=FsRtlTruncateMcb@8 FsRtlUninitializeFileLock=FsRtlUninitializeFileLock@4 FsRtlUninitializeLargeMcb=FsRtlUninitializeLargeMcb@4 FsRtlUninitializeMcb=FsRtlUninitializeMcb@4 +FsRtlUninitializeOplock=FsRtlUninitializeOplock@4 IoAllocateIrp=IoAllocateIrp@8 IoAllocateController IoAttachDeviceToDeviceStack