Fix FsRtl function prototypes
authorAlex Ionescu <aionescu@gmail.com>
Thu, 20 Jan 2005 13:31:49 +0000 (13:31 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Thu, 20 Jan 2005 13:31:49 +0000 (13:31 +0000)
svn path=/trunk/; revision=13166

reactos/include/ddk/fsfuncs.h
reactos/include/ddk/fstypes.h
reactos/ntoskrnl/fs/dbcsname.c
reactos/ntoskrnl/fs/notify.c
reactos/ntoskrnl/fs/util.c

index 53a8a6b..7331868 100644 (file)
@@ -5,50 +5,13 @@
 
 #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\92s 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 \93per stream\94) 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 \96 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.
 
 */
 
@@ -144,10 +107,10 @@ FsRtlAreNamesEqual (
        IN      BOOLEAN         IgnoreCase,
        IN      PWCHAR          UpcaseTable     OPTIONAL
        );
-DWORD
+NTSTATUS
 STDCALL
 FsRtlBalanceReads (
-       DWORD   Unknown0
+       PDEVICE_OBJECT TargetDevice
        );
 BOOLEAN
 STDCALL
@@ -371,18 +334,20 @@ FsRtlInsertPerStreamContext (
 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 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
@@ -701,19 +666,15 @@ FsRtlNumberOfRunsInMcb (IN PMCB Mcb);
 
 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 @@ FsRtlProcessFileLock (
 
 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 @@ PFSRTL_PER_STREAM_CONTEXT
 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*/
index 254219e..8d1aaab 100644 (file)
@@ -30,6 +30,12 @@ typedef NTSTATUS (*PCOMPLETE_LOCK_IRP_ROUTINE) (
     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
index e406387..2256371 100644 (file)
@@ -283,11 +283,12 @@ FsRtlIsDbcsInExpression(IN PANSI_STRING Expression,
  *
  * @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 @@ FsRtlIsFatDbcsLegal(IN ANSI_STRING Name,
  * @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;
 }
index 493c60a..7049c56 100644 (file)
@@ -313,10 +313,8 @@ FsRtlNotifyVolumeEvent (
  */
 NTSTATUS
 STDCALL
-FsRtlRegisterFileSystemFilterCallbacks (
-    IN PVOID           Unknown1,
-    IN PVOID           Unknown2
-    )
+FsRtlRegisterFileSystemFilterCallbacks(IN PDRIVER_OBJECT FilterDriverObject,
+                                       IN PFS_FILTER_CALLBACKS Callbacks)
 {
        UNIMPLEMENTED;
        return STATUS_NOT_IMPLEMENTED;
index ab7e33a..64e3dd1 100644 (file)
@@ -157,7 +157,8 @@ DWORD
 STDCALL
 FsRtlAllocateResource (VOID)
 {
-       return 0;
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED; 
 }
 
 
@@ -174,13 +175,12 @@ FsRtlAllocateResource (VOID)
  *
  * @unimplemented
  */
-DWORD
+NTSTATUS
 STDCALL
-FsRtlBalanceReads (
-       DWORD   Unknown0
-       )
+FsRtlBalanceReads (PDEVICE_OBJECT TargetDevice)
 {
-       return 0;
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED; 
 }
 
 
@@ -212,6 +212,7 @@ FsRtlCopyRead (
        IN      PDEVICE_OBJECT          DeviceObject
        )
 {
+       UNIMPLEMENTED;
        return FALSE;
 }
 
@@ -244,6 +245,7 @@ FsRtlCopyWrite (
        IN      PDEVICE_OBJECT          DeviceObject
        )
 {
+       UNIMPLEMENTED;
        return FALSE;
 }
 
@@ -341,12 +343,11 @@ FsRtlInsertPerFileObjectContext (
  */
 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 @@ FsRtlPostPagingFileStackOverflow (
  */
 VOID
 STDCALL
-FsRtlPostStackOverflow (
-       DWORD   Unknown0,
-       DWORD   Unknown1,
-       DWORD   Unknown2
-       )
+FsRtlPostStackOverflow (IN PVOID Context, 
+                        IN PKEVENT Event, 
+                        IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine) 
 {
+    UNIMPLEMENTED;
 }