|
#define | __drv_mustHoldCriticalRegion |
|
#define | FFSBreakPoint() |
|
#define | FFSDRV_VERSION "0.5.2" |
|
#define | FFS_READ_ONLY TRUE |
|
#define | FFS_UNLOAD TRUE |
|
#define | FFS_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 | SUPER_BLOCK_OFFSET (0x2000) |
|
#define | SUPER_BLOCK_SIZE SBLOCKSIZE |
|
#define | READ_AHEAD_GRANULARITY (0x10000) |
|
#define | SUPER_BLOCK (Vcb->ffs_super_block) |
|
#define | FS_VERSION (Vcb->FSVersion) |
|
#define | BLOCK_SIZE (Vcb->BlockSize) |
|
#define | BLOCK_BITS FFSLog2(Vcb->BlockSize) |
|
#define | INODES_COUNT (Vcb->ffs_super_block->s_inodes_count) |
|
#define | INODES_PER_GROUP (SUPER_BLOCK->fs_ipg) |
|
#define | BLOCKS_PER_GROUP (SUPER_BLOCK->fs_fpg) |
|
#define | TOTAL_BLOCKS (SUPER_BLOCK->fs_size) |
|
#define | DRIVER_NAME "FFS" |
|
#define | DEVICE_NAME L"\\FileSystem\\FFS" |
|
#define | PARAMETERS_KEY L"\\Parameters" |
|
#define | WRITING_SUPPORT L"WritingSupport" |
|
#define | CHECKING_BITMAP L"CheckingBitmap" |
|
#define | PARTITION_NUMBER L"PartitionNumber" |
|
#define | DOS_DEVICE_NAME L"\\DosDevices\\ffs" |
|
#define | IOCTL_SELECT_BSD_PARTITION CTL_CODE(FILE_DEVICE_UNKNOWN, 2049, METHOD_BUFFERED, FILE_WRITE_ACCESS) |
|
#define | SetFlag(x, f) ((x) |= (f)) |
|
#define | ClearFlag(x, f) ((x) &= ~(f)) |
|
#define | IsFlagOn(a, b) ((BOOLEAN)(FlagOn(a,b) == b)) |
|
#define | FFSRaiseStatus(IRPCONTEXT, STATUS) |
|
#define | FFSNormalizeAndRaiseStatus(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->FFSMcb->FileAttr, FILE_ATTRIBUTE_DIRECTORY) |
|
#define | FFS_FILE_SYSTEM (FILE_SYSTEM) |
|
#define | FFS_BUGCHK_BLOCK (0x00010000) |
|
#define | FFS_BUGCHK_CLEANUP (0x00020000) |
|
#define | FFS_BUGCHK_CLOSE (0x00030000) |
|
#define | FFS_BUGCHK_CMCB (0x00040000) |
|
#define | FFS_BUGCHK_CREATE (0x00050000) |
|
#define | FFS_BUGCHK_DEBUG (0x00060000) |
|
#define | FFS_BUGCHK_DEVCTL (0x00070000) |
|
#define | FFS_BUGCHK_DIRCTL (0x00080000) |
|
#define | FFS_BUGCHK_DISPATCH (0x00090000) |
|
#define | FFS_BUGCHK_EXCEPT (0x000A0000) |
|
#define | FFS_BUGCHK_FFS (0x000B0000) |
|
#define | FFS_BUGCHK_FASTIO (0x000C0000) |
|
#define | FFS_BUGCHK_FILEINFO (0x000D0000) |
|
#define | FFS_BUGCHK_FLUSH (0x000E0000) |
|
#define | FFS_BUGCHK_FSCTL (0x000F0000) |
|
#define | FFS_BUGCHK_INIT (0x00100000) |
|
#define | FFS_BUGCHK_LOCK (0x0011000) |
|
#define | FFS_BUGCHK_MEMORY (0x0012000) |
|
#define | FFS_BUGCHK_MISC (0x0013000) |
|
#define | FFS_BUGCHK_READ (0x00140000) |
|
#define | FFS_BUGCHK_SHUTDOWN (0x00150000) |
|
#define | FFS_BUGCHK_VOLINFO (0x00160000) |
|
#define | FFS_BUGCHK_WRITE (0x00170000) |
|
#define | FFS_BUGCHK_LAST (0x00170000) |
|
#define | FFSBugCheck(A, B, C, D) { KeBugCheckEx(FFS_FILE_SYSTEM, A | __LINE__, B, C, D ); } |
|
#define | FFS_NAME_LEN 255 |
|
#define | FFS_ROOT_INO 2 /* Root inode */ |
|
#define | FFS_DIR_PAD 4 |
|
#define | FFS_DIR_ROUND (FFS_DIR_PAD - 1) |
|
#define | FFS_DIR_REC_LEN(name_len) |
|
#define | S_ISDIR(m) ((m & _S_IFMT) == _S_IFDIR) /* directory */ |
|
#define | S_ISCHR(m) ((m & _S_IFMT) == _S_IFCHR) /* char special */ |
|
#define | S_ISBLK(m) ((m & _S_IFMT) == _S_IFBLK) /* block special */ |
|
#define | S_ISREG(m) ((m & _S_IFMT) == _S_IFREG) /* regular file */ |
|
#define | S_ISFIFO(m) ((m & _S_IFMT) == _S_IFIFO) /* fifo */ |
|
#define | S_ISLNK(m) ((m & _S_IFMT) == _S_IFLNK) /* symbolic link */ |
|
#define | S_ISSOCK(m) ((m & _S_IFMT) == _S_IFSOCK) /* socket */ |
|
#define | S_ISWHT(m) ((m & _S_IFMT) == _S_IFWHT) /* whiteout */ |
|
#define | S_IPERMISSION_MASK 0x1FF /* */ |
|
#define | S_IRWXU 0000700 /* RWX mask for owner */ |
|
#define | S_IRUSR 0000400 /* R for owner */ |
|
#define | S_IWUSR 0000200 /* W for owner */ |
|
#define | S_IXUSR 0000100 /* X for owner */ |
|
#define | S_IRWXG 0000070 /* RWX mask for group */ |
|
#define | S_IRGRP 0000040 /* R for group */ |
|
#define | S_IWGRP 0000020 /* W for group */ |
|
#define | S_IXGRP 0000010 /* X for group */ |
|
#define | S_IRWXO 0000007 /* RWX mask for other */ |
|
#define | S_IROTH 0000004 /* R for other */ |
|
#define | S_IWOTH 0000002 /* W for other */ |
|
#define | S_IXOTH 0000001 /* X for other */ |
|
#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 | FFSSetReadable(m) (m) = ((m) | (S_IRUSR | S_IRGRP | S_IROTH)) |
|
#define | FFSSetWritable(m) (m) = ((m) | (S_IWUSR | S_IWGRP | S_IWOTH)) |
|
#define | FFSSetReadOnly(m) (m) = ((m) & (~(S_IWUSR | S_IWGRP | S_IWOTH))) |
|
#define | FFSIsReadOnly(m) (!((m) & (S_IWUSR | S_IWGRP | S_IWOTH))) |
|
#define | FFS_FIRST_DATA_BLOCK (Vcb->ffs_super_block->fs_dblkno) |
|
#define | NodeType(Ptr) (*((FFS_IDENTIFIER_TYPE *)(Ptr))) |
|
#define | FFS_REPINNED_BCBS_ARRAY_SIZE (8) |
|
#define | FFS_UNLOAD_PENDING 0x00000001 |
|
#define | FFS_SUPPORT_WRITING 0x00000002 |
|
#define | FFS_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 | CanFFSWait(IRP) IoIsOperationSynchronous(Irp) |
|
#define | FFS_POOL_TAG 'dsfF' |
|
#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 | FFSPrint(arg) |
|
#define | FFSCompleteRequest(Irp, bPrint, PriorityBoost) IoCompleteRequest(Irp, PriorityBoost) |
|
#define | FFSGetCurrentProcessName() |
|
|
NTSTATUS | FFSLockUserBuffer (IN PIRP Irp, IN ULONG Length, IN LOCK_OPERATION Operation) |
|
PVOID | FFSGetUserBuffer (IN PIRP Irp) |
|
NTSTATUS | FFSReadWriteBlocks (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_BDL FFSBDL, IN ULONG Length, IN ULONG Count, IN BOOLEAN bVerify) |
|
NTSTATUS | FFSReadSync (IN PFFS_VCB Vcb, IN ULONGLONG Offset, IN ULONG Length, OUT PVOID Buffer, IN BOOLEAN bVerify) |
|
NTSTATUS | FFSReadDisk (IN PFFS_VCB Vcb, IN ULONGLONG Offset, IN ULONG Size, IN PVOID Buffer, IN BOOLEAN bVerify) |
|
NTSTATUS | FFSDiskIoControl (IN PDEVICE_OBJECT DeviceOjbect, IN ULONG IoctlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, IN OUT PVOID OutputBuffer, IN OUT PULONG OutputBufferSize) |
|
__drv_mustHoldCriticalRegion VOID | FFSMediaEjectControl (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN BOOLEAN bPrevent) |
|
NTSTATUS | FFSDiskShutDown (PFFS_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSCleanup (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSClose (IN PFFS_IRP_CONTEXT IrpContext) |
|
VOID | FFSQueueCloseRequest (IN PFFS_IRP_CONTEXT IrpContext) |
|
VOID NTAPI | FFSDeQueueCloseRequest (IN PVOID Context) |
|
__drv_mustHoldCriticalRegion BOOLEAN NTAPI | FFSAcquireForLazyWrite (IN PVOID Context, IN BOOLEAN Wait) |
|
__drv_mustHoldCriticalRegion VOID NTAPI | FFSReleaseFromLazyWrite (IN PVOID Context) |
|
__drv_mustHoldCriticalRegion BOOLEAN NTAPI | FFSAcquireForReadAhead (IN PVOID Context, IN BOOLEAN Wait) |
|
BOOLEAN NTAPI | FFSNoOpAcquire (IN PVOID Fcb, IN BOOLEAN Wait) |
|
VOID NTAPI | FFSNoOpRelease (IN PVOID Fcb) |
|
__drv_mustHoldCriticalRegion VOID NTAPI | FFSReleaseFromReadAhead (IN PVOID Context) |
|
PFFS_FCB | FFSSearchFcbList (IN PFFS_VCB Vcb, IN ULONG inode) |
|
NTSTATUS | FFSv1ScanDir (IN PFFS_VCB Vcb, IN PFFS_MCB ParentMcb, IN PUNICODE_STRING FileName, IN OUT PULONG Index, IN PFFSv1_INODE dinode1, IN PFFS_DIR_ENTRY ffs_dir) |
|
NTSTATUS | FFSv2ScanDir (IN PFFS_VCB Vcb, IN PFFS_MCB ParentMcb, IN PUNICODE_STRING FileName, IN OUT PULONG Index, IN PFFSv2_INODE dinode2, IN PFFS_DIR_ENTRY ffs_dir) |
|
NTSTATUS | FFSv1LookupFileName (IN PFFS_VCB Vcb, IN PUNICODE_STRING FullFileName, IN PFFS_MCB ParentMcb, OUT PFFS_MCB *FFSMcb, IN OUT PFFSv1_INODE dinode1) |
|
NTSTATUS | FFSv2LookupFileName (IN PFFS_VCB Vcb, IN PUNICODE_STRING FullFileName, IN PFFS_MCB ParentMcb, OUT PFFS_MCB *FFSMcb, IN OUT PFFSv2_INODE dinode2) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSCreateFile (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSCreateVolume (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSCreate (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSCreateInode (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, PFFS_FCB ParentFcb, ULONG Type, ULONG FileAttr, PUNICODE_STRING FileName) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSSupersedeOrOverWriteFile (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_FCB Fcb, IN ULONG Disposition) |
|
VOID __cdecl | FFSPrintf (LONG DebugPrintLevel, PCHAR DebugMessage,...) |
|
VOID __cdecl | FFSNIPrintf (LONG DebugPrintLevel, PCHAR DebugMessage,...) |
|
ULONG | FFSGetProcessNameOffset (VOID) |
|
VOID | FFSDbgPrintCall (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
|
VOID | FFSDbgPrintComplete (IN PIRP Irp, IN BOOLEAN bPrint) |
|
PCHAR | FFSNtStatusToString (IN NTSTATUS Status) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSDeviceControlNormal (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSPrepareToUnload (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSDeviceControl (IN PFFS_IRP_CONTEXT IrpContext) |
|
ULONG | FFSGetInfoLength (IN FILE_INFORMATION_CLASS FileInformationClass) |
|
ULONG | FFSProcessDirEntry (IN PFFS_VCB Vcb, IN FILE_INFORMATION_CLASS FileInformationClass, IN ULONG in, IN PVOID Buffer, IN ULONG UsedLength, IN ULONG Length, IN ULONG FileIndex, IN PUNICODE_STRING pName, IN BOOLEAN Single) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSQueryDirectory (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSNotifyChangeDirectory (IN PFFS_IRP_CONTEXT IrpContext) |
|
VOID | FFSNotifyReportChange (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_FCB Fcb, IN ULONG Filter, IN ULONG Action) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSDirectoryControl (IN PFFS_IRP_CONTEXT IrpContext) |
|
BOOLEAN | FFSIsDirectoryEmpty (PFFS_VCB Vcb, PFFS_FCB Dcb) |
|
NTSTATUS | FFSQueueRequest (IN PFFS_IRP_CONTEXT IrpContext) |
|
VOID NTAPI | FFSDeQueueRequest (IN PVOID Context) |
|
NTSTATUS | FFSDispatchRequest (IN PFFS_IRP_CONTEXT IrpContext) |
|
NTSTATUS NTAPI | FFSBuildRequest (PDEVICE_OBJECT DeviceObject, PIRP Irp) |
|
NTSTATUS | FFSExceptionFilter (IN PFFS_IRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer) |
|
NTSTATUS | FFSExceptionHandler (IN PFFS_IRP_CONTEXT IrpContext) |
|
PFFS_SUPER_BLOCK | FFSLoadSuper (IN PFFS_VCB Vcb, IN BOOLEAN bVerify, IN ULONGLONG SuperBlockOffset) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSSaveSuper (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb) |
|
BOOLEAN | FFSLoadGroup (IN PFFS_VCB Vcb) |
|
BOOLEAN | FFSSaveGroup (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb) |
|
BOOLEAN | FFSv1GetInodeLba (IN PFFS_VCB Vcb, IN ULONG inode, OUT PLONGLONG offset) |
|
BOOLEAN | FFSv2GetInodeLba (IN PFFS_VCB Vcb, IN ULONG inode, OUT PLONGLONG offset) |
|
BOOLEAN | FFSv1LoadInode (IN PFFS_VCB Vcb, IN ULONG inode, IN PFFSv1_INODE dinode1) |
|
BOOLEAN | FFSv2LoadInode (IN PFFS_VCB Vcb, IN ULONG inode, IN PFFSv2_INODE dinode2) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSv1SaveInode (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN ULONG Inode, IN PFFSv1_INODE dinode1) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSv2SaveInode (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN ULONG Inode, IN PFFSv2_INODE dinode2) |
|
BOOLEAN | FFSv1LoadBlock (IN PFFS_VCB Vcb, IN ULONG dwBlk, IN PVOID Buffer) |
|
BOOLEAN | FFSv2LoadBlock (IN PFFS_VCB Vcb, IN ULONGLONG dwBlk, IN PVOID Buffer) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSSaveBlock (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN ULONG dwBlk, IN PVOID Buf) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSSaveBuffer (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN LONGLONG Offset, IN ULONG Size, IN PVOID Buf) |
|
ULONG | FFSv1GetBlock (IN PFFS_VCB Vcb, IN ULONG dwContent, IN ULONG Index, IN int layer) |
|
ULONGLONG | FFSv2GetBlock (IN PFFS_VCB Vcb, IN ULONGLONG dwContent, IN ULONG Index, IN int layer) |
|
ULONG | FFSv1BlockMap (IN PFFS_VCB Vcb, IN PFFSv1_INODE dinode1, IN ULONG Index) |
|
ULONGLONG | FFSv2BlockMap (IN PFFS_VCB Vcb, IN PFFSv2_INODE dinode2, IN ULONG Index) |
|
ULONG | FFSv1BuildBDL (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFSv1_INODE dinode1, IN ULONGLONG Offset, IN ULONG Size, OUT PFFS_BDL *ffs_bdl) |
|
ULONG | FFSv2BuildBDL (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFSv2_INODE dinode2, IN ULONGLONG Offset, IN ULONG Size, OUT PFFS_BDL *ffs_bdl) |
|
BOOLEAN | FFSNewBlock (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, ULONG GroupHint, ULONG BlockHint, PULONG dwRet) |
|
BOOLEAN | FFSFreeBlock (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, ULONG Block) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSExpandBlock (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, PFFS_FCB Fcb, ULONG dwContent, ULONG Index, ULONG layer, BOOLEAN bNew, ULONG *dwRet) |
|
BOOLEAN | FFSExpandInode (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, PFFS_FCB Fcb, ULONG *dwRet) |
|
NTSTATUS | FFSNewInode (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, ULONG GroupHint, ULONG Type, PULONG Inode) |
|
BOOLEAN | FFSFreeInode (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, ULONG Inode, ULONG Type) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSAddEntry (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_FCB Dcb, IN ULONG FileType, IN ULONG Inode, IN PUNICODE_STRING FileName) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSRemoveEntry (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_FCB Dcb, IN ULONG FileType, IN ULONG Inode) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSSetParentEntry (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_FCB Dcb, IN ULONG OldParent, IN ULONG NewParent) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSTruncateBlock (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_FCB Fcb, IN ULONG dwContent, IN ULONG Index, IN ULONG layer, OUT BOOLEAN *bFreed) |
|
BOOLEAN | FFSTruncateInode (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_FCB Fcb) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSAddMcbEntry (IN PFFS_VCB Vcb, IN LONGLONG Lba, IN LONGLONG Length) |
|
__drv_mustHoldCriticalRegion VOID | FFSRemoveMcbEntry (IN PFFS_VCB Vcb, IN LONGLONG Lba, IN LONGLONG Length) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSLookupMcbEntry (IN PFFS_VCB Vcb, IN LONGLONG Lba, OUT PLONGLONG pLba, OUT PLONGLONG pLength, OUT PLONGLONG RunStart, OUT PLONGLONG RunLength, OUT PULONG Index) |
|
ULONG | FFSDataBlocks (PFFS_VCB Vcb, ULONG TotalBlocks) |
|
ULONG | FFSTotalBlocks (PFFS_VCB Vcb, ULONG DataBlocks) |
|
BOOLEAN NTAPI | FFSFastIoCheckIfPossible (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 | FFSFastIoRead (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 | FFSFastIoWrite (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) |
|
__drv_mustHoldCriticalRegion BOOLEAN NTAPI | FFSFastIoQueryBasicInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
__drv_mustHoldCriticalRegion BOOLEAN NTAPI | FFSFastIoQueryStandardInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | FFSFastIoLock (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 | FFSFastIoUnlockSingle (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 | FFSFastIoUnlockAll (IN PFILE_OBJECT FileObject, IN PEPROCESS Process, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | FFSFastIoUnlockAllByKey (IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
__drv_mustHoldCriticalRegion BOOLEAN NTAPI | FFSFastIoQueryNetworkOpenInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_NETWORK_OPEN_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSQueryInformation (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSSetInformation (IN PFFS_IRP_CONTEXT IrpContext) |
|
BOOLEAN | FFSExpandFile (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, PFFS_FCB Fcb, PLARGE_INTEGER AllocationSize) |
|
BOOLEAN | FFSTruncateFile (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, PFFS_FCB Fcb, PLARGE_INTEGER AllocationSize) |
|
NTSTATUS | FFSSetDispositionInfo (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, PFFS_FCB Fcb, BOOLEAN bDelete) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSSetRenameInfo (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, PFFS_FCB Fcb) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSDeleteFile (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, PFFS_FCB Fcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSFlushFiles (IN PFFS_VCB Vcb, BOOLEAN bShutDown) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSFlushVolume (IN PFFS_VCB Vcb, BOOLEAN bShutDown) |
|
NTSTATUS | FFSFlushFile (IN PFFS_FCB Fcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSFlush (IN PFFS_IRP_CONTEXT IrpContext) |
|
VOID | FFSSetVpbFlag (IN PVPB Vpb, IN USHORT Flag) |
|
VOID | FFSClearVpbFlag (IN PVPB Vpb, IN USHORT Flag) |
|
NTSTATUS | FFSGetPartition (IN PDEVICE_OBJECT DeviceObject, OUT ULONGLONG *StartOffset) |
|
NTSTATUS | FFSLoadDiskLabel (PDEVICE_OBJECT DeviceObject, IN PFFS_VCB Vcb) |
|
__drv_mustHoldCriticalRegion BOOLEAN | FFSCheckDismount (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN BOOLEAN bForce) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSPurgeVolume (IN PFFS_VCB Vcb, IN BOOLEAN FlushBeforePurge) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSPurgeFile (IN PFFS_FCB Fcb, IN BOOLEAN FlushBeforePurge) |
|
BOOLEAN | FFSIsHandleCountZero (IN PFFS_VCB Vcb) |
|
NTSTATUS | FFSLockVcb (IN PFFS_VCB Vcb, IN PFILE_OBJECT FileObject) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSLockVolume (IN PFFS_IRP_CONTEXT IrpContext) |
|
NTSTATUS | FFSUnlockVcb (IN PFFS_VCB Vcb, IN PFILE_OBJECT FileObject) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSUnlockVolume (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSAllowExtendedDasdIo (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSUserFsRequest (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSMountVolume (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSVerifyVolume (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSIsVolumeMounted (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSDismountVolume (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSSelectBSDPartition (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSFileSystemControl (IN PFFS_IRP_CONTEXT IrpContext) |
|
BOOLEAN | FFSQueryParameters (IN PUNICODE_STRING RegistryPath) |
|
VOID NTAPI | DriverUnload (IN PDRIVER_OBJECT DriverObject) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSLockControl (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion PFFS_IRP_CONTEXT | FFSAllocateIrpContext (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
|
__drv_mustHoldCriticalRegion VOID | FFSFreeIrpContext (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion PFFS_FCB | FFSv1AllocateFcb (IN PFFS_VCB Vcb, IN PFFS_MCB FFSMcb, IN PFFSv1_INODE dinode1) |
|
__drv_mustHoldCriticalRegion PFFS_FCB | FFSv2AllocateFcb (IN PFFS_VCB Vcb, IN PFFS_MCB FFSMcb, IN PFFSv2_INODE dinode2) |
|
__drv_mustHoldCriticalRegion VOID | FFSFreeFcb (IN PFFS_FCB Fcb) |
|
__drv_mustHoldCriticalRegion PFFS_CCB | FFSAllocateCcb (VOID) |
|
__drv_mustHoldCriticalRegion VOID | FFSFreeMcb (IN PFFS_MCB Mcb) |
|
__drv_mustHoldCriticalRegion PFFS_FCB | FFSCreateFcbFromMcb (PFFS_VCB Vcb, PFFS_MCB Mcb) |
|
__drv_mustHoldCriticalRegion VOID | FFSFreeCcb (IN PFFS_CCB Ccb) |
|
PFFS_MCB | FFSAllocateMcb (PFFS_VCB Vcb, PUNICODE_STRING FileName, ULONG FileAttr) |
|
PFFS_MCB | FFSSearchMcbTree (PFFS_VCB Vcb, PFFS_MCB FFSMcb, ULONG Inode) |
|
PFFS_MCB | FFSSearchMcb (PFFS_VCB Vcb, PFFS_MCB Parent, PUNICODE_STRING FileName) |
|
BOOLEAN | FFSGetFullFileName (PFFS_MCB Mcb, PUNICODE_STRING FileName) |
|
VOID | FFSRefreshMcb (PFFS_VCB Vcb, PFFS_MCB Mcb) |
|
VOID | FFSAddMcbNode (PFFS_VCB Vcb, PFFS_MCB Parent, PFFS_MCB Child) |
|
BOOLEAN | FFSDeleteMcbNode (PFFS_VCB Vcb, PFFS_MCB McbTree, PFFS_MCB FFSMcb) |
|
__drv_mustHoldCriticalRegion VOID | FFSFreeMcbTree (PFFS_MCB McbTree) |
|
BOOLEAN | FFSCheckSetBlock (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb, ULONG Block) |
|
BOOLEAN | FFSCheckBitmapConsistency (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb) |
|
VOID | FFSInsertVcb (PFFS_VCB Vcb) |
|
VOID | FFSRemoveVcb (PFFS_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSInitializeVcb (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFS_SUPER_BLOCK FFSSb, IN PDEVICE_OBJECT TargetDevice, IN PDEVICE_OBJECT VolumeDevice, IN PVPB Vpb) |
|
__drv_mustHoldCriticalRegion VOID | FFSFreeVcb (IN PFFS_VCB Vcb) |
|
VOID | FFSRepinBcb (IN PFFS_IRP_CONTEXT IrpContext, IN PBCB Bcb) |
|
VOID | FFSUnpinRepinnedBcbs (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSCompleteIrpContext (IN PFFS_IRP_CONTEXT IrpContext, IN NTSTATUS Status) |
|
VOID | FFSSyncUninitializeCacheMap (IN PFILE_OBJECT FileObject) |
|
ULONG | FFSLog2 (ULONG Value) |
|
LARGE_INTEGER | FFSSysTime (IN ULONG i_time) |
|
ULONG | FFSInodeTime (IN LARGE_INTEGER SysTime) |
|
NTSTATUS | FFSOEMToUnicode (IN OUT PUNICODE_STRING Unicode, IN POEM_STRING Oem) |
|
NTSTATUS | FFSUnicodeToOEM (IN OUT POEM_STRING Oem, IN PUNICODE_STRING Unicode) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSPnp (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSPnpQueryRemove (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSPnpRemove (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSPnpCancelRemove (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSPnpSurpriseRemove (PFFS_IRP_CONTEXT IrpContext, PFFS_VCB Vcb) |
|
BOOLEAN | FFSCopyRead (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus) |
|
NTSTATUS | FFSv1ReadInode (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFSv1_INODE dinode1, IN ULONGLONG offset, IN PVOID Buffer, IN ULONG size, OUT PULONG dwRet) |
|
NTSTATUS | FFSv2ReadInode (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFSv2_INODE dinode2, IN ULONGLONG offset, IN PVOID Buffer, IN ULONG size, OUT PULONG dwRet) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSRead (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSShutDown (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSQueryVolumeInformation (IN PFFS_IRP_CONTEXT IrpContext) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSSetVolumeInformation (IN PFFS_IRP_CONTEXT IrpContext) |
|
NTSTATUS | FFSv1WriteInode (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFSv1_INODE dinode1, IN ULONGLONG offset, IN PVOID Buffer, IN ULONG size, IN BOOLEAN bWriteToDisk, OUT PULONG dwRet) |
|
NTSTATUS | FFSv2WriteInode (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFFSv2_INODE dinode2, IN ULONGLONG offset, IN PVOID Buffer, IN ULONG size, IN BOOLEAN bWriteToDisk, OUT PULONG dwRet) |
|
VOID | FFSStartFloppyFlushDpc (PFFS_VCB Vcb, PFFS_FCB Fcb, PFILE_OBJECT FileObject) |
|
BOOLEAN | FFSZeroHoles (IN PFFS_IRP_CONTEXT IrpContext, IN PFFS_VCB Vcb, IN PFILE_OBJECT FileObject, IN LONGLONG Offset, IN LONGLONG Count) |
|
__drv_mustHoldCriticalRegion NTSTATUS | FFSWrite (IN PFFS_IRP_CONTEXT IrpContext) |
|
NTSTATUS | DeviceControl (IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp) |
|