mirror of
https://github.com/reactos/reactos.git
synced 2024-07-30 08:08:56 +00:00
FSRTL Types and Prototypes Added.
svn path=/trunk/; revision=9820
This commit is contained in:
parent
f737c1e98a
commit
9467b632c1
|
@ -1,6 +1,6 @@
|
|||
#ifndef __INCLUDE_DDK_FSFUNCS_H
|
||||
#define __INCLUDE_DDK_FSFUNCS_H
|
||||
/* $Id: fsfuncs.h,v 1.22 2003/12/17 20:27:06 ekohl Exp $ */
|
||||
/* $Id: fsfuncs.h,v 1.23 2004/06/23 00:41:55 ion Exp $ */
|
||||
#define FlagOn(x,f) ((x) & (f))
|
||||
|
||||
#include <ntos/fstypes.h>
|
||||
|
@ -12,6 +12,12 @@ FsRtlFreeFileLock(
|
|||
IN PFILE_LOCK FileLock
|
||||
);
|
||||
|
||||
STDCALL
|
||||
VOID
|
||||
FsRtlAcquireFileExclusive (
|
||||
IN PFILE_OBJECT FileObject
|
||||
);
|
||||
|
||||
PFILE_LOCK
|
||||
STDCALL
|
||||
FsRtlAllocateFileLock (
|
||||
|
@ -257,6 +263,19 @@ FsRtlGetNextMcbEntry (IN PMCB Mcb,
|
|||
OUT PULONG SectorCount);
|
||||
#define FsRtlEnterFileSystem KeEnterCriticalRegion
|
||||
#define FsRtlExitFileSystem KeLeaveCriticalRegion
|
||||
|
||||
VOID
|
||||
FsRtlIncrementCcFastReadNotPossible( VOID );
|
||||
|
||||
VOID
|
||||
FsRtlIncrementCcFastReadWait( VOID );
|
||||
|
||||
VOID
|
||||
FsRtlIncrementCcFastReadNoWait( VOID );
|
||||
|
||||
VOID
|
||||
FsRtlIncrementCcFastReadResourceMiss( VOID );
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
FsRtlInitializeFileLock (
|
||||
|
@ -276,11 +295,27 @@ FsRtlInitializeMcb (IN PMCB Mcb,
|
|||
VOID STDCALL
|
||||
FsRtlInitializeOplock(IN OUT POPLOCK Oplock);
|
||||
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
FsRtlInitializeTunnelCache (
|
||||
IN PTUNNEL Cache
|
||||
);
|
||||
|
||||
STDCALL
|
||||
NTSTATUS
|
||||
FsRtlInsertPerFileObjectContext (
|
||||
IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
|
||||
IN PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/ Ptr
|
||||
);
|
||||
|
||||
STDCALL
|
||||
NTSTATUS
|
||||
FsRtlInsertPerStreamContext (
|
||||
IN PFSRTL_ADVANCED_FCB_HEADER PerStreamContext,
|
||||
IN PFSRTL_PER_STREAM_CONTEXT Ptr
|
||||
);
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
FsRtlIsDbcsInExpression (
|
||||
|
@ -317,6 +352,11 @@ FsRtlIsNameInExpression (
|
|||
BOOLEAN STDCALL
|
||||
FsRtlIsNtstatusExpected(IN NTSTATUS NtStatus);
|
||||
|
||||
ULONG
|
||||
FsRtlIsPagingFile (
|
||||
IN PFILE_OBJECT FileObject
|
||||
);
|
||||
|
||||
BOOLEAN STDCALL
|
||||
FsRtlIsTotalDeviceFailure(IN NTSTATUS NtStatus);
|
||||
|
||||
|
@ -339,6 +379,14 @@ BOOLEAN STDCALL
|
|||
FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||
OUT PLONGLONG Vbn,
|
||||
OUT PLONGLONG Lbn);
|
||||
STDCALL
|
||||
BOOLEAN
|
||||
FsRtlLookupLastLargeMcbEntryAndIndex (
|
||||
IN PLARGE_MCB OpaqueMcb,
|
||||
OUT PLONGLONG LargeVbn,
|
||||
OUT PLONGLONG LargeLbn,
|
||||
OUT PULONG Index
|
||||
);
|
||||
|
||||
BOOLEAN STDCALL
|
||||
FsRtlLookupLastMcbEntry (IN PMCB Mcb,
|
||||
|
@ -350,6 +398,21 @@ FsRtlLookupMcbEntry (IN PMCB Mcb,
|
|||
OUT PLBN Lbn,
|
||||
OUT PULONG SectorCount OPTIONAL,
|
||||
OUT PULONG Index);
|
||||
STDCALL
|
||||
PFSRTL_PER_STREAM_CONTEXT
|
||||
FsRtlLookupPerStreamContextInternal (
|
||||
IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
|
||||
IN PVOID OwnerId OPTIONAL,
|
||||
IN PVOID InstanceId OPTIONAL
|
||||
);
|
||||
|
||||
STDCALL
|
||||
PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
|
||||
FsRtlLookupPerFileObjectContext (
|
||||
IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
|
||||
IN PVOID OwnerId OPTIONAL,
|
||||
IN PVOID InstanceId OPTIONAL
|
||||
);
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
|
@ -424,6 +487,36 @@ BOOLEAN (*PCHECK_FOR_TRAVERSE_ACCESS) (
|
|||
IN PVOID TargetContext,
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext
|
||||
);
|
||||
STDCALL
|
||||
VOID
|
||||
FsRtlNotifyFilterChangeDirectory (
|
||||
IN PNOTIFY_SYNC NotifySync,
|
||||
IN PLIST_ENTRY NotifyList,
|
||||
IN PVOID FsContext,
|
||||
IN PSTRING FullDirectoryName,
|
||||
IN BOOLEAN WatchTree,
|
||||
IN BOOLEAN IgnoreBuffer,
|
||||
IN ULONG CompletionFilter,
|
||||
IN PIRP NotifyIrp,
|
||||
IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL,
|
||||
IN PFILTER_REPORT_CHANGE FilterCallback OPTIONAL
|
||||
);
|
||||
|
||||
STDCALL
|
||||
VOID
|
||||
FsRtlNotifyFilterReportChange (
|
||||
IN PNOTIFY_SYNC NotifySync,
|
||||
IN PLIST_ENTRY NotifyList,
|
||||
IN PSTRING FullTargetName,
|
||||
IN USHORT TargetNameOffset,
|
||||
IN PSTRING StreamName OPTIONAL,
|
||||
IN PSTRING NormalizedParentName OPTIONAL,
|
||||
IN ULONG FilterMatch,
|
||||
IN ULONG Action,
|
||||
IN PVOID TargetContext,
|
||||
IN PVOID FilterContext
|
||||
);
|
||||
VOID
|
||||
STDCALL
|
||||
FsRtlNotifyFullChangeDirectory (
|
||||
|
@ -551,11 +644,24 @@ FsRtlProcessFileLock (
|
|||
IN PVOID Context OPTIONAL
|
||||
);
|
||||
|
||||
STDCALL
|
||||
NTSTATUS
|
||||
FsRtlRegisterFileSystemFilterCallbacks (
|
||||
IN struct _DRIVER_OBJECT *FilterDriverObject,
|
||||
IN PFS_FILTER_CALLBACKS Callbacks
|
||||
);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
FsRtlRegisterUncProvider(IN OUT PHANDLE Handle,
|
||||
IN PUNICODE_STRING RedirectorDeviceName,
|
||||
IN BOOLEAN MailslotsSupported);
|
||||
|
||||
STDCALL
|
||||
VOID
|
||||
FsRtlReleaseFile (
|
||||
IN PFILE_OBJECT FileObject
|
||||
);
|
||||
|
||||
VOID STDCALL
|
||||
FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||
IN LONGLONG Vbn,
|
||||
|
@ -566,6 +672,29 @@ FsRtlRemoveMcbEntry (IN PMCB Mcb,
|
|||
IN VBN Vbn,
|
||||
IN ULONG SectorCount);
|
||||
|
||||
STDCALL
|
||||
PFSRTL_PER_STREAM_CONTEXT
|
||||
FsRtlRemovePerStreamContext (
|
||||
IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
|
||||
IN PVOID OwnerId OPTIONAL,
|
||||
IN PVOID InstanceId OPTIONAL
|
||||
);
|
||||
|
||||
STDCALL
|
||||
PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
|
||||
FsRtlRemovePerFileObjectContext (
|
||||
IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
|
||||
IN PVOID OwnerId OPTIONAL,
|
||||
IN PVOID InstanceId OPTIONAL
|
||||
);
|
||||
|
||||
STDCALL
|
||||
VOID
|
||||
FsRtlResetLargeMcb (
|
||||
IN PLARGE_MCB Mcb,
|
||||
IN BOOLEAN SelfSynchronized
|
||||
);
|
||||
|
||||
BOOLEAN STDCALL
|
||||
FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
|
||||
IN LONGLONG Vbn,
|
||||
|
@ -579,6 +708,12 @@ FsRtlSyncVolumes (
|
|||
DWORD Unknown2
|
||||
);
|
||||
|
||||
STDCALL
|
||||
VOID
|
||||
FsRtlTeardownPerStreamContexts (
|
||||
IN PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader
|
||||
);
|
||||
|
||||
VOID STDCALL
|
||||
FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
|
||||
IN LONGLONG Vbn);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef __INCLUDE_DDK_FSTYPES_H
|
||||
#define __INCLUDE_DDK_FSTYPES_H
|
||||
/* $Id: fstypes.h,v 1.15 2004/03/18 16:19:25 weiden Exp $ */
|
||||
/* $Id: fstypes.h,v 1.16 2004/06/23 00:41:55 ion Exp $ */
|
||||
|
||||
#ifndef __USE_W32API
|
||||
|
||||
|
@ -35,6 +35,90 @@ typedef VOID (*PUNLOCK_ROUTINE) (
|
|||
IN PFILE_LOCK_INFO FileLockInfo
|
||||
);
|
||||
|
||||
typedef
|
||||
BOOLEAN (*PFILTER_REPORT_CHANGE) (
|
||||
IN PVOID NotifyContext,
|
||||
IN PVOID FilterContext
|
||||
);
|
||||
|
||||
typedef enum _FS_FILTER_SECTION_SYNC_TYPE {
|
||||
SyncTypeOther = 0,
|
||||
SyncTypeCreateSection
|
||||
} FS_FILTER_SECTION_SYNC_TYPE, *PFS_FILTER_SECTION_SYNC_TYPE;
|
||||
|
||||
typedef union _FS_FILTER_PARAMETERS {
|
||||
|
||||
/* AcquireForModifiedPageWriter */
|
||||
struct {
|
||||
PLARGE_INTEGER EndingOffset;
|
||||
} AcquireForModifiedPageWriter;
|
||||
|
||||
/* ReleaseForModifiedPageWriter */
|
||||
struct {
|
||||
PERESOURCE ResourceToRelease;
|
||||
} ReleaseForModifiedPageWriter;
|
||||
|
||||
/* AcquireForSectionSynchronization */
|
||||
struct {
|
||||
FS_FILTER_SECTION_SYNC_TYPE SyncType;
|
||||
ULONG PageProtection;
|
||||
} AcquireForSectionSynchronization;
|
||||
|
||||
/* Other */
|
||||
struct {
|
||||
PVOID Argument1;
|
||||
PVOID Argument2;
|
||||
PVOID Argument3;
|
||||
PVOID Argument4;
|
||||
PVOID Argument5;
|
||||
} Others;
|
||||
|
||||
} FS_FILTER_PARAMETERS, *PFS_FILTER_PARAMETERS;
|
||||
|
||||
typedef struct _FS_FILTER_CALLBACK_DATA {
|
||||
|
||||
ULONG SizeOfFsFilterCallbackData;
|
||||
UCHAR Operation;
|
||||
UCHAR Reserved;
|
||||
struct _DEVICE_OBJECT *DeviceObject;
|
||||
struct _FILE_OBJECT *FileObject;
|
||||
FS_FILTER_PARAMETERS Parameters;
|
||||
|
||||
} FS_FILTER_CALLBACK_DATA, *PFS_FILTER_CALLBACK_DATA;
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(*PFS_FILTER_CALLBACK) (
|
||||
IN PFS_FILTER_CALLBACK_DATA Data,
|
||||
OUT PVOID *CompletionContext
|
||||
);
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(*PFS_FILTER_COMPLETION_CALLBACK) (
|
||||
IN PFS_FILTER_CALLBACK_DATA Data,
|
||||
IN NTSTATUS OperationStatus,
|
||||
IN PVOID CompletionContext
|
||||
);
|
||||
|
||||
typedef struct _FS_FILTER_CALLBACKS {
|
||||
|
||||
ULONG SizeOfFsFilterCallbacks;
|
||||
ULONG Reserved;
|
||||
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization;
|
||||
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization;
|
||||
PFS_FILTER_CALLBACK PreReleaseForSectionSynchronization;
|
||||
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForSectionSynchronization;
|
||||
PFS_FILTER_CALLBACK PreAcquireForCcFlush;
|
||||
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForCcFlush;
|
||||
PFS_FILTER_CALLBACK PreReleaseForCcFlush;
|
||||
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForCcFlush;
|
||||
PFS_FILTER_CALLBACK PreAcquireForModifiedPageWriter;
|
||||
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForModifiedPageWriter;
|
||||
PFS_FILTER_CALLBACK PreReleaseForModifiedPageWriter;
|
||||
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter;
|
||||
|
||||
} FS_FILTER_CALLBACKS, *PFS_FILTER_CALLBACKS;
|
||||
|
||||
typedef struct _FILE_LOCK {
|
||||
PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine;
|
||||
|
@ -71,6 +155,21 @@ typedef struct _NOTIFY_SYNC
|
|||
} NOTIFY_SYNC, * PNOTIFY_SYNC;
|
||||
|
||||
|
||||
typedef struct _FSRTL_ADVANCED_FCB_HEADER {
|
||||
FSRTL_COMMON_FCB_HEADER Header;
|
||||
PFAST_MUTEX FastMutex;
|
||||
LIST_ENTRY FilterContexts;
|
||||
} FSRTL_ADVANCED_FCB_HEADER;
|
||||
|
||||
typedef FSRTL_ADVANCED_FCB_HEADER *PFSRTL_ADVANCED_FCB_HEADER;
|
||||
|
||||
typedef struct _FSRTL_PER_STREAM_CONTEXT {
|
||||
LIST_ENTRY Links;
|
||||
PVOID OwnerId;
|
||||
PVOID InstanceId;
|
||||
PFREE_FUNCTION FreeCallback;
|
||||
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
|
||||
|
||||
typedef VOID
|
||||
(*POPLOCK_WAIT_COMPLETE_ROUTINE)(PVOID Context,
|
||||
PIRP Irp);
|
||||
|
|
Loading…
Reference in a new issue