|
#define | RFSD_CALLBACK(name) NTSTATUS(* name )(ULONG BlockNumber, PVOID pContext) |
|
#define | RFSD_NAME_LEN 255 |
|
#define | SUPER_BLOCK_OFFSET REISERFS_DISK_OFFSET_IN_BYTES |
|
#define | SUPER_BLOCK_SIZE sizeof(RFSD_SUPER_BLOCK) |
|
#define | RFSD_ROOT_PARENT_ID 1 |
|
#define | RFSD_ROOT_OBJECT_ID 2 |
|
#define | RFSD_IS_ROOT_KEY(x) (x.k_dir_id == RFSD_ROOT_PARENT_ID && x.k_objectid == RFSD_ROOT_OBJECT_ID) |
|
#define | RFSD_IS_PTR_TO_ROOT_KEY(x) (x->k_dir_id == RFSD_ROOT_PARENT_ID && x->k_objectid == RFSD_ROOT_OBJECT_ID) |
|
#define | RFSD_KEY_VERSION_1 0 |
|
#define | RFSD_KEY_VERSION_2 1 |
|
#define | RFSD_KEY_VERSION_UNKNOWN 7 |
|
#define | RFSD_KEYS_MATCH 0 |
|
#define | RFSD_KEY_SMALLER -1 |
|
#define | RFSD_KEY_LARGER 1 |
|
#define | RFSD_LEAF_BLOCK_LEVEL 1 |
|
#define | DbgBreak() DbgPrint("rfsd: breakpoint ignored.\n") |
|
#define | RFSD_VERSION "0.26" |
|
#define | RFSD_READ_ONLY TRUE |
|
#define | RFSD_UNLOAD TRUE |
|
#define | RFSD_POOL_TAG 'dsfR' |
|
#define | RFSD_BLOCK_TYPES (0x04) |
|
#define | MAXIMUM_RECORD_LENGTH (0x10000) |
|
#define | SECTOR_BITS (Vcb->SectorBits) |
|
#define | SECTOR_SIZE (Vcb->DiskGeometry.BytesPerSector) |
|
#define | DEFAULT_SECTOR_SIZE (0x200) |
|
#define | READ_AHEAD_GRANULARITY (0x10000) |
|
#define | SUPER_BLOCK (Vcb->SuperBlock) |
|
#define | BLOCK_SIZE (Vcb->BlockSize) |
|
#define | BLOCK_BITS (SUPER_BLOCK->s_log_block_size + 10) |
|
#define | INODES_COUNT (Vcb->SuperBlock->s_inodes_count) |
|
#define | INODES_PER_GROUP (SUPER_BLOCK->s_inodes_per_group) |
|
#define | BLOCKS_PER_GROUP (SUPER_BLOCK->s_blocks_per_group) |
|
#define | TOTAL_BLOCKS (SUPER_BLOCK->s_blocks_count) |
|
#define | RFSD_FIRST_DATA_BLOCK (SUPER_BLOCK->s_first_data_block) |
|
#define | CEILING_ALIGNED(A, B) (((A) + (B) - 1) & (~((B) - 1))) |
|
#define | __STR2__(x) #x |
|
#define | __STR1__(x) __STR2__(x) |
|
#define | __SLINE__ __STR1__(__LINE__) |
|
#define | DRIVER_NAME "Rfsd" |
|
#define | DEVICE_NAME L"\\Rfsd" |
|
#define | PARAMETERS_KEY L"\\Parameters" |
|
#define | WRITING_SUPPORT L"WritingSupport" |
|
#define | CHECKING_BITMAP L"CheckingBitmap" |
|
#define | EXT3_FORCEWRITING L"Ext3ForceWriting" |
|
#define | EXT3_CODEPAGE L"CodePage" |
|
#define | SetFlag(x, f) ((x) |= (f)) |
|
#define | ClearFlag(x, f) ((x) &= ~(f)) |
|
#define | IsFlagOn(a, b) ((BOOLEAN)(FlagOn(a,b) == b)) |
|
#define | RfsdRaiseStatus(IRPCONTEXT, STATUS) |
|
#define | RfsdNormalizeAndRaiseStatus(IRPCONTEXT, STATUS) |
|
#define | FILE_WRITE_TO_END_OF_FILE 0xffffffff |
|
#define | FILE_USE_FILE_POINTER_POSITION 0xfffffffe |
|
#define | IsEndOfFile(Pos) |
|
#define | IsDirectory(Fcb) IsFlagOn(Fcb->RfsdMcb->FileAttr, FILE_ATTRIBUTE_DIRECTORY) |
|
#define | RFSD_FILE_SYSTEM (FILE_SYSTEM) |
|
#define | RFSD_BUGCHK_BLOCK (0x00010000) |
|
#define | RFSD_BUGCHK_CLEANUP (0x00020000) |
|
#define | RFSD_BUGCHK_CLOSE (0x00030000) |
|
#define | RFSD_BUGCHK_CMCB (0x00040000) |
|
#define | RFSD_BUGCHK_CREATE (0x00050000) |
|
#define | RFSD_BUGCHK_DEBUG (0x00060000) |
|
#define | RFSD_BUGCHK_DEVCTL (0x00070000) |
|
#define | RFSD_BUGCHK_DIRCTL (0x00080000) |
|
#define | RFSD_BUGCHK_DISPATCH (0x00090000) |
|
#define | RFSD_BUGCHK_EXCEPT (0x000A0000) |
|
#define | RFSD_BUGCHK_RFSD (0x000B0000) |
|
#define | RFSD_BUGCHK_FASTIO (0x000C0000) |
|
#define | RFSD_BUGCHK_FILEINFO (0x000D0000) |
|
#define | RFSD_BUGCHK_FLUSH (0x000E0000) |
|
#define | RFSD_BUGCHK_FSCTL (0x000F0000) |
|
#define | RFSD_BUGCHK_INIT (0x00100000) |
|
#define | RFSD_BUGCHK_LOCK (0x0011000) |
|
#define | RFSD_BUGCHK_MEMORY (0x0012000) |
|
#define | RFSD_BUGCHK_MISC (0x0013000) |
|
#define | RFSD_BUGCHK_READ (0x00140000) |
|
#define | RFSD_BUGCHK_SHUTDOWN (0x00150000) |
|
#define | RFSD_BUGCHK_VOLINFO (0x00160000) |
|
#define | RFSD_BUGCHK_WRITE (0x00170000) |
|
#define | RFSD_BUGCHK_LAST (0x00170000) |
|
#define | RfsdBugCheck(A, B, C, D) { KeBugCheckEx(RFSD_FILE_SYSTEM, A | __LINE__, B, C, D ); } |
|
#define | RFSD_MIN_BLOCK 1024 |
|
#define | RFSD_MIN_FRAG 1024 |
|
#define | S_IFMT 0x0F000 /* 017 0000 */ |
|
#define | S_IFSOCK 0x0C000 /* 014 0000 */ |
|
#define | S_IFLNK 0x0A000 /* 012 0000 */ |
|
#define | S_IFREG 0x08000 /* 010 0000 */ |
|
#define | S_IFBLK 0x06000 /* 006 0000 */ |
|
#define | S_IFDIR 0x04000 /* 004 0000 */ |
|
#define | S_IFCHR 0x02000 /* 002 0000 */ |
|
#define | S_IFIFO 0x01000 /* 001 0000 */ |
|
#define | S_ISUID 0x00800 /* 000 4000 */ |
|
#define | S_ISGID 0x00400 /* 000 2000 */ |
|
#define | S_ISVTX 0x00200 /* 000 1000 */ |
|
#define | S_ISREG(m) (((m) & S_IFMT) == S_IFREG) |
|
#define | S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) |
|
#define | S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) |
|
#define | S_ISFIL(m) (((m) & S_IFMT) == S_IFFIL) |
|
#define | S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) |
|
#define | S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) |
|
#define | S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) |
|
#define | S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) |
|
#define | S_IPERMISSION_MASK 0x1FF /* */ |
|
#define | S_IRWXU 0x1C0 /* 0 0700 */ |
|
#define | S_IRUSR 0x100 /* 0 0400 */ |
|
#define | S_IWUSR 0x080 /* 0 0200 */ |
|
#define | S_IXUSR 0x040 /* 0 0100 */ |
|
#define | S_IRWXG 0x038 /* 0 0070 */ |
|
#define | S_IRGRP 0x020 /* 0 0040 */ |
|
#define | S_IWGRP 0x010 /* 0 0020 */ |
|
#define | S_IXGRP 0x008 /* 0 0010 */ |
|
#define | S_IRWXO 0x007 /* 0 0007 */ |
|
#define | S_IROTH 0x004 /* 0 0004 */ |
|
#define | S_IWOTH 0x002 /* 0 0002 */ |
|
#define | S_IXOTH 0x001 /* 0 0001 */ |
|
#define | S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO) |
|
#define | S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO) |
|
#define | S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH) |
|
#define | S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH) |
|
#define | S_IXUGO (S_IXUSR|S_IXGRP|S_IXOTH) |
|
#define | S_ISREADABLE(m) (((m) & S_IPERMISSION_MASK) == (S_IRUSR | S_IRGRP | S_IROTH)) |
|
#define | S_ISWRITABLE(m) (((m) & S_IPERMISSION_MASK) == (S_IWUSR | S_IWGRP | S_IWOTH)) |
|
#define | RfsdSetReadable(m) (m) = ((m) | (S_IRUSR | S_IRGRP | S_IROTH)) |
|
#define | RfsdSetWritable(m) (m) = ((m) | (S_IWUSR | S_IWGRP | S_IWOTH)) |
|
#define | RfsdSetReadOnly(m) (m) = ((m) & (~(S_IWUSR | S_IWGRP | S_IWOTH))) |
|
#define | RfsdIsReadOnly(m) (!((m) & (S_IWUSR | S_IWGRP | S_IWOTH))) |
|
#define | I_DIRTY_SYNC 1 /* Not dirty enough for O_DATASYNC */ |
|
#define | I_DIRTY_DATASYNC 2 /* Data-related inode changes pending */ |
|
#define | I_DIRTY_PAGES 4 /* Data-related inode changes pending */ |
|
#define | I_LOCK 8 |
|
#define | I_FREEING 16 |
|
#define | I_CLEAR 32 |
|
#define | I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES) |
|
#define | NodeType(Ptr) (*((RFSD_IDENTIFIER_TYPE *)(Ptr))) |
|
#define | RFSD_REPINNED_BCBS_ARRAY_SIZE (8) |
|
#define | CODEPAGE_MAXLEN 0x20 |
|
#define | PAGE_TABLE RfsdGlobal->CodePage.PageTable |
|
#define | RFSD_UNLOAD_PENDING 0x00000001 |
|
#define | RFSD_SUPPORT_WRITING 0x00000002 |
|
#define | EXT3_FORCE_WRITING 0x00000004 |
|
#define | RFSD_CHECKING_BITMAP 0x00000008 |
|
#define | VCB_INITIALIZED 0x00000001 |
|
#define | VCB_VOLUME_LOCKED 0x00000002 |
|
#define | VCB_MOUNTED 0x00000004 |
|
#define | VCB_DISMOUNT_PENDING 0x00000008 |
|
#define | VCB_READ_ONLY 0x00000010 |
|
#define | VCB_WRITE_PROTECTED 0x10000000 |
|
#define | VCB_FLOPPY_DISK 0x20000000 |
|
#define | VCB_REMOVAL_PREVENTED 0x40000000 |
|
#define | VCB_REMOVABLE_MEDIA 0x80000000 |
|
#define | IsMounted(Vcb) (IsFlagOn(Vcb->Flags, VCB_MOUNTED)) |
|
#define | FCB_FROM_POOL 0x00000001 |
|
#define | FCB_PAGE_FILE 0x00000002 |
|
#define | FCB_DELETE_ON_CLOSE 0x00000004 |
|
#define | FCB_DELETE_PENDING 0x00000008 |
|
#define | FCB_FILE_DELETED 0x00000010 |
|
#define | FCB_FILE_MODIFIED 0x00000020 |
|
#define | MCB_FROM_POOL 0x00000001 |
|
#define | MCB_IN_TREE 0x00000002 |
|
#define | MCB_IN_USE 0x00000004 |
|
#define | IsMcbUsed(Mcb) IsFlagOn(Mcb->Flags, MCB_IN_USE) |
|
#define | CCB_FROM_POOL 0x00000001 |
|
#define | CCB_ALLOW_EXTENDED_DASD_IO 0x80000000 |
|
#define | IRP_CONTEXT_FLAG_FROM_POOL (0x00000001) |
|
#define | IRP_CONTEXT_FLAG_WAIT (0x00000002) |
|
#define | IRP_CONTEXT_FLAG_WRITE_THROUGH (0x00000004) |
|
#define | IRP_CONTEXT_FLAG_FLOPPY (0x00000008) |
|
#define | IRP_CONTEXT_FLAG_RECURSIVE_CALL (0x00000010) |
|
#define | IRP_CONTEXT_FLAG_DISABLE_POPUPS (0x00000020) |
|
#define | IRP_CONTEXT_FLAG_DEFERRED (0x00000040) |
|
#define | IRP_CONTEXT_FLAG_VERIFY_READ (0x00000080) |
|
#define | IRP_CONTEXT_STACK_IO_CONTEXT (0x00000100) |
|
#define | IRP_CONTEXT_FLAG_REQUEUED (0x00000200) |
|
#define | IRP_CONTEXT_FLAG_USER_IO (0x00000400) |
|
#define | IRP_CONTEXT_FLAG_DELAY_CLOSE (0x00000800) |
|
#define | CanRfsdWait(IRP) IoIsOperationSynchronous(Irp) |
|
#define | max(a, b) (((a) > (b)) ? (a) : (b)) |
|
#define | min(a, b) (((a) < (b)) ? (a) : (b)) |
|
#define | DBG_VITAL 0 |
|
#define | DBG_ERROR 1 |
|
#define | DBG_USER 2 |
|
#define | DBG_TRACE 3 |
|
#define | DBG_INFO 4 |
|
#define | DBG_FUNC 5 |
|
#define | RfsdPrint(arg) |
|
#define | RfsdPrintNoIndent(arg) |
|
#define | RfsdCompleteRequest(Irp, bPrint, PriorityBoost) IoCompleteRequest(Irp, PriorityBoost) |
|
#define | RfsdGetCurrentProcessName() |
|
|
NTSTATUS | RfsdFindItemHeaderInBlock (IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY pKey, IN PUCHAR pBlockBuffer, OUT PRFSD_ITEM_HEAD *ppTargetItemHeader, IN RFSD_KEY_COMPARISON(*fpComparisonFunction)(PRFSD_KEY_IN_MEMORY, PRFSD_KEY_IN_MEMORY)) |
|
NTSTATUS | RfsdLoadItem (IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY pItemKey, OUT PRFSD_ITEM_HEAD *ppMatchingItemHeader, OUT PUCHAR *ppItemBuffer, OUT PUCHAR *ppBlockBuffer, OUT PULONG pBlockNumber, IN RFSD_KEY_COMPARISON(*fpComparisonFunction)(PRFSD_KEY_IN_MEMORY, PRFSD_KEY_IN_MEMORY)) |
|
NTSTATUS | RfsdLockUserBuffer (IN PIRP Irp, IN ULONG Length, IN LOCK_OPERATION Operation) |
|
PVOID | RfsdGetUserBuffer (IN PIRP Irp) |
|
NTSTATUS | RfsdReadWriteBlocks (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_BDL RfsdBDL, IN ULONG Length, IN ULONG Count, IN BOOLEAN bVerify) |
|
PUCHAR | RfsdAllocateAndLoadBlock (IN PRFSD_VCB Vcb, IN ULONG BlockIndex) |
|
NTSTATUS | RfsdReadSync (IN PRFSD_VCB Vcb, IN ULONGLONG Offset, IN ULONG Length, OUT PVOID Buffer, IN BOOLEAN bVerify) |
|
NTSTATUS | RfsdReadDisk (IN PRFSD_VCB Vcb, IN ULONGLONG Offset, IN ULONG Size, IN PVOID Buffer, IN BOOLEAN bVerify) |
|
NTSTATUS | RfsdDiskIoControl (IN PDEVICE_OBJECT DeviceOjbect, IN ULONG IoctlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, IN OUT PVOID OutputBuffer, IN OUT PULONG OutputBufferSize) |
|
VOID | RfsdMediaEjectControl (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN BOOLEAN bPrevent) |
|
NTSTATUS | RfsdDiskShutDown (PRFSD_VCB Vcb) |
|
NTSTATUS | RfsdCleanup (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdClose (IN PRFSD_IRP_CONTEXT IrpContext) |
|
VOID | RfsdQueueCloseRequest (IN PRFSD_IRP_CONTEXT IrpContext) |
|
VOID NTAPI | RfsdDeQueueCloseRequest (IN PVOID Context) |
|
BOOLEAN NTAPI | RfsdAcquireForLazyWrite (IN PVOID Context, IN BOOLEAN Wait) |
|
VOID NTAPI | RfsdReleaseFromLazyWrite (IN PVOID Context) |
|
BOOLEAN NTAPI | RfsdAcquireForReadAhead (IN PVOID Context, IN BOOLEAN Wait) |
|
BOOLEAN NTAPI | RfsdNoOpAcquire (IN PVOID Fcb, IN BOOLEAN Wait) |
|
VOID NTAPI | RfsdNoOpRelease (IN PVOID Fcb) |
|
VOID NTAPI | RfsdReleaseFromReadAhead (IN PVOID Context) |
|
PRFSD_FCB | RfsdSearchFcbList (IN PRFSD_VCB Vcb, IN ULONG inode) |
|
NTSTATUS | RfsdScanDir (IN PRFSD_VCB Vcb, IN PRFSD_MCB ParentMcb, IN PUNICODE_STRING FileName, IN OUT PULONG Index, IN OUT PRFSD_DENTRY_HEAD rfsd_dir) |
|
NTSTATUS | RfsdLookupFileName (IN PRFSD_VCB Vcb, IN PUNICODE_STRING FullFileName, IN PRFSD_MCB ParentMcb, OUT PRFSD_MCB *RfsdMcb, IN OUT PRFSD_INODE Inode) |
|
NTSTATUS | RfsdCreateFile (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb) |
|
NTSTATUS | RfsdCreateVolume (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb) |
|
NTSTATUS | RfsdCreate (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdCreateInode (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_FCB pParentFcb, IN ULONG Type, IN ULONG FileAttr, IN PUNICODE_STRING FileName) |
|
NTSTATUS | RfsdSupersedeOrOverWriteFile (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_FCB Fcb, IN ULONG Disposition) |
|
VOID __cdecl | RfsdPrintf (LONG DebugPrintLevel, PCHAR DebugMessage,...) |
|
VOID __cdecl | RfsdNIPrintf (LONG DebugPrintLevel, PCHAR DebugMessage,...) |
|
ULONG | RfsdGetProcessNameOffset (VOID) |
|
VOID | RfsdDbgPrintCall (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
|
VOID | RfsdDbgPrintComplete (IN PIRP Irp, IN BOOLEAN bPrint) |
|
PUCHAR | RfsdNtStatusToString (IN NTSTATUS Status) |
|
NTSTATUS | RfsdDeviceControlNormal (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdPrepareToUnload (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdDeviceControl (IN PRFSD_IRP_CONTEXT IrpContext) |
|
ULONG | RfsdGetInfoLength (IN FILE_INFORMATION_CLASS FileInformationClass) |
|
ULONG | RfsdProcessDirEntry (IN PRFSD_VCB Vcb, IN FILE_INFORMATION_CLASS FileInformationClass, IN __u32 Key_ParentID, IN __u32 Key_ObjectID, IN PVOID Buffer, IN ULONG UsedLength, IN ULONG Length, IN ULONG FileIndex, IN PUNICODE_STRING pName, IN BOOLEAN Single, IN PVOID pPreviousEntry) |
|
NTSTATUS | RfsdQueryDirectory (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdNotifyChangeDirectory (IN PRFSD_IRP_CONTEXT IrpContext) |
|
VOID | RfsdNotifyReportChange (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_FCB Fcb, IN ULONG Filter, IN ULONG Action) |
|
NTSTATUS | RfsdDirectoryControl (IN PRFSD_IRP_CONTEXT IrpContext) |
|
BOOLEAN | RfsdIsDirectoryEmpty (IN PRFSD_VCB Vcb, IN PRFSD_FCB Fcb) |
|
NTSTATUS | RfsdQueueRequest (IN PRFSD_IRP_CONTEXT IrpContext) |
|
VOID NTAPI | RfsdDeQueueRequest (IN PVOID Context) |
|
NTSTATUS | RfsdDispatchRequest (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS NTAPI | RfsdBuildRequest (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
|
NTSTATUS | RfsdExceptionFilter (IN PRFSD_IRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer) |
|
NTSTATUS | RfsdExceptionHandler (IN PRFSD_IRP_CONTEXT IrpContext) |
|
PRFSD_SUPER_BLOCK | RfsdLoadSuper (IN PRFSD_VCB Vcb, IN BOOLEAN bVerify) |
|
BOOLEAN | RfsdSaveSuper (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb) |
|
BOOLEAN | RfsdLoadGroup (IN PRFSD_VCB Vcb) |
|
BOOLEAN | RfsdSaveGroup (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN ULONG Group) |
|
BOOLEAN | RfsdGetInodeLba (IN PRFSD_VCB Vcb, IN __u32 DirectoryID, IN __u32 ParentID, OUT PLONGLONG offset) |
|
BOOLEAN | RfsdLoadInode (IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY pKey, IN OUT PRFSD_INODE Inode) |
|
BOOLEAN | RfsdLoadInode2 (IN PRFSD_VCB Vcb, IN __u32 a, IN __u32 b, IN OUT PRFSD_INODE Inode) |
|
BOOLEAN | RfsdSaveInode (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN ULONG inode, IN PRFSD_INODE Inode) |
|
BOOLEAN | RfsdLoadBlock (IN PRFSD_VCB Vcb, IN ULONG dwBlk, IN PVOID Buffer) |
|
BOOLEAN | RfsdSaveBlock (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN ULONG dwBlk, IN PVOID Buf) |
|
BOOLEAN | RfsdSaveBuffer (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN LONGLONG Offset, IN ULONG Size, IN PVOID Buf) |
|
NTSTATUS | RfsdGetBlock (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN ULONG dwContent, IN ULONG Index, IN ULONG Layer, IN BOOLEAN bAlloc, OUT PULONG pBlock) |
|
NTSTATUS | RfsdBlockMap (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN ULONG InodeNo, IN PRFSD_INODE Inode, IN ULONG Index, IN BOOLEAN bAlloc, OUT PULONG pBlock) |
|
NTSTATUS | RfsdBuildBDL2 (IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY pKey, IN PRFSD_INODE pInode, OUT PULONG out_Count, OUT PRFSD_BDL *out_ppBdl) |
|
NTSTATUS | RfsdBuildBDL (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY InodeNo, IN PRFSD_INODE Inode, IN ULONGLONG Offset, IN ULONG Size, IN BOOLEAN bAlloc, OUT PRFSD_BDL *Bdls, OUT PULONG Count) |
|
NTSTATUS | RfsdNewBlock (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, ULONG GroupHint, ULONG BlockHint, PULONG dwRet) |
|
NTSTATUS | RfsdFreeBlock (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, ULONG Block) |
|
NTSTATUS | RfsdExpandBlock (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, PRFSD_FCB Fcb, ULONG dwContent, ULONG Index, ULONG layer, BOOLEAN bNew, ULONG *dwRet) |
|
NTSTATUS | RfsdExpandInode (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, PRFSD_FCB Fcb, ULONG *dwRet) |
|
NTSTATUS | RfsdNewInode (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, ULONG GroupHint, ULONG mode, PULONG Inode) |
|
BOOLEAN | RfsdFreeInode (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, ULONG Inode, ULONG Type) |
|
NTSTATUS | RfsdAddEntry (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_FCB Dcb, IN ULONG FileType, IN ULONG Inode, IN PUNICODE_STRING FileName) |
|
NTSTATUS | RfsdRemoveEntry (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_FCB Dcb, IN ULONG FileType, IN ULONG Inode) |
|
NTSTATUS | RfsdSetParentEntry (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_FCB Dcb, IN ULONG OldParent, IN ULONG NewParent) |
|
NTSTATUS | RfsdTruncateBlock (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_FCB Fcb, IN ULONG dwContent, IN ULONG Index, IN ULONG layer, OUT BOOLEAN *bFreed) |
|
NTSTATUS | RfsdTruncateInode (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_FCB Fcb) |
|
BOOLEAN | RfsdAddMcbEntry (IN PRFSD_VCB Vcb, IN LONGLONG Lba, IN LONGLONG Length) |
|
VOID | RfsdRemoveMcbEntry (IN PRFSD_VCB Vcb, IN LONGLONG Lba, IN LONGLONG Length) |
|
BOOLEAN | RfsdLookupMcbEntry (IN PRFSD_VCB Vcb, IN LONGLONG Offset, OUT PLONGLONG Lba OPTIONAL, OUT PLONGLONG Length OPTIONAL, OUT PLONGLONG RunStart OPTIONAL, OUT PLONGLONG RunLength OPTIONAL, OUT PULONG Index OPTIONAL) |
|
BOOLEAN | SuperblockContainsMagicKey (PRFSD_SUPER_BLOCK sb) |
|
__u32 | ConvertKeyTypeUniqueness (__u32 k_uniqueness) |
|
void | FillInMemoryKey (IN PRFSD_KEY_ON_DISK pKeyOnDisk, IN RFSD_KEY_VERSION KeyVersion, IN OUT PRFSD_KEY_IN_MEMORY pKeyInMemory) |
|
RFSD_KEY_VERSION | DetermineOnDiskKeyFormat (const PRFSD_KEY_ON_DISK key) |
|
RFSD_KEY_COMPARISON | CompareShortKeys (IN PRFSD_KEY_IN_MEMORY a, IN PRFSD_KEY_IN_MEMORY b) |
|
RFSD_KEY_COMPARISON | CompareKeysWithoutOffset (IN PRFSD_KEY_IN_MEMORY a, IN PRFSD_KEY_IN_MEMORY b) |
|
RFSD_KEY_COMPARISON | CompareKeys (IN PRFSD_KEY_IN_MEMORY a, IN PRFSD_KEY_IN_MEMORY b) |
|
NTSTATUS | NavigateToLeafNode (IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY Key, IN ULONG StartingBlockNumber, OUT PULONG out_NextBlockNumber) |
|
NTSTATUS | RfsdParseFilesystemTree (IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY Key, IN ULONG StartingBlockNumber, IN RFSD_CALLBACK(fpDirectoryCallback), IN PVOID Context) |
|
NTSTATUS | _NavigateToLeafNode (IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY Key, IN ULONG StartingBlockNumber, OUT PULONG out_NextBlockNumber, IN BOOLEAN ReturnOnFirstMatch, IN RFSD_KEY_COMPARISON(*fpComparisonFunction)(PRFSD_KEY_IN_MEMORY, PRFSD_KEY_IN_MEMORY), RFSD_CALLBACK(fpDirectoryCallback), IN PVOID pContext) |
|
BOOLEAN NTAPI | RfsdFastIoCheckIfPossible (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN BOOLEAN CheckForReadOperation, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoRead (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoWrite (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoQueryBasicInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoQueryStandardInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoLock (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN PEPROCESS Process, IN ULONG Key, IN BOOLEAN FailImmediately, IN BOOLEAN ExclusiveLock, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoUnlockSingle (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN PEPROCESS Process, IN ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoUnlockAll (IN PFILE_OBJECT FileObject, IN PEPROCESS Process, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoUnlockAllByKey (IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | RfsdFastIoQueryNetworkOpenInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_NETWORK_OPEN_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
NTSTATUS | RfsdQueryInformation (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdSetInformation (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdExpandFile (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, PRFSD_FCB Fcb, PLARGE_INTEGER AllocationSize) |
|
NTSTATUS | RfsdTruncateFile (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, PRFSD_FCB Fcb, PLARGE_INTEGER AllocationSize) |
|
NTSTATUS | RfsdSetDispositionInfo (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, PRFSD_FCB Fcb, BOOLEAN bDelete) |
|
NTSTATUS | RfsdSetRenameInfo (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, PRFSD_FCB Fcb) |
|
NTSTATUS | RfsdDeleteFile (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, PRFSD_FCB Fcb) |
|
NTSTATUS | RfsdFlushFiles (IN PRFSD_VCB Vcb, BOOLEAN bShutDown) |
|
NTSTATUS | RfsdFlushVolume (IN PRFSD_VCB Vcb, BOOLEAN bShutDown) |
|
NTSTATUS | RfsdFlushFile (IN PRFSD_FCB Fcb) |
|
NTSTATUS | RfsdFlush (IN PRFSD_IRP_CONTEXT IrpContext) |
|
VOID | RfsdSetVpbFlag (IN PVPB Vpb, IN USHORT Flag) |
|
VOID | RfsdClearVpbFlag (IN PVPB Vpb, IN USHORT Flag) |
|
BOOLEAN | RfsdCheckDismount (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN BOOLEAN bForce) |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdPurgeVolume (IN PRFSD_VCB Vcb, IN BOOLEAN FlushBeforePurge) |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdPurgeFile (IN PRFSD_FCB Fcb, IN BOOLEAN FlushBeforePurge) |
|
BOOLEAN | RfsdIsHandleCountZero (IN PRFSD_VCB Vcb) |
|
NTSTATUS | RfsdLockVcb (IN PRFSD_VCB Vcb, IN PFILE_OBJECT FileObject) |
|
NTSTATUS | RfsdLockVolume (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdUnlockVcb (IN PRFSD_VCB Vcb, IN PFILE_OBJECT FileObject) |
|
NTSTATUS | RfsdUnlockVolume (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdAllowExtendedDasdIo (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdUserFsRequest (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdMountVolume (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdVerifyVolume (IN PRFSD_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdIsVolumeMounted (IN PRFSD_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdDismountVolume (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdFileSystemControl (IN PRFSD_IRP_CONTEXT IrpContext) |
|
BOOLEAN | RfsdQueryParameters (IN PUNICODE_STRING RegistryPath) |
|
VOID NTAPI | DriverUnload (IN PDRIVER_OBJECT DriverObject) |
|
NTSTATUS | RfsdLockControl (IN PRFSD_IRP_CONTEXT IrpContext) |
|
PRFSD_IRP_CONTEXT | RfsdAllocateIrpContext (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
|
VOID | RfsdFreeIrpContext (IN PRFSD_IRP_CONTEXT IrpContext) |
|
PRFSD_FCB | RfsdAllocateFcb (IN PRFSD_VCB Vcb, IN PRFSD_MCB RfsdMcb, IN PRFSD_INODE Inode) |
|
VOID | RfsdFreeFcb (IN PRFSD_FCB Fcb) |
|
PRFSD_CCB | RfsdAllocateCcb (VOID) |
|
VOID | RfsdFreeMcb (IN PRFSD_MCB Mcb) |
|
PRFSD_FCB | RfsdCreateFcbFromMcb (PRFSD_VCB Vcb, PRFSD_MCB Mcb) |
|
VOID | RfsdFreeCcb (IN PRFSD_CCB Ccb) |
|
PRFSD_MCB | RfsdAllocateMcb (PRFSD_VCB, PUNICODE_STRING FileName, ULONG FileAttr) |
|
PRFSD_MCB | RfsdSearchMcbTree (PRFSD_VCB Vcb, PRFSD_MCB RfsdMcb, PRFSD_KEY_IN_MEMORY Key) |
|
PRFSD_MCB | RfsdSearchMcb (PRFSD_VCB Vcb, PRFSD_MCB Parent, PUNICODE_STRING FileName) |
|
BOOLEAN | RfsdGetFullFileName (PRFSD_MCB Mcb, PUNICODE_STRING FileName) |
|
VOID | RfsdRefreshMcb (PRFSD_VCB Vcb, PRFSD_MCB Mcb) |
|
VOID | RfsdAddMcbNode (PRFSD_VCB Vcb, PRFSD_MCB Parent, PRFSD_MCB Child) |
|
BOOLEAN | RfsdDeleteMcbNode (PRFSD_VCB Vcb, PRFSD_MCB McbTree, PRFSD_MCB RfsdMcb) |
|
VOID | RfsdFreeMcbTree (PRFSD_MCB McbTree) |
|
BOOLEAN | RfsdCheckSetBlock (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, ULONG Block) |
|
BOOLEAN | RfsdCheckBitmapConsistency (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb) |
|
VOID | RfsdInsertVcb (PRFSD_VCB Vcb) |
|
VOID | RfsdRemoveVcb (PRFSD_VCB Vcb) |
|
NTSTATUS | RfsdInitializeVcb (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb, PRFSD_SUPER_BLOCK RfsdSb, PDEVICE_OBJECT TargetDevice, PDEVICE_OBJECT VolumeDevice, PVPB Vpb) |
|
VOID | RfsdFreeVcb (IN PRFSD_VCB Vcb) |
|
VOID | RfsdRepinBcb (IN PRFSD_IRP_CONTEXT IrpContext, IN PBCB Bcb) |
|
VOID | RfsdUnpinRepinnedBcbs (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdCompleteIrpContext (IN PRFSD_IRP_CONTEXT IrpContext, IN NTSTATUS Status) |
|
VOID | RfsdSyncUninitializeCacheMap (IN PFILE_OBJECT FileObject) |
|
static USHORT | RfsdStringLength (PUCHAR buffer, USHORT MaximumLength) |
|
ULONG | RfsdLog2 (ULONG Value) |
|
LARGE_INTEGER | RfsdSysTime (IN ULONG i_time) |
|
ULONG | RfsdInodeTime (IN LARGE_INTEGER SysTime) |
|
ULONG | RfsdOEMToUnicodeSize (IN PANSI_STRING Oem) |
|
NTSTATUS | RfsdOEMToUnicode (IN OUT PUNICODE_STRING Oem, IN POEM_STRING Unicode) |
|
ULONG | RfsdUnicodeToOEMSize (IN PUNICODE_STRING Unicode) |
|
NTSTATUS | RfsdUnicodeToOEM (IN OUT POEM_STRING Oem, IN PUNICODE_STRING Unicode) |
|
int | RfsdLoadAllNls () |
|
VOID | RfsdUnloadAllNls () |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdPnp (IN PRFSD_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdPnpQueryRemove (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdPnpRemove (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdPnpCancelRemove (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | RfsdPnpSurpriseRemove (PRFSD_IRP_CONTEXT IrpContext, PRFSD_VCB Vcb) |
|
BOOLEAN | RfsdCopyRead (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus) |
|
NTSTATUS | RfsdReadInode (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PRFSD_KEY_IN_MEMORY Key, IN PRFSD_INODE Inode, IN ULONGLONG Offset, IN PVOID Buffer, IN ULONG Size, OUT PULONG dwReturn) |
|
NTSTATUS | RfsdRead (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdShutDown (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdQueryVolumeInformation (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdSetVolumeInformation (IN PRFSD_IRP_CONTEXT IrpContext) |
|
NTSTATUS | RfsdWriteInode (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN ULONG InodeNo, IN PRFSD_INODE Inode, IN ULONGLONG Offset, IN PVOID Buffer, IN ULONG Size, IN BOOLEAN bWriteToDisk, OUT PULONG dwReturn) |
|
VOID | RfsdStartFloppyFlushDpc (PRFSD_VCB Vcb, PRFSD_FCB Fcb, PFILE_OBJECT FileObject) |
|
BOOLEAN | RfsdZeroHoles (IN PRFSD_IRP_CONTEXT IrpContext, IN PRFSD_VCB Vcb, IN PFILE_OBJECT FileObject, IN LONGLONG Offset, IN LONGLONG Count) |
|
NTSTATUS | RfsdWrite (IN PRFSD_IRP_CONTEXT IrpContext) |
|