Fix FsRtl function prototypes Modified: trunk/reactos/include/ddk/fsfuncs.h Modified: trunk/reactos/include/ddk/fstypes.h Modified: trunk/reactos/ntoskrnl/fs/dbcsname.c Modified: trunk/reactos/ntoskrnl/fs/notify.c Modified: trunk/reactos/ntoskrnl/fs/util.c _____
Modified: trunk/reactos/include/ddk/fsfuncs.h --- trunk/reactos/include/ddk/fsfuncs.h 2005-01-20 13:17:57 UTC (rev 13165) +++ trunk/reactos/include/ddk/fsfuncs.h 2005-01-20 13:31:49 UTC (rev 13166) @@ -5,51 +5,14 @@
#include <ntos/fstypes.h>
-/* Some comments on the Prototypes that aren't in the GNU IFS: +/* Some comments on the Prototypes that aren't in the IFS:
-The following come from alternate sources, or guessed from documentation: -FsRtlNotifyFullChangeDirectory GOOGLE GROUPS -FsRtlIsPagingFile OSR DOCUMENTATION -FsRtlAcquireFileExclusive (GUESS: The function takes a single parameter. The function name is "AcquireFile". Logical assumption says this is a File Object. NTFSD ML Post confirms.) -FsRtlReleaseFile (GUESS: The function takes a single parameter. The function name is "AcquireFile". Logical assumption says this is a File Object. NTFSD ML Post confirms.) FsRtlMdlReadCompleteDev (FsRtlMdlReadComplete is on GNU IFS. The Dev Suffix simply means an extra PDEVICE_OBJECT param) FsRtlMdlReadDev (FsRtlMdlReadDev is on GNU IFS. The Dev Suffix simply means an extra PDEVICE_OBJECT param) FsRtlMdlWriteCompleteDev FsRtlMdlWriteCompleteDev is on GNU IFS. The Dev Suffix simply means an extra PDEVICE_OBJECT param) FsRtlPrepareMdlWrite (Compared with CcMdlWrite, which is already documented) FsRtlPrepareMdlWriteDev (Same as above, and add a pointer to device object (Dev suffix) -FsRtlGetNextMcbEntry(FsRtlGetNextLargeMcbEntry is documented and uses LONGLONGs. Logical assumption that this one only uses LONGS and non-large MCB (Documented))
-Stream Context. Going along with public OSR documenttion: - -FsRtlInsertPerStreamContext: -"This call is used by the file system filter driver to associate a given context block -(allocated by the filter and initialized using FsRtlInitPerStreamContext) with the stream associated with the given file object." -Notice we are told "given context block...initialized using FsRtlInitPerStreamContext". This function description tells us: -" provide space for the FSRTL_PER_STREAM_CONTEXT block in the filter driver's context structure" -Therefore, one of the parameters is PFSRTL_PER_STREAM_CONTEXT. -"with the stream associated with the given file object." The OSR Documentations then mentions: -"Tracking per-file (or "per stream") context information in FSRTL_ADVANCED_FCB_HEADER" -So we are associating a FSRTL_PER_STREAM_CONTEXT block with the FSRTL_ADVANCED_FCB_HEADER associated with the file object. -FSRTL_ADVANCED_FCB_HEADER is documented by a search through Google. -FSRTL_PER_STREAM_CONTEXT is *NOT* documented anywhere else then in the IFS, so it has been removed. - -FsRtlLookupPerStreamContextInternal -"FsRtlLookupPerStreamContext - this call is used by the file system filter driver to locate a given context -block that is associated with the file object. Typically, a file system filter driver will identify its -own context block using unique OwnerId and InstanceId parameters when creating the context block and subsequently -when locating the associated information." -OSR tells us here that the last two parameters are OwnerId and InstanceId. It also says it will find a given context block, -so there's our Return Value. (Although, not being documented, we must put PVOID). It looks into a file object's stream, so we -probably need that FCB header again. - -FsRtlRemovePerStreamContext -OSR is vague, so all we know for sure is that we are sending an FCB Header. The return value isn't NTSTATUS, but seems to be a -pointer. We don't know what the two other parameters are, so they have been marked as unknown. - -FsRtlTeardownPerStreamContexts -OSR doens't tell a lot, but we only have one parameter. It must be the FCB Header. Furthermore, the CVS of Captive implements -this function as a stub, and confirms the theory. - */
#ifdef __NTOSKRNL__ @@ -144,10 +107,10 @@ IN BOOLEAN IgnoreCase, IN PWCHAR UpcaseTable OPTIONAL ); -DWORD +NTSTATUS STDCALL FsRtlBalanceReads ( - DWORD Unknown0 + PDEVICE_OBJECT TargetDevice ); BOOLEAN STDCALL @@ -371,19 +334,21 @@ BOOLEAN STDCALL FsRtlIsDbcsInExpression(IN PANSI_STRING Expression, IN PANSI_STRING Name); + +BOOLEAN +STDCALL +FsRtlIsFatDbcsLegal(IN ANSI_STRING DbcsName, + IN BOOLEAN WildCardsPermissible, + IN BOOLEAN PathNamePermissible, + IN BOOLEAN LeadingBackslashPermissible);
-BOOLEAN STDCALL -FsRtlIsFatDbcsLegal(IN ANSI_STRING Name, - IN BOOLEAN Unknown2, - IN BOOLEAN Unknown3, - IN BOOLEAN Unknown4); +BOOLEAN +STDCALL +FsRtlIsHpfsDbcsLegal(IN ANSI_STRING DbcsName, + IN BOOLEAN WildCardsPermissible, + IN BOOLEAN PathNamePermissible, + IN BOOLEAN LeadingBackslashPermissible);
-BOOLEAN STDCALL -FsRtlIsHpfsDbcsLegal(IN ANSI_STRING Name, - IN BOOLEAN Unknown2, - IN BOOLEAN Unknown3, - IN BOOLEAN Unknown4); - BOOLEAN STDCALL FsRtlIsNameInExpression ( @@ -701,19 +666,15 @@
VOID STDCALL -FsRtlPostPagingFileStackOverflow ( - ULONG Unknown0, - ULONG Unknown1, - ULONG Unknown2 - ); +FsRtlPostPagingFileStackOverflow(IN PVOID Context, + IN PKEVENT Event, + IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine) ;
VOID STDCALL -FsRtlPostStackOverflow ( - ULONG Unknown0, - ULONG Unknown1, - ULONG Unknown2 - ); +FsRtlPostStackOverflow (IN PVOID Context, + IN PKEVENT Event, + IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine) ;
BOOLEAN STDCALL @@ -742,10 +703,8 @@
NTSTATUS STDCALL -FsRtlRegisterFileSystemFilterCallbacks ( - IN PVOID Unknown1, - IN PVOID Unknown2 - ); +FsRtlRegisterFileSystemFilterCallbacks(IN PDRIVER_OBJECT FilterDriverObject, + IN PFS_FILTER_CALLBACKS Callbacks);
NTSTATUS STDCALL FsRtlRegisterUncProvider(IN OUT PHANDLE Handle, @@ -772,8 +731,8 @@ STDCALL FsRtlRemovePerStreamContext ( IN PFSRTL_ADVANCED_FCB_HEADER StreamContext, - IN PVOID Unknown1 OPTIONAL, - IN PVOID Unknown2 OPTIONAL + IN PVOID OwnerId OPTIONAL, + IN PVOID InstanceId OPTIONAL );
PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/ _____
Modified: trunk/reactos/include/ddk/fstypes.h --- trunk/reactos/include/ddk/fstypes.h 2005-01-20 13:17:57 UTC (rev 13165) +++ trunk/reactos/include/ddk/fstypes.h 2005-01-20 13:31:49 UTC (rev 13166) @@ -30,6 +30,12 @@
IN PIRP Irp );
+typedef VOID (*PFSRTL_STACK_OVERFLOW_ROUTINE) ( + IN PVOID Context, + IN PKEVENT Event +); + + typedef VOID (*PUNLOCK_ROUTINE) ( IN PVOID Context, IN PFILE_LOCK_INFO FileLockInfo _____
Modified: trunk/reactos/ntoskrnl/fs/dbcsname.c --- trunk/reactos/ntoskrnl/fs/dbcsname.c 2005-01-20 13:17:57 UTC (rev 13165) +++ trunk/reactos/ntoskrnl/fs/dbcsname.c 2005-01-20 13:31:49 UTC (rev 13166) @@ -283,11 +283,12 @@
* * @unimplemented */ -BOOLEAN STDCALL -FsRtlIsFatDbcsLegal(IN ANSI_STRING Name, - IN BOOLEAN Unknown2, - IN BOOLEAN Unknown3, - IN BOOLEAN Unknown4) +BOOLEAN +STDCALL +FsRtlIsFatDbcsLegal(IN ANSI_STRING DbcsName, + IN BOOLEAN WildCardsPermissible, + IN BOOLEAN PathNamePermissible, + IN BOOLEAN LeadingBackslashPermissible) { return FALSE; } @@ -306,10 +307,10 @@ * @unimplemented */ BOOLEAN STDCALL -FsRtlIsHpfsDbcsLegal(IN ANSI_STRING Name, - IN BOOLEAN Unknown2, - IN BOOLEAN Unknown3, - IN BOOLEAN Unknown4) +FsRtlIsHpfsDbcsLegal(IN ANSI_STRING DbcsName, + IN BOOLEAN WildCardsPermissible, + IN BOOLEAN PathNamePermissible, + IN BOOLEAN LeadingBackslashPermissible) { return FALSE; } _____
Modified: trunk/reactos/ntoskrnl/fs/notify.c --- trunk/reactos/ntoskrnl/fs/notify.c 2005-01-20 13:17:57 UTC (rev 13165) +++ trunk/reactos/ntoskrnl/fs/notify.c 2005-01-20 13:31:49 UTC (rev 13166) @@ -313,10 +313,8 @@
*/ NTSTATUS STDCALL -FsRtlRegisterFileSystemFilterCallbacks ( - IN PVOID Unknown1, - IN PVOID Unknown2 - ) +FsRtlRegisterFileSystemFilterCallbacks(IN PDRIVER_OBJECT FilterDriverObject, + IN PFS_FILTER_CALLBACKS Callbacks) { UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; _____
Modified: trunk/reactos/ntoskrnl/fs/util.c --- trunk/reactos/ntoskrnl/fs/util.c 2005-01-20 13:17:57 UTC (rev 13165) +++ trunk/reactos/ntoskrnl/fs/util.c 2005-01-20 13:31:49 UTC (rev 13166) @@ -157,7 +157,8 @@
STDCALL FsRtlAllocateResource (VOID) { - return 0; + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; }
@@ -174,13 +175,12 @@ * * @unimplemented */ -DWORD +NTSTATUS STDCALL -FsRtlBalanceReads ( - DWORD Unknown0 - ) +FsRtlBalanceReads (PDEVICE_OBJECT TargetDevice) { - return 0; + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; }
@@ -212,6 +212,7 @@ IN PDEVICE_OBJECT DeviceObject ) { + UNIMPLEMENTED; return FALSE; }
@@ -244,6 +245,7 @@ IN PDEVICE_OBJECT DeviceObject ) { + UNIMPLEMENTED; return FALSE; }
@@ -341,12 +343,11 @@ */ VOID STDCALL -FsRtlPostPagingFileStackOverflow ( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2 - ) +FsRtlPostPagingFileStackOverflow(IN PVOID Context, + IN PKEVENT Event, + IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine) { + UNIMPLEMENTED; }
@@ -364,12 +365,11 @@ */ VOID STDCALL -FsRtlPostStackOverflow ( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2 - ) +FsRtlPostStackOverflow (IN PVOID Context, + IN PKEVENT Event, + IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine) { + UNIMPLEMENTED; }