mirror of
https://github.com/reactos/reactos.git
synced 2025-05-07 18:56:48 +00:00
Fix FsRtl function prototypes
svn path=/trunk/; revision=13166
This commit is contained in:
parent
1afa98bcff
commit
0b7bbeea36
5 changed files with 60 additions and 96 deletions
|
@ -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’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.
|
||||
|
||||
*/
|
||||
|
||||
|
@ -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*/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue