ReactOS 0.4.16-dev-136-g52192f1
ext2fs.h File Reference
#include <linux/module.h>
#include <ntdddisk.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <linux/ext2_fs.h>
#include <linux/ext3_fs.h>
#include <linux/ext3_fs_i.h>
#include <linux/ext4.h>
#include "common.h"
Include dependency graph for ext2fs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _EXT2_IDENTIFIER
 
struct  _EXT2_REAPER
 
struct  _EXT2_GLOBAL
 
struct  _EXT2_FCBVCB
 
struct  _EXT2_VCB
 
struct  _EXT2_FCB
 
struct  _EXT2_MCB
 
struct  _EXT2_CCB
 
struct  ext2_icb
 
struct  _EXT2_ALLOC_HEADER
 
struct  _FCB_LIST_ENTRY
 
struct  _EXT2_EXTENT
 
struct  _EXT2_FILLDIR_CONTEXT
 
struct  _EXT2_RW_CONTEXT
 

Macros

#define EXT2_DEBUG   0
 
#define EXT_DEBUG_BREAKPOINT   FALSE
 
#define DbgBreak()
 
#define EXT2FSD_VERSION   "0.69"
 
#define EXT2_UNLOAD   FALSE
 
#define EXT2_PRE_ALLOCATION_SUPPORT   TRUE
 
#define EXT2_MAX_NESTED_LINKS   (8)
 
#define EXT2_LINKLEN_IN_INODE   (60)
 
#define EXT2_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   (0x400)
 
#define SUPER_BLOCK_SIZE   (0x400)
 
#define READ_AHEAD_GRANULARITY   (0x10000)
 
#define SUPER_BLOCK   (Vcb->SuperBlock)
 
#define INODE_SIZE   (Vcb->InodeSize)
 
#define BLOCK_SIZE   (Vcb->BlockSize)
 
#define BLOCK_BITS   (SUPER_BLOCK->s_log_block_size + 10)
 
#define GROUP_DESC_SIZE   (Vcb->sbi.s_desc_size)
 
#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   (ext3_blocks_count(SUPER_BLOCK))
 
#define EXT2_FIRST_DATA_BLOCK   (SUPER_BLOCK->s_first_data_block)
 
#define CEILING_ALIGNED(T, A, B)   (((A) + (B) - 1) & (~((T)(B) - 1)))
 
#define COCKLOFT_ALIGNED(T, A, B)   (((A) + (B)) & (~((T)(B) - 1)))
 
#define CL_ASSERT(cond)   do {switch('x') {case (cond): case 0: break;}} while (0)
 
#define DRIVER_NAME   "Ext2Fsd"
 
#define DEVICE_NAME   L"\\Ext2Fsd"
 
#define CDROM_NAME   L"\\Ext2CdFsd"
 
#define PARAMETERS_KEY   L"\\Parameters"
 
#define VOLUMES_KEY   L"\\Volumes"
 
#define READING_ONLY   L"Readonly"
 
#define WRITING_SUPPORT   L"WritingSupport"
 
#define CHECKING_BITMAP   L"CheckingBitmap"
 
#define EXT3_FORCEWRITING   L"Ext3ForceWriting"
 
#define CODEPAGE_NAME   L"CodePage"
 
#define HIDING_PREFIX   L"HidingPrefix"
 
#define HIDING_SUFFIX   L"HidingSuffix"
 
#define AUTO_MOUNT   L"AutoMount"
 
#define MOUNT_POINT   L"MountPoint"
 
#define UID   L"uid"
 
#define GID   L"gid"
 
#define EUID   L"euid"
 
#define EGID   L"egid"
 
#define DOS_DEVICE_NAME   L"\\DosDevices\\Ext2Fsd"
 
#define IsFlagOn(a, b)   ((BOOLEAN)(FlagOn(a,b) == b))
 
#define FlagOn(_F, _SF)   ((_F) & (_SF))
 
#define BooleanFlagOn(F, SF)   ((BOOLEAN)(((F) & (SF)) != 0))
 
#define SetFlag(_F, _SF)   ((_F) |= (_SF))
 
#define ClearFlag(_F, _SF)   ((_F) &= ~(_SF))
 
#define min(a, b)   (((a) < (b)) ? (a) : (b))
 
#define max(a, b)   (((a) > (b)) ? (a) : (b))
 
#define SetLongFlag(_F, _SF)   InterlockedOr(&(_F), (ULONG)(_SF))
 
#define ClearLongFlag(_F, _SF)   InterlockedAnd(&(_F), ~((ULONG)(_SF)))
 
#define Ext2RaiseStatus(IRPCONTEXT, STATUS)
 
#define Ext2NormalizeAndRaiseStatus(IRPCONTEXT, STATUS)
 
#define FILE_WRITE_TO_END_OF_FILE   0xffffffff
 
#define IsWritingToEof(Pos)
 
#define IsDirectory(Fcb)   IsMcbDirectory((Fcb)->Mcb)
 
#define IsSpecialFile(Fcb)   IsMcbSpecialFile((Fcb)->Mcb)
 
#define IsSymLink(Fcb)   IsMcbSymLink((Fcb)->Mcb)
 
#define IsInodeSymLink(I)   S_ISLNK((I)->i_mode)
 
#define IsRoot(Fcb)   IsMcbRoot((Fcb)->Mcb)
 
#define TAG_VPB   ' bpV'
 
#define VPB_SIZE   sizeof(VPB)
 
#define EXT2_DATA_MAGIC   'BD2E'
 
#define EXT2_INAME_MAGIC   'NI2E'
 
#define EXT2_FNAME_MAGIC   'NF2E'
 
#define EXT2_VNAME_MAGIC   'NV2E'
 
#define EXT2_DENTRY_MAGIC   'ED2E'
 
#define EXT2_DIRSP_MAGIC   'SD2E'
 
#define EXT2_SB_MAGIC   'BS2E'
 
#define EXT2_GD_MAGIC   'DG2E'
 
#define EXT2_FLIST_MAGIC   'LF2E'
 
#define EXT2_PARAM_MAGIC   'PP2E'
 
#define EXT2_RWC_MAGIC   'WR2E'
 
#define EXT2_FILE_SYSTEM   (FILE_SYSTEM)
 
#define EXT2_BUGCHK_BLOCK   (0x00010000)
 
#define EXT2_BUGCHK_CLEANUP   (0x00020000)
 
#define EXT2_BUGCHK_CLOSE   (0x00030000)
 
#define EXT2_BUGCHK_CMCB   (0x00040000)
 
#define EXT2_BUGCHK_CREATE   (0x00050000)
 
#define EXT2_BUGCHK_DEBUG   (0x00060000)
 
#define EXT2_BUGCHK_DEVCTL   (0x00070000)
 
#define EXT2_BUGCHK_DIRCTL   (0x00080000)
 
#define EXT2_BUGCHK_DISPATCH   (0x00090000)
 
#define EXT2_BUGCHK_EXCEPT   (0x000A0000)
 
#define EXT2_BUGCHK_EXT2   (0x000B0000)
 
#define EXT2_BUGCHK_FASTIO   (0x000C0000)
 
#define EXT2_BUGCHK_FILEINFO   (0x000D0000)
 
#define EXT2_BUGCHK_FLUSH   (0x000E0000)
 
#define EXT2_BUGCHK_FSCTL   (0x000F0000)
 
#define EXT2_BUGCHK_INIT   (0x00100000)
 
#define EXT2_BUGCHK_LOCK   (0x0011000)
 
#define EXT2_BUGCHK_MEMORY   (0x0012000)
 
#define EXT2_BUGCHK_MISC   (0x0013000)
 
#define EXT2_BUGCHK_READ   (0x00140000)
 
#define EXT2_BUGCHK_SHUTDOWN   (0x00150000)
 
#define EXT2_BUGCHK_VOLINFO   (0x00160000)
 
#define EXT2_BUGCHK_WRITE   (0x00170000)
 
#define EXT2_BUGCHK_LAST   (0x00170000)
 
#define Ext2BugCheck(A, B, C, D)   { KeBugCheckEx(EXT2_FILE_SYSTEM, A | __LINE__, B, C, D ); }
 
#define EXT2_SUPER_MAGIC   0xEF53
 
#define EXT2_MIN_BLOCK   1024
 
#define EXT2_MIN_FRAG   1024
 
#define EXT2_MAX_USER_BLKSIZE   65536
 
#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_IRWNU   0x180 /* 0 0600 */
 
#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_IRWNG   0x030 /* 0 0060 */
 
#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_IRWNO   0x006 /* 0 0006 */
 
#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_IFATTR   (S_IRWNU|S_IRWNG|S_IRWNO)
 
#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 Ext2SetReadable(m)   do {(m) = (m) | (S_IRUSR | S_IRGRP | S_IROTH);} while(0)
 
#define Ext2SetWritable(m)   do {(m) = (m) | (S_IWUSR | S_IWGRP | S_IWOTH);} while(0)
 
#define Ext2SetOwnerWritable(m)   do {(m) |= S_IWUSR;} while(0)
 
#define Ext2SetOwnerReadOnly(m)   do {(m) &= ~S_IWUSR;} while(0)
 
#define Ext2IsOwnerWritable(m)   (((m) & S_IWUSR) == S_IWUSR)
 
#define Ext2IsOwnerReadable(m)   (((m) & S_IRUSR) == S_IRUSR)
 
#define Ext2IsOwnerReadOnly(m)   (!(Ext2IsOwnerWritable(m)) && Ext2IsOwnerReadable(m))
 
#define Ext2IsGroupWritable(m)   (((m) & S_IWGRP) == S_IWGRP)
 
#define Ext2IsGroupReadable(m)   (((m) & S_IRGRP) == S_IRGRP)
 
#define Ext2IsGroupReadOnly(m)   (!(Ext2IsGroupWritable(m)) && Ext2IsGroupReadable(m))
 
#define Ext2IsOtherWritable(m)   (((m) & S_IWOTH) == S_IWOTH)
 
#define Ext2IsOtherReadable(m)   (((m) & S_IROTH) == S_IROTH)
 
#define Ext2IsOtherReadOnly(m)   (!(Ext2IsOtherWritable(m)) && Ext2IsOtherReadable(m))
 
#define Ext2SetReadOnly(m)   do {(m) &= ~(S_IWUSR | S_IWGRP | S_IWOTH);} while(0)
 
#define Ext2FileCanRead   (0x1)
 
#define Ext2FileCanWrite   (0x2)
 
#define Ext2FileCanExecute   (0x4)
 
#define NodeType(Ptr)   (*((EXT2_IDENTIFIER_TYPE *)(Ptr)))
 
#define EXT2_REAPER_FLAG_STOP   (1 << 0)
 
#define EXT2_UNLOAD_PENDING   0x00000001
 
#define EXT2_SUPPORT_WRITING   0x00000002
 
#define EXT3_FORCE_WRITING   0x00000004
 
#define EXT2_CHECKING_BITMAP   0x00000008
 
#define EXT2_AUTO_MOUNT   0x00000010
 
#define INC_MEM_COUNT(_i, _p, _s)   do { ASSERT(_p); Ext2TraceMemory(TRUE, (int) (_i), (PVOID)(_p), (LONG)(_s)); } while(0)
 
#define DEC_MEM_COUNT(_i, _p, _s)   do { ASSERT(_p); Ext2TraceMemory(FALSE, (int) (_i), (PVOID)(_p), (LONG)(_s)); } while(0)
 
#define INC_IRP_COUNT(IrpContext)   Ext2TraceIrpContext(TRUE, (IrpContext))
 
#define DEC_IRP_COUNT(IrpContext)   Ext2TraceIrpContext(FALSE, (IrpContext))
 
#define IsExt2FsDevice(DO)
 
#define VCB_INITIALIZED   0x00000001
 
#define VCB_VOLUME_LOCKED   0x00000002
 
#define VCB_MOUNTED   0x00000004
 
#define VCB_DISMOUNT_PENDING   0x00000008
 
#define VCB_NEW_VPB   0x00000010
 
#define VCB_BEING_CLOSED   0x00000020
 
#define VCB_USER_IDS   0x00000040 /* uid/gid specified by user */
 
#define VCB_USER_EIDS   0x00000080 /* euid/egid specified by user */
 
#define VCB_GD_LOADED   0x00000100 /* group desc loaded */
 
#define VCB_BEING_DROPPED   0x00002000
 
#define VCB_FORCE_WRITING   0x00004000
 
#define VCB_DEVICE_REMOVED   0x00008000
 
#define VCB_JOURNAL_RECOVER   0x00080000
 
#define VCB_ARRIVAL_NOTIFIED   0x00800000
 
#define VCB_RO_COMPAT_READ_ONLY   0x01000000
 
#define VCB_READ_ONLY   0x08000000
 
#define VCB_WRITE_PROTECTED   0x10000000
 
#define VCB_FLOPPY_DISK   0x20000000
 
#define VCB_REMOVAL_PREVENTED   0x40000000
 
#define VCB_REMOVABLE_MEDIA   0x80000000
 
#define IsVcbInited(Vcb)   (IsFlagOn((Vcb)->Flags, VCB_INITIALIZED))
 
#define IsMounted(Vcb)   (IsFlagOn((Vcb)->Flags, VCB_MOUNTED))
 
#define IsDispending(Vcb)   (IsFlagOn((Vcb)->Flags, VCB_DISMOUNT_PENDING))
 
#define IsVcbReadOnly(Vcb)
 
#define IsExt3ForceWrite()   (IsFlagOn(Ext2Global->Flags, EXT3_FORCE_WRITING))
 
#define IsVcbForceWrite(Vcb)   (IsFlagOn((Vcb)->Flags, VCB_FORCE_WRITING))
 
#define CanIWrite(Vcb)   (IsExt3ForceWrite() || (!IsVcbReadOnly(Vcb) && IsVcbForceWrite(Vcb)))
 
#define IsLazyWriter(Fcb)   ((Fcb)->LazyWriterThread == PsGetCurrentThread())
 
#define FCB_FROM_POOL   0x00000001
 
#define FCB_PAGE_FILE   0x00000002
 
#define FCB_FILE_MODIFIED   0x00000020
 
#define FCB_ALLOC_IN_CREATE   0x00000080
 
#define FCB_ALLOC_IN_WRITE   0x00000100
 
#define FCB_ALLOC_IN_SETINFO   0x00000200
 
#define FCB_DELETE_PENDING   0x80000000
 
#define MCB_FROM_POOL   0x00000001
 
#define MCB_VCB_LINK   0x00000002
 
#define MCB_ENTRY_TREE   0x00000004
 
#define MCB_FILE_DELETED   0x00000008
 
#define MCB_ZONE_INITED   0x20000000
 
#define MCB_TYPE_SPECIAL   0x40000000 /* unresolved symlink + device node */
 
#define MCB_TYPE_SYMLINK   0x80000000
 
#define IsMcbUsed(Mcb)   ((Mcb)->Refercount > 0)
 
#define IsMcbSymLink(Mcb)   IsFlagOn((Mcb)->Flags, MCB_TYPE_SYMLINK)
 
#define IsZoneInited(Mcb)   IsFlagOn((Mcb)->Flags, MCB_ZONE_INITED)
 
#define IsMcbSpecialFile(Mcb)   IsFlagOn((Mcb)->Flags, MCB_TYPE_SPECIAL)
 
#define IsMcbRoot(Mcb)   ((Mcb)->Inode.i_ino == EXT2_ROOT_INO)
 
#define IsMcbReadonly(Mcb)   IsFlagOn((Mcb)->FileAttr, FILE_ATTRIBUTE_READONLY)
 
#define IsMcbDirectory(Mcb)   IsFlagOn((Mcb)->FileAttr, FILE_ATTRIBUTE_DIRECTORY)
 
#define IsFileDeleted(Mcb)   IsFlagOn((Mcb)->Flags, MCB_FILE_DELETED)
 
#define IsLinkInvalid(Mcb)   (IsMcbSymLink(Mcb) && IsFileDeleted(Mcb->Target))
 
#define Ext2ReferXcb(_C)   InterlockedIncrement(_C)
 
#define Ext2DerefXcb(_C)   DEC_OBJ_CNT(_C)
 
#define Ext2ReferMcb(Mcb)   Ext2ReferXcb(&Mcb->Refercount)
 
#define Ext2DerefMcb(Mcb)   Ext2DerefXcb(&Mcb->Refercount)
 
#define CCB_FROM_POOL   0x00000001
 
#define CCB_VOLUME_DASD_PURGE   0x00000002
 
#define CCB_LAST_WRITE_UPDATED   0x00000004
 
#define CCB_OPEN_REPARSE_POINT   0x00000008
 
#define CCB_DELETE_ON_CLOSE   0x00000010
 
#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_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 IRP_CONTEXT_FLAG_FILE_BUSY   (0x00001000)
 
#define Ext2CanIWait()   (!IrpContext || IsFlagOn(IrpContext->Flags, IRP_CONTEXT_FLAG_WAIT))
 
#define FSCTL_GET_RETRIEVAL_POINTER_BASE   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 141, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES   0x00800000
 
#define CanExt2Wait(IRP)   IoIsOperationSynchronous(Irp)
 
#define EXT2_LOOKUP_FLAG_MASK   (0xFF00000)
 
#define EXT2_LOOKUP_NOT_FOLLOW   (0x8000000)
 
#define DL_NVR   0
 
#define DL_VIT   0x00000001
 
#define DL_ERR   0x00000002
 
#define DL_DBG   0x00000004
 
#define DL_INF   0x00000008
 
#define DL_FUN   0x00000010
 
#define DL_LOW   0x00000020
 
#define DL_REN   0x00000040 /* renaming operation */
 
#define DL_RES   0x00000080 /* entry reference managment */
 
#define DL_BLK   0x00000100 /* data block allocation / free */
 
#define DL_CP   0x00000200 /* code pages (create, querydir) */
 
#define DL_EXT   0x00000400 /* mcb extents */
 
#define DL_MAP   0x00000800 /* retrieval points */
 
#define DL_JNL   0x00001000 /* dump journal operations */
 
#define DL_HTI   0x00002000 /* htree index */
 
#define DL_WRN   0x00004000 /* warning */
 
#define DL_BH   0x00008000 /* buffer head */
 
#define DL_PNP   0x00010000 /* pnp */
 
#define DL_IO   0x00020000 /* file i/o */
 
#define DL_DEFAULT   (DL_ERR|DL_VIT)
 
#define DEBUG(_DL, arg)   do {if ((_DL) & DL_ERR) DbgPrint arg;} while(0)
 
#define Ext2CompleteRequest(Irp, bPrint, PriorityBoost)    IoCompleteRequest(Irp, PriorityBoost)
 
#define Ext2GetCurrentProcessName()
 
#define ext3_error   ext3_warning
 
#define ext4_error   ext3_error
 
#define EXT2_RW_CONTEXT_WRITE   1
 

Typedefs

typedef struct ext3_super_block EXT2_SUPER_BLOCK
 
typedef struct ext3_super_blockPEXT2_SUPER_BLOCK
 
typedef struct ext3_inode EXT2_INODE
 
typedef struct ext3_inodePEXT2_INODE
 
typedef struct ext4_group_desc EXT2_GROUP_DESC
 
typedef struct ext4_group_descPEXT2_GROUP_DESC
 
typedef struct ext3_dir_entry EXT2_DIR_ENTRY
 
typedef struct ext3_dir_entryPEXT2_DIR_ENTRY
 
typedef struct ext3_dir_entry_2 EXT2_DIR_ENTRY2
 
typedef struct ext3_dir_entry_2PEXT2_DIR_ENTRY2
 
typedef IO_STACK_LOCATION EXTENDED_IO_STACK_LOCATION
 
typedef IO_STACK_LOCATIONPEXTENDED_IO_STACK_LOCATION
 
typedef enum _EXT2_IDENTIFIER_TYPE EXT2_IDENTIFIER_TYPE
 
typedef struct _EXT2_IDENTIFIER EXT2_IDENTIFIER
 
typedef struct _EXT2_IDENTIFIERPEXT2_IDENTIFIER
 
typedef struct _EXT2_MCB EXT2_MCB
 
typedef struct _EXT2_MCBPEXT2_MCB
 
typedef PVOID PBCB
 
typedef VOID(* EXT2_REAPER_RELEASE) (PVOID)
 
typedef struct _EXT2_REAPER EXT2_REAPER
 
typedef struct _EXT2_REAPERPEXT2_REAPER
 
typedef struct _EXT2_GLOBAL EXT2_GLOBAL
 
typedef struct _EXT2_GLOBALPEXT2_GLOBAL
 
typedef struct _EXT2_FCBVCB EXT2_FCBVCB
 
typedef struct _EXT2_FCBVCBPEXT2_FCBVCB
 
typedef struct _EXT2_VCB EXT2_VCB
 
typedef struct _EXT2_VCBPEXT2_VCB
 
typedef struct _EXT2_FCB EXT2_FCB
 
typedef struct _EXT2_FCBPEXT2_FCB
 
typedef struct _EXT2_CCB EXT2_CCB
 
typedef struct _EXT2_CCBPEXT2_CCB
 
typedef struct ext2_icb EXT2_IRP_CONTEXT
 
typedef struct ext2_icbPEXT2_IRP_CONTEXT
 
typedef struct _EXT2_ALLOC_HEADER EXT2_ALLOC_HEADER
 
typedef struct _EXT2_ALLOC_HEADERPEXT2_ALLOC_HEADER
 
typedef struct _FCB_LIST_ENTRY FCB_LIST_ENTRY
 
typedef struct _FCB_LIST_ENTRYPFCB_LIST_ENTRY
 
typedef struct _EXT2_EXTENT EXT2_EXTENT
 
typedef struct _EXT2_EXTENTPEXT2_EXTENT
 
typedef struct _EXT2_FILLDIR_CONTEXT EXT2_FILLDIR_CONTEXT
 
typedef struct _EXT2_FILLDIR_CONTEXTPEXT2_FILLDIR_CONTEXT
 
typedef int(* filldir_t) (void *, const char *, int, unsigned long, __u32, unsigned)
 
typedef struct _EXT2_RW_CONTEXT EXT2_RW_CONTEXT
 
typedef struct _EXT2_RW_CONTEXTPEXT2_RW_CONTEXT
 

Enumerations

enum  _EXT2_IDENTIFIER_TYPE {
  EXT2FGD = 0xE2FD0001 , EXT2VCB = 0xE2FD0002 , EXT2FCB = 0xE2FD0003 , EXT2CCB = 0xE2FD0004 ,
  EXT2ICX = 0xE2FD0005 , EXT2FSD = 0xE2FD0006 , EXT2MCB = 0xE2FD0007
}
 

Functions

__inline ULONG DEC_OBJ_CNT (PULONG _C)
 
__inline VOID Ext2TraceMemory (BOOLEAN _n, int _i, PVOID _p, LONG _s)
 
__inline VOID Ext2TraceIrpContext (BOOLEAN _n, PEXT2_IRP_CONTEXT IrpContext)
 
int Ext2CheckInodeAccess (PEXT2_VCB Vcb, struct inode *in, int attempt)
 
int Ext2CheckFileAccess (PEXT2_VCB Vcb, PEXT2_MCB Mcb, int attempt)
 
PMDL Ext2CreateMdl (IN PVOID Buffer, IN ULONG Length, IN LOCK_OPERATION Operation)
 
VOID Ext2DestroyMdl (IN PMDL Mdl)
 
NTSTATUS Ext2LockUserBuffer (IN PIRP Irp, IN ULONG Length, IN LOCK_OPERATION Operation)
 
PVOID Ext2GetUserBuffer (IN PIRP Irp)
 
NTSTATUS Ext2ReadWriteBlocks (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_EXTENT Extent, IN ULONG Length)
 
NTSTATUS Ext2ReadSync (IN PEXT2_VCB Vcb, IN ULONGLONG Offset, IN ULONG Length, OUT PVOID Buffer, IN BOOLEAN bVerify)
 
NTSTATUS Ext2ReadDisk (IN PEXT2_VCB Vcb, IN ULONGLONG Offset, IN ULONG Size, IN PVOID Buffer, IN BOOLEAN bVerify)
 
NTSTATUS Ext2DiskIoControl (IN PDEVICE_OBJECT DeviceOjbect, IN ULONG IoctlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, IN OUT PVOID OutputBuffer, IN OUT PULONG OutputBufferSize)
 
VOID Ext2MediaEjectControl (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bPrevent)
 
NTSTATUS Ext2DiskShutDown (PEXT2_VCB Vcb)
 
NTSTATUS Ext2Cleanup (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2Close (IN PEXT2_IRP_CONTEXT IrpContext)
 
VOID Ext2QueueCloseRequest (IN PEXT2_IRP_CONTEXT IrpContext)
 
VOID Ext2DeQueueCloseRequest (IN PVOID Context)
 
BOOLEAN Ext2AcquireForLazyWrite (IN PVOID Context, IN BOOLEAN Wait)
 
VOID Ext2ReleaseFromLazyWrite (IN PVOID Context)
 
BOOLEAN Ext2AcquireForReadAhead (IN PVOID Context, IN BOOLEAN Wait)
 
VOID Ext2ReleaseFromReadAhead (IN PVOID Context)
 
BOOLEAN Ext2NoOpAcquire (IN PVOID Fcb, IN BOOLEAN Wait)
 
VOID Ext2NoOpRelease (IN PVOID Fcb)
 
BOOLEAN Ext2IsNameValid (PUNICODE_STRING FileName)
 
NTSTATUS Ext2FollowLink (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Parent, IN PEXT2_MCB Mcb, IN ULONG Linkdep)
 
NTSTATUS Ext2ScanDir (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Parent, IN PUNICODE_STRING FileName, OUT PULONG Inode, struct dentry **dentry)
 
BOOLEAN Ext2IsSpecialSystemFile (IN PUNICODE_STRING FileName, IN BOOLEAN bDirectory)
 
NTSTATUS Ext2LookupFile (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PUNICODE_STRING FullName, IN PEXT2_MCB Parent, OUT PEXT2_MCB *Ext2Mcb, IN ULONG Linkdep)
 
NTSTATUS Ext2CreateFile (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, OUT PBOOLEAN OpPostIrp)
 
NTSTATUS Ext2CreateVolume (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb)
 
NTSTATUS Ext2Create (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2CreateInode (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_FCB pParentFcb, IN ULONG Type, IN ULONG FileAttr, IN PUNICODE_STRING FileName)
 
NTSTATUS Ext2SupersedeOrOverWriteFile (IN PEXT2_IRP_CONTEXT IrpContext, IN PFILE_OBJECT FileObject, IN PEXT2_VCB Vcb, IN PEXT2_FCB Fcb, IN PLARGE_INTEGER AllocationSize, IN ULONG Disposition)
 
VOID __cdecl Ext2Printf (PCHAR DebugMessage,...)
 
ULONG Ext2GetProcessNameOffset (VOID)
 
VOID Ext2DbgPrintCall (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
VOID Ext2DbgPrintComplete (IN PIRP Irp, IN BOOLEAN bPrint)
 
PUCHAR Ext2NtStatusToString (IN NTSTATUS Status)
 
PVOID Ext2AllocatePool (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag)
 
VOID Ext2FreePool (IN PVOID P, IN ULONG Tag)
 
NTSTATUS Ext2ProcessGlobalProperty (IN PDEVICE_OBJECT DeviceObject, IN PEXT2_VOLUME_PROPERTY3 Property, IN ULONG Length)
 
NTSTATUS Ext2ProcessVolumeProperty (IN PEXT2_VCB Vcb, IN PEXT2_VOLUME_PROPERTY3 Property, IN ULONG Length)
 
NTSTATUS Ext2ProcessUserProperty (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VOLUME_PROPERTY3 Property, IN ULONG Length)
 
NTSTATUS Ex2ProcessUserPerfStat (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_QUERY_PERFSTAT QueryPerf, IN ULONG Length)
 
NTSTATUS Ex2ProcessMountPoint (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_MOUNT_POINT MountPoint, IN ULONG Length)
 
NTSTATUS Ext2DeviceControlNormal (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2PrepareToUnload (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2DeviceControl (IN PEXT2_IRP_CONTEXT IrpContext)
 
ULONG Ext2GetInfoLength (IN FILE_INFORMATION_CLASS FileInformationClass)
 
NTSTATUS Ext2ProcessEntry (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_FCB Dcb, IN FILE_INFORMATION_CLASS FileInformationClass, IN ULONG in, IN PVOID Buffer, IN ULONG UsedLength, IN ULONG Length, IN ULONG FileIndex, IN PUNICODE_STRING pName, OUT PULONG EntrySize, IN BOOLEAN Single)
 
BOOLEAN Ext2IsWearingCloak (IN PEXT2_VCB Vcb, IN POEM_STRING OeName)
 
NTSTATUS Ext2QueryDirectory (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2NotifyChangeDirectory (IN PEXT2_IRP_CONTEXT IrpContext)
 
VOID Ext2NotifyReportChange (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Filter, IN ULONG Action)
 
NTSTATUS Ext2DirectoryControl (IN PEXT2_IRP_CONTEXT IrpContext)
 
BOOLEAN Ext2IsDirectoryEmpty (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb)
 
VOID Ext2OplockComplete (IN PVOID Context, IN PIRP Irp)
 
VOID Ext2LockIrp (IN PVOID Context, IN PIRP Irp)
 
NTSTATUS Ext2QueueRequest (IN PEXT2_IRP_CONTEXT IrpContext)
 
VOID Ext2DeQueueRequest (IN PVOID Context)
 
NTSTATUS Ext2DispatchRequest (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2BuildRequest (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS Ext2QueryEa (IN PEXT2_IRP_CONTEXT IrpContext)
 
BOOLEAN Ext2IsEaNameValid (IN OEM_STRING Name)
 
NTSTATUS Ext2SetEa (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2ExceptionFilter (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer)
 
NTSTATUS Ext2ExceptionHandler (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2MapExtent (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Index, IN BOOLEAN Alloc, OUT PULONG Block, OUT PULONG Number)
 
NTSTATUS Ext2ExpandExtent (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_MCB Mcb, ULONG Start, ULONG End, PLARGE_INTEGER Size)
 
NTSTATUS Ext2TruncateExtent (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_MCB Mcb, PLARGE_INTEGER Size)
 
static ext3_fsblk_t ext3_blocks_count (struct ext3_super_block *es)
 
static ext3_fsblk_t ext3_r_blocks_count (struct ext3_super_block *es)
 
static ext3_fsblk_t ext3_free_blocks_count (struct ext3_super_block *es)
 
static void ext3_blocks_count_set (struct ext3_super_block *es, ext3_fsblk_t blk)
 
static void ext3_free_blocks_count_set (struct ext3_super_block *es, ext3_fsblk_t blk)
 
static void ext3_r_blocks_count_set (struct ext3_super_block *es, ext3_fsblk_t blk)
 
blkcnt_t ext3_inode_blocks (struct ext3_inode *raw_inode, struct inode *inode)
 
int ext3_inode_blocks_set (struct ext3_inode *raw_inode, struct inode *inode)
 
ext4_fsblk_t ext4_block_bitmap (struct super_block *sb, struct ext4_group_desc *bg)
 
ext4_fsblk_t ext4_inode_bitmap (struct super_block *sb, struct ext4_group_desc *bg)
 
ext4_fsblk_t ext4_inode_table (struct super_block *sb, struct ext4_group_desc *bg)
 
__u32 ext4_free_blks_count (struct super_block *sb, struct ext4_group_desc *bg)
 
__u32 ext4_free_inodes_count (struct super_block *sb, struct ext4_group_desc *bg)
 
__u32 ext4_used_dirs_count (struct super_block *sb, struct ext4_group_desc *bg)
 
__u32 ext4_itable_unused_count (struct super_block *sb, struct ext4_group_desc *bg)
 
void ext4_block_bitmap_set (struct super_block *sb, struct ext4_group_desc *bg, ext4_fsblk_t blk)
 
void ext4_inode_bitmap_set (struct super_block *sb, struct ext4_group_desc *bg, ext4_fsblk_t blk)
 
void ext4_inode_table_set (struct super_block *sb, struct ext4_group_desc *bg, ext4_fsblk_t blk)
 
void ext4_free_blks_set (struct super_block *sb, struct ext4_group_desc *bg, __u32 count)
 
void ext4_free_inodes_set (struct super_block *sb, struct ext4_group_desc *bg, __u32 count)
 
void ext4_used_dirs_set (struct super_block *sb, struct ext4_group_desc *bg, __u32 count)
 
void ext4_itable_unused_set (struct super_block *sb, struct ext4_group_desc *bg, __u32 count)
 
int ext3_bg_has_super (struct super_block *sb, ext3_group_t group)
 
unsigned long ext4_bg_num_gdb (struct super_block *sb, ext4_group_t group)
 
unsigned ext4_init_inode_bitmap (struct super_block *sb, struct buffer_head *bh, ext4_group_t block_group, struct ext4_group_desc *gdp)
 
unsigned ext4_init_block_bitmap (struct super_block *sb, struct buffer_head *bh, ext4_group_t block_group, struct ext4_group_desc *gdp)
 
struct ext4_group_descext4_get_group_desc (struct super_block *sb, ext4_group_t block_group, struct buffer_head **bh)
 
ext4_fsblk_t ext4_count_free_blocks (struct super_block *sb)
 
unsigned long ext4_count_free_inodes (struct super_block *sb)
 
int ext4_check_descriptors (struct super_block *sb)
 
NTSTATUS Ext2LoadSuper (IN PEXT2_VCB Vcb, IN BOOLEAN bVerify, OUT PEXT2_SUPER_BLOCK *Sb)
 
BOOLEAN Ext2SaveSuper (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb)
 
BOOLEAN Ext2RefreshSuper (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb)
 
BOOLEAN Ext2LoadGroupBH (IN PEXT2_VCB Vcb)
 
BOOLEAN Ext2LoadGroup (IN PEXT2_VCB Vcb)
 
VOID Ext2DropGroupBH (IN PEXT2_VCB Vcb)
 
VOID Ext2PutGroup (IN PEXT2_VCB Vcb)
 
VOID Ext2DropBH (IN PEXT2_VCB Vcb)
 
NTSTATUS Ext2FlushVcb (IN PEXT2_VCB Vcb)
 
BOOLEAN Ext2SaveGroup (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN ULONG Group)
 
BOOLEAN Ext2RefreshGroup (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb)
 
BOOLEAN Ext2GetInodeLba (IN PEXT2_VCB Vcb, IN ULONG inode, OUT PLONGLONG offset)
 
BOOLEAN Ext2LoadInode (IN PEXT2_VCB Vcb, IN struct inode *Inode)
 
BOOLEAN Ext2ClearInode (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN ULONG inode)
 
BOOLEAN Ext2SaveInode (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN struct inode *Inode)
 
BOOLEAN Ext2LoadInodeXattr (IN PEXT2_VCB Vcb, IN struct inode *Inode, IN PEXT2_INODE InodeXattr)
 
BOOLEAN Ext2SaveInodeXattr (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN struct inode *Inode, IN PEXT2_INODE InodeXattr)
 
BOOLEAN Ext2LoadBlock (IN PEXT2_VCB Vcb, IN ULONG dwBlk, IN PVOID Buffer)
 
BOOLEAN Ext2SaveBlock (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN ULONG dwBlk, IN PVOID Buf)
 
BOOLEAN Ext2LoadBuffer (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN LONGLONG Offset, IN ULONG Size, IN PVOID Buf)
 
BOOLEAN Ext2ZeroBuffer (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN LONGLONG Offset, IN ULONG Size)
 
BOOLEAN Ext2SaveBuffer (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN LONGLONG Offset, IN ULONG Size, IN PVOID Buf)
 
NTSTATUS Ext2GetBlock (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Base, IN ULONG Layer, IN ULONG Start, IN ULONG SizeArray, IN PULONG BlockArray, IN BOOLEAN bAlloc, IN OUT PULONG Hint, OUT PULONG Block, OUT PULONG Number)
 
NTSTATUS Ext2BlockMap (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Index, IN BOOLEAN bAlloc, OUT PULONG pBlock, OUT PULONG Number)
 
VOID Ext2UpdateVcbStat (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb)
 
NTSTATUS Ext2NewBlock (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN ULONG GroupHint, IN ULONG BlockHint, OUT PULONG Block, IN OUT PULONG Number)
 
NTSTATUS Ext2FreeBlock (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN ULONG Block, IN ULONG Number)
 
NTSTATUS Ext2NewInode (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN ULONG GroupHint, IN ULONG Type, OUT PULONG Inode)
 
NTSTATUS Ext2UpdateGroupDirStat (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN ULONG Group)
 
NTSTATUS Ext2FreeInode (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN ULONG Inode, IN ULONG Type)
 
NTSTATUS Ext2AddEntry (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_FCB Dcb, IN struct inode *Inode, IN PUNICODE_STRING FileName, OUT struct dentry **dentry)
 
NTSTATUS Ext2SetFileType (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_FCB Dcb, IN PEXT2_MCB Mcb, IN umode_t mode)
 
NTSTATUS Ext2RemoveEntry (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_FCB Dcb, IN PEXT2_MCB Mcb)
 
NTSTATUS Ext2SetParentEntry (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_FCB Dcb, IN ULONG OldParent, IN ULONG NewParent)
 
NTSTATUS Ext2TruncateBlock (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Base, IN ULONG Start, IN ULONG Layer, IN ULONG SizeArray, IN PULONG BlockArray, IN PULONG Extra)
 
struct ext3_dir_entry_2ext3_next_entry (struct ext3_dir_entry_2 *p)
 
int ext3_check_dir_entry (const char *function, struct inode *dir, struct ext3_dir_entry_2 *de, struct buffer_head *bh, unsigned long offset)
 
loff_t ext3_max_size (int blkbits, int has_huge_files)
 
loff_t ext3_max_bitmap_size (int bits, int has_huge_files)
 
__le16 ext4_group_desc_csum (struct ext3_sb_info *sbi, __u32 block_group, struct ext4_group_desc *gdp)
 
int ext4_group_desc_csum_verify (struct ext3_sb_info *sbi, __u32 block_group, struct ext4_group_desc *gdp)
 
ext3_fsblk_t descriptor_loc (struct super_block *sb, ext3_fsblk_t logical_sb_block, unsigned int nr)
 
FAST_IO_POSSIBLE Ext2IsFastIoPossible (IN PEXT2_FCB Fcb)
 
BOOLEAN Ext2FastIoCheckIfPossible (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 Ext2FastIoRead (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 Ext2FastIoWrite (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 Ext2FastIoQueryBasicInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN Ext2FastIoQueryStandardInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN Ext2FastIoLock (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 Ext2FastIoUnlockSingle (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 Ext2FastIoUnlockAll (IN PFILE_OBJECT FileObject, IN PEPROCESS Process, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN Ext2FastIoUnlockAllByKey (IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN Ext2FastIoQueryNetworkOpenInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_NETWORK_OPEN_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
VOID Ext2AcquireForCreateSection (IN PFILE_OBJECT FileObject)
 
VOID Ext2ReleaseForCreateSection (IN PFILE_OBJECT FileObject)
 
NTSTATUS Ext2AcquireFileForModWrite (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER EndingOffset, OUT PERESOURCE *ResourceToRelease, IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS Ext2ReleaseFileForModWrite (IN PFILE_OBJECT FileObject, IN PERESOURCE ResourceToRelease, IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS Ext2AcquireFileForCcFlush (IN PFILE_OBJECT FileObject, IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS Ext2ReleaseFileForCcFlush (IN PFILE_OBJECT FileObject, IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS Ext2PreAcquireForCreateSection (IN PFS_FILTER_CALLBACK_DATA cd, OUT PVOID *cc)
 
NTSTATUS Ext2QueryFileInformation (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2SetFileInformation (IN PEXT2_IRP_CONTEXT IrpContext)
 
ULONG Ext2TotalBlocks (PEXT2_VCB Vcb, PLARGE_INTEGER Size, PULONG pMeta)
 
NTSTATUS Ext2ExpandFile (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_MCB Mcb, PLARGE_INTEGER Size)
 
NTSTATUS Ext2TruncateFile (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_MCB Mcb, PLARGE_INTEGER AllocationSize)
 
NTSTATUS Ext2IsFileRemovable (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_FCB Fcb, IN PEXT2_CCB Ccb)
 
NTSTATUS Ext2SetDispositionInfo (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_FCB Fcb, PEXT2_CCB Ccb, BOOLEAN bDelete)
 
NTSTATUS Ext2SetRenameInfo (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_FCB Fcb, PEXT2_CCB Ccb)
 
NTSTATUS Ext2SetLinkInfo (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_FCB Fcb, PEXT2_CCB Ccb)
 
ULONG Ext2InodeType (PEXT2_MCB Mcb)
 
NTSTATUS Ext2DeleteFile (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_FCB Fcb, PEXT2_MCB Mcb)
 
NTSTATUS Ext2FlushFiles (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bShutDown)
 
NTSTATUS Ext2FlushVolume (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bShutDown)
 
NTSTATUS Ext2FlushFile (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_FCB Fcb, IN PEXT2_CCB Ccb)
 
NTSTATUS Ext2Flush (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2ReadSymlink (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN PVOID Buffer, IN ULONG Size, OUT PULONG BytesRead)
 
NTSTATUS Ext2WriteSymlink (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN PVOID Buffer, IN ULONG Size, OUT PULONG BytesWritten)
 
NTSTATUS Ext2TruncateSymlink (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_MCB Mcb, ULONG Size)
 
VOID Ext2SetVpbFlag (IN PVPB Vpb, IN USHORT Flag)
 
VOID Ext2ClearVpbFlag (IN PVPB Vpb, IN USHORT Flag)
 
BOOLEAN Ext2CheckDismount (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bForce)
 
NTSTATUS Ext2PurgeVolume (IN PEXT2_VCB Vcb, IN BOOLEAN FlushBeforePurge)
 
NTSTATUS Ext2PurgeFile (IN PEXT2_FCB Fcb, IN BOOLEAN FlushBeforePurge)
 
BOOLEAN Ext2IsHandleCountZero (IN PEXT2_VCB Vcb)
 
NTSTATUS Ext2LockVcb (IN PEXT2_VCB Vcb, IN PFILE_OBJECT FileObject)
 
NTSTATUS Ext2LockVolume (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2UnlockVcb (IN PEXT2_VCB Vcb, IN PFILE_OBJECT FileObject)
 
NTSTATUS Ext2UnlockVolume (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2AllowExtendedDasdIo (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2OplockRequest (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2QueryExtentMappings (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_FCB Fcb, IN PLARGE_INTEGER RequestVbn, OUT PLARGE_INTEGER *pMappedRuns)
 
NTSTATUS Ext2QueryRetrievalPointers (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2GetRetrievalPointers (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2GetRetrievalPointerBase (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2UserFsRequest (IN PEXT2_IRP_CONTEXT IrpContext)
 
BOOLEAN Ext2IsMediaWriteProtected (IN PEXT2_IRP_CONTEXT IrpContext, IN PDEVICE_OBJECT TargetDevice)
 
NTSTATUS Ext2MountVolume (IN PEXT2_IRP_CONTEXT IrpContext)
 
VOID Ext2VerifyVcb (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb)
 
NTSTATUS Ext2VerifyVolume (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2IsVolumeMounted (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2DismountVolume (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2FileSystemControl (IN PEXT2_IRP_CONTEXT IrpContext)
 
struct buffer_headext3_append (struct ext2_icb *icb, struct inode *inode, ext3_lblk_t *block, int *err)
 
void ext3_set_de_type (struct super_block *sb, struct ext3_dir_entry_2 *de, umode_t mode)
 
__u32 ext3_current_time (struct inode *in)
 
void ext3_warning (struct super_block *sb, const char *function, char *fmt,...)
 
void ext3_update_dx_flag (struct inode *inode)
 
int ext3_mark_inode_dirty (struct ext2_icb *icb, struct inode *in)
 
void ext3_inc_count (struct inode *inode)
 
void ext3_dec_count (struct inode *inode)
 
struct buffer_headext3_find_entry (struct ext2_icb *icb, struct dentry *dentry, struct ext3_dir_entry_2 **res_dir)
 
struct buffer_headext3_dx_find_entry (struct ext2_icb *, struct dentry *dentry, struct ext3_dir_entry_2 **res_dir, int *err)
 
int ext3_dx_readdir (struct file *filp, filldir_t filldir, void *context)
 
struct buffer_headext3_bread (struct ext2_icb *icb, struct inode *inode, unsigned long block, int *err)
 
int add_dirent_to_buf (struct ext2_icb *icb, struct dentry *dentry, struct inode *inode, struct ext3_dir_entry_2 *de, struct buffer_head *bh)
 
struct ext3_dir_entry_2do_split (struct ext2_icb *icb, struct inode *dir, struct buffer_head **bh, struct dx_frame *frame, struct dx_hash_info *hinfo, int *error)
 
int ext3_add_entry (struct ext2_icb *icb, struct dentry *dentry, struct inode *inode)
 
int ext3_delete_entry (struct ext2_icb *icb, struct inode *dir, struct ext3_dir_entry_2 *de_del, struct buffer_head *bh)
 
int ext3_is_dir_empty (struct ext2_icb *icb, struct inode *inode)
 
NTSTATUS Ext2QueryGlobalParameters (IN PUNICODE_STRING RegistryPath)
 
BOOLEAN Ext2QueryRegistrySettings (IN PUNICODE_STRING RegistryPath)
 
VOID DriverUnload (IN PDRIVER_OBJECT DriverObject)
 
NTSTATUS Ext2MapIndirect (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Index, IN BOOLEAN bAlloc, OUT PULONG pBlock, OUT PULONG Number)
 
NTSTATUS Ext2ExpandIndirect (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_MCB Mcb, ULONG Start, ULONG End, PLARGE_INTEGER Size)
 
NTSTATUS Ext2TruncateIndirect (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_MCB Mcb, PLARGE_INTEGER Size)
 
int ext2_init_linux ()
 
void ext2_destroy_linux ()
 
NTSTATUS Ext2LockControl (IN PEXT2_IRP_CONTEXT IrpContext)
 
VOID Ext2FcbReaperThread (PVOID Context)
 
VOID Ext2McbReaperThread (PVOID Context)
 
VOID Ext2bhReaperThread (PVOID Context)
 
PEXT2_IRP_CONTEXT Ext2AllocateIrpContext (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
VOID Ext2FreeIrpContext (IN PEXT2_IRP_CONTEXT IrpContext)
 
PEXT2_FCB Ext2AllocateFcb (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb)
 
VOID Ext2UnlinkFcb (IN PEXT2_FCB Fcb)
 
VOID Ext2FreeFcb (IN PEXT2_FCB Fcb)
 
VOID Ext2ReleaseFcb (IN PEXT2_FCB Fcb)
 
VOID Ext2InsertFcb (PEXT2_VCB Vcb, PEXT2_FCB Fcb)
 
PEXT2_CCB Ext2AllocateCcb (ULONG Flags, PEXT2_MCB SymLink)
 
VOID Ext2FreeMcb (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb)
 
VOID Ext2FreeCcb (IN PEXT2_VCB Vcb, IN PEXT2_CCB Ccb)
 
PEXT2_INODE Ext2AllocateInode (PEXT2_VCB Vcb)
 
VOID Ext2DestroyInode (IN PEXT2_VCB Vcb, IN PEXT2_INODE inode)
 
struct dentryExt2AllocateEntry ()
 
VOID Ext2FreeEntry (IN struct dentry *de)
 
struct dentryExt2BuildEntry (PEXT2_VCB Vcb, PEXT2_MCB Dcb, PUNICODE_STRING FileName)
 
PEXT2_EXTENT Ext2AllocateExtent ()
 
VOID Ext2FreeExtent (IN PEXT2_EXTENT Extent)
 
ULONG Ext2CountExtents (IN PEXT2_EXTENT Chain)
 
VOID Ext2JointExtents (IN PEXT2_EXTENT Chain, IN PEXT2_EXTENT Extent)
 
VOID Ext2DestroyExtentChain (IN PEXT2_EXTENT Chain)
 
NTSTATUS Ext2BuildExtents (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONGLONG Offset, IN ULONG Size, IN BOOLEAN bAlloc, OUT PEXT2_EXTENT *Chain)
 
BOOLEAN Ext2ListExtents (PLARGE_MCB Extents)
 
VOID Ext2CheckExtent (PLARGE_MCB Zone, LONGLONG Vbn, LONGLONG Lbn, LONGLONG Length, BOOLEAN bAdded)
 
VOID Ext2ClearAllExtents (PLARGE_MCB Zone)
 
BOOLEAN Ext2AddVcbExtent (IN PEXT2_VCB Vcb, IN LONGLONG Vbn, IN LONGLONG Length)
 
BOOLEAN Ext2RemoveVcbExtent (IN PEXT2_VCB Vcb, IN LONGLONG Vbn, IN LONGLONG Length)
 
BOOLEAN Ext2LookupVcbExtent (IN PEXT2_VCB Vcb, IN LONGLONG Vbn, OUT PLONGLONG Lbn, OUT PLONGLONG Length)
 
BOOLEAN Ext2AddMcbExtent (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN LONGLONG Vbn, IN LONGLONG Lbn, IN LONGLONG Length)
 
BOOLEAN Ext2RemoveMcbExtent (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN LONGLONG Vbn, IN LONGLONG Length)
 
BOOLEAN Ext2LookupMcbExtent (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN LONGLONG Vbn, OUT PLONGLONG Lbn, OUT PLONGLONG Length)
 
BOOLEAN Ext2AddMcbMetaExts (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Block, IN ULONG Length)
 
BOOLEAN Ext2RemoveMcbMetaExts (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Block, IN ULONG Length)
 
BOOLEAN Ext2AddBlockExtent (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Start, IN ULONG Block, IN ULONG Number)
 
BOOLEAN Ext2LookupBlockExtent (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Start, IN PULONG Block, IN PULONG Mapped)
 
BOOLEAN Ext2RemoveBlockExtent (IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Start, IN ULONG Number)
 
NTSTATUS Ext2InitializeZone (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb)
 
BOOLEAN Ext2BuildName (IN OUT PUNICODE_STRING Target, IN PUNICODE_STRING File, IN PUNICODE_STRING Parent)
 
PEXT2_MCB Ext2AllocateMcb (IN PEXT2_VCB Vcb, IN PUNICODE_STRING FileName, IN PUNICODE_STRING Parent, IN ULONG FileAttr)
 
PEXT2_MCB Ext2SearchMcb (PEXT2_VCB Vcb, PEXT2_MCB Parent, PUNICODE_STRING FileName)
 
PEXT2_MCB Ext2SearchMcbWithoutLock (PEXT2_MCB Parent, PUNICODE_STRING FileName)
 
VOID Ext2InsertMcb (PEXT2_VCB Vcb, PEXT2_MCB Parent, PEXT2_MCB Child)
 
BOOLEAN Ext2RemoveMcb (PEXT2_VCB Vcb, PEXT2_MCB Mcb)
 
VOID Ext2CleanupAllMcbs (PEXT2_VCB Vcb)
 
BOOLEAN Ext2CheckSetBlock (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, LONGLONG Block)
 
BOOLEAN Ext2CheckBitmapConsistency (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
 
VOID Ext2InsertVcb (PEXT2_VCB Vcb)
 
VOID Ext2RemoveVcb (PEXT2_VCB Vcb)
 
NTSTATUS Ext2InitializeLabel (IN PEXT2_VCB Vcb, IN PEXT2_SUPER_BLOCK Sb)
 
NTSTATUS Ext2InitializeVcb (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, PEXT2_SUPER_BLOCK Ext2Sb, PDEVICE_OBJECT TargetDevice, PDEVICE_OBJECT VolumeDevice, PVPB Vpb)
 
VOID Ext2TearDownStream (IN PEXT2_VCB Vcb)
 
VOID Ext2DestroyVcb (IN PEXT2_VCB Vcb)
 
NTSTATUS Ext2CompleteIrpContext (IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
 
VOID Ext2SyncUninitializeCacheMap (IN PFILE_OBJECT FileObject)
 
VOID Ext2LinkTailMcb (PEXT2_VCB Vcb, PEXT2_MCB Mcb)
 
VOID Ext2LinkHeadMcb (PEXT2_VCB Vcb, PEXT2_MCB Mcb)
 
VOID Ext2UnlinkMcb (PEXT2_VCB Vcb, PEXT2_MCB Mcb)
 
PEXT2_MCB Ext2FirstUnusedMcb (PEXT2_VCB Vcb, BOOLEAN Wait, ULONG Number)
 
VOID Ext2ReaperThread (PVOID Context)
 
NTSTATUS Ext2StartReaper (PEXT2_REAPER, EXT2_REAPER_RELEASE)
 
VOID Ext2StopReaper (PEXT2_REAPER Reaper)
 
ULONG Ext2Log2 (ULONG Value)
 
LARGE_INTEGER Ext2NtTime (IN ULONG i_time)
 
ULONG Ext2LinuxTime (IN LARGE_INTEGER SysTime)
 
ULONG Ext2OEMToUnicodeSize (IN PEXT2_VCB Vcb, IN PANSI_STRING Oem)
 
NTSTATUS Ext2OEMToUnicode (IN PEXT2_VCB Vcb, IN OUT PUNICODE_STRING Oem, IN POEM_STRING Unicode)
 
ULONG Ext2UnicodeToOEMSize (IN PEXT2_VCB Vcb, IN PUNICODE_STRING Unicode)
 
NTSTATUS Ext2UnicodeToOEM (IN PEXT2_VCB Vcb, IN OUT POEM_STRING Oem, IN PUNICODE_STRING Unicode)
 
VOID Ext2Sleep (ULONG ms)
 
int Ext2LinuxError (NTSTATUS Status)
 
NTSTATUS Ext2WinntError (int rc)
 
BOOLEAN Ext2IsDot (PUNICODE_STRING name)
 
BOOLEAN Ext2IsDotDot (PUNICODE_STRING name)
 
int Ext2LoadAllNls ()
 
VOID Ext2UnloadAllNls ()
 
NTSTATUS Ext2Pnp (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2PnpQueryRemove (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
 
NTSTATUS Ext2PnpRemove (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
 
NTSTATUS Ext2PnpCancelRemove (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
 
NTSTATUS Ext2PnpSurpriseRemove (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
 
NTSTATUS Ext2ReadInode (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONGLONG Offset, IN PVOID Buffer, IN ULONG Size, IN BOOLEAN bDirectIo, OUT PULONG dwReturn)
 
NTSTATUS Ext2Read (IN PEXT2_IRP_CONTEXT IrpContext)
 
PEXT2_MCB Ext2LoadInternalJournal (PEXT2_VCB Vcb, ULONG jNo)
 
INT Ext2CheckJournal (PEXT2_VCB Vcb, PULONG jNo)
 
INT Ext2RecoverJournal (PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
 
NTSTATUS Ext2ShutDown (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2QueryVolumeInformation (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2SetVolumeInformation (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS Ext2WriteInode (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONGLONG Offset, IN PVOID Buffer, IN ULONG Size, IN BOOLEAN bDirectIo, OUT PULONG dwReturn)
 
VOID Ext2StartFloppyFlushDpc (PEXT2_VCB Vcb, PEXT2_FCB Fcb, PFILE_OBJECT FileObject)
 
BOOLEAN Ext2ZeroData (IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER Start, IN PLARGE_INTEGER End)
 
NTSTATUS Ext2Write (IN PEXT2_IRP_CONTEXT IrpContext)
 

Variables

PEXT2_GLOBAL Ext2Global
 
ULONG ProcessNameOffset
 

Macro Definition Documentation

◆ AUTO_MOUNT

#define AUTO_MOUNT   L"AutoMount"

Definition at line 152 of file ext2fs.h.

◆ BLOCK_BITS

#define BLOCK_BITS   (SUPER_BLOCK->s_log_block_size + 10)

Definition at line 94 of file ext2fs.h.

◆ BLOCK_SIZE

#define BLOCK_SIZE   (Vcb->BlockSize)

Definition at line 93 of file ext2fs.h.

◆ BLOCKS_PER_GROUP

#define BLOCKS_PER_GROUP   (SUPER_BLOCK->s_blocks_per_group)

Definition at line 100 of file ext2fs.h.

◆ BooleanFlagOn

#define BooleanFlagOn (   F,
  SF 
)    ((BOOLEAN)(((F) & (SF)) != 0))

Definition at line 183 of file ext2fs.h.

◆ CanExt2Wait

#define CanExt2Wait (   IRP)    IoIsOperationSynchronous(Irp)

Definition at line 1146 of file ext2fs.h.

◆ CanIWrite

#define CanIWrite (   Vcb)    (IsExt3ForceWrite() || (!IsVcbReadOnly(Vcb) && IsVcbForceWrite(Vcb)))

Definition at line 821 of file ext2fs.h.

◆ CCB_ALLOW_EXTENDED_DASD_IO

#define CCB_ALLOW_EXTENDED_DASD_IO   0x80000000

Definition at line 1037 of file ext2fs.h.

◆ CCB_DELETE_ON_CLOSE

#define CCB_DELETE_ON_CLOSE   0x00000010

Definition at line 1035 of file ext2fs.h.

◆ CCB_FROM_POOL

#define CCB_FROM_POOL   0x00000001

Definition at line 1031 of file ext2fs.h.

◆ CCB_LAST_WRITE_UPDATED

#define CCB_LAST_WRITE_UPDATED   0x00000004

Definition at line 1033 of file ext2fs.h.

◆ CCB_OPEN_REPARSE_POINT

#define CCB_OPEN_REPARSE_POINT   0x00000008

Definition at line 1034 of file ext2fs.h.

◆ CCB_VOLUME_DASD_PURGE

#define CCB_VOLUME_DASD_PURGE   0x00000002

Definition at line 1032 of file ext2fs.h.

◆ CDROM_NAME

#define CDROM_NAME   L"\\Ext2CdFsd"

Definition at line 138 of file ext2fs.h.

◆ CEILING_ALIGNED

#define CEILING_ALIGNED (   T,
  A,
  B 
)    (((A) + (B) - 1) & (~((T)(B) - 1)))

Definition at line 111 of file ext2fs.h.

◆ CHECKING_BITMAP

#define CHECKING_BITMAP   L"CheckingBitmap"

Definition at line 147 of file ext2fs.h.

◆ CL_ASSERT

#define CL_ASSERT (   cond)    do {switch('x') {case (cond): case 0: break;}} while (0)

Definition at line 132 of file ext2fs.h.

◆ ClearFlag

#define ClearFlag (   _F,
  _SF 
)    ((_F) &= ~(_SF))

Definition at line 191 of file ext2fs.h.

◆ ClearLongFlag

#define ClearLongFlag (   _F,
  _SF 
)    InterlockedAnd(&(_F), ~((ULONG)(_SF)))

Definition at line 259 of file ext2fs.h.

◆ COCKLOFT_ALIGNED

#define COCKLOFT_ALIGNED (   T,
  A,
  B 
)    (((A) + (B)) & (~((T)(B) - 1)))

Definition at line 112 of file ext2fs.h.

◆ CODEPAGE_NAME

#define CODEPAGE_NAME   L"CodePage"

Definition at line 149 of file ext2fs.h.

◆ DbgBreak

#define DbgBreak ( )

Definition at line 46 of file ext2fs.h.

◆ DEBUG

#define DEBUG (   _DL,
  arg 
)    do {if ((_DL) & DL_ERR) DbgPrint arg;} while(0)

Definition at line 1473 of file ext2fs.h.

◆ DEC_IRP_COUNT

#define DEC_IRP_COUNT (   IrpContext)    Ext2TraceIrpContext(FALSE, (IrpContext))

Definition at line 610 of file ext2fs.h.

◆ DEC_MEM_COUNT

#define DEC_MEM_COUNT (   _i,
  _p,
  _s 
)    do { ASSERT(_p); Ext2TraceMemory(FALSE, (int) (_i), (PVOID)(_p), (LONG)(_s)); } while(0)

Definition at line 608 of file ext2fs.h.

◆ DEFAULT_SECTOR_SIZE

#define DEFAULT_SECTOR_SIZE   (0x200)

Definition at line 83 of file ext2fs.h.

◆ DEVICE_NAME

#define DEVICE_NAME   L"\\Ext2Fsd"

Definition at line 137 of file ext2fs.h.

◆ DL_BH

#define DL_BH   0x00008000 /* buffer head */

Definition at line 1448 of file ext2fs.h.

◆ DL_BLK

#define DL_BLK   0x00000100 /* data block allocation / free */

Definition at line 1441 of file ext2fs.h.

◆ DL_CP

#define DL_CP   0x00000200 /* code pages (create, querydir) */

Definition at line 1442 of file ext2fs.h.

◆ DL_DBG

#define DL_DBG   0x00000004

Definition at line 1435 of file ext2fs.h.

◆ DL_DEFAULT

#define DL_DEFAULT   (DL_ERR|DL_VIT)

Definition at line 1452 of file ext2fs.h.

◆ DL_ERR

#define DL_ERR   0x00000002

Definition at line 1434 of file ext2fs.h.

◆ DL_EXT

#define DL_EXT   0x00000400 /* mcb extents */

Definition at line 1443 of file ext2fs.h.

◆ DL_FUN

#define DL_FUN   0x00000010

Definition at line 1437 of file ext2fs.h.

◆ DL_HTI

#define DL_HTI   0x00002000 /* htree index */

Definition at line 1446 of file ext2fs.h.

◆ DL_INF

#define DL_INF   0x00000008

Definition at line 1436 of file ext2fs.h.

◆ DL_IO

#define DL_IO   0x00020000 /* file i/o */

Definition at line 1450 of file ext2fs.h.

◆ DL_JNL

#define DL_JNL   0x00001000 /* dump journal operations */

Definition at line 1445 of file ext2fs.h.

◆ DL_LOW

#define DL_LOW   0x00000020

Definition at line 1438 of file ext2fs.h.

◆ DL_MAP

#define DL_MAP   0x00000800 /* retrieval points */

Definition at line 1444 of file ext2fs.h.

◆ DL_NVR

#define DL_NVR   0

Definition at line 1432 of file ext2fs.h.

◆ DL_PNP

#define DL_PNP   0x00010000 /* pnp */

Definition at line 1449 of file ext2fs.h.

◆ DL_REN

#define DL_REN   0x00000040 /* renaming operation */

Definition at line 1439 of file ext2fs.h.

◆ DL_RES

#define DL_RES   0x00000080 /* entry reference managment */

Definition at line 1440 of file ext2fs.h.

◆ DL_VIT

#define DL_VIT   0x00000001

Definition at line 1433 of file ext2fs.h.

◆ DL_WRN

#define DL_WRN   0x00004000 /* warning */

Definition at line 1447 of file ext2fs.h.

◆ DOS_DEVICE_NAME

#define DOS_DEVICE_NAME   L"\\DosDevices\\Ext2Fsd"

Definition at line 159 of file ext2fs.h.

◆ DRIVER_NAME

#define DRIVER_NAME   "Ext2Fsd"

Definition at line 136 of file ext2fs.h.

◆ EGID

#define EGID   L"egid"

Definition at line 157 of file ext2fs.h.

◆ EUID

#define EUID   L"euid"

Definition at line 156 of file ext2fs.h.

◆ EXT2_AUTO_MOUNT

#define EXT2_AUTO_MOUNT   0x00000010

Definition at line 594 of file ext2fs.h.

◆ EXT2_BLOCK_TYPES

#define EXT2_BLOCK_TYPES   (0x04)

Definition at line 77 of file ext2fs.h.

◆ EXT2_BUGCHK_BLOCK

#define EXT2_BUGCHK_BLOCK   (0x00010000)

Definition at line 314 of file ext2fs.h.

◆ EXT2_BUGCHK_CLEANUP

#define EXT2_BUGCHK_CLEANUP   (0x00020000)

Definition at line 315 of file ext2fs.h.

◆ EXT2_BUGCHK_CLOSE

#define EXT2_BUGCHK_CLOSE   (0x00030000)

Definition at line 316 of file ext2fs.h.

◆ EXT2_BUGCHK_CMCB

#define EXT2_BUGCHK_CMCB   (0x00040000)

Definition at line 317 of file ext2fs.h.

◆ EXT2_BUGCHK_CREATE

#define EXT2_BUGCHK_CREATE   (0x00050000)

Definition at line 318 of file ext2fs.h.

◆ EXT2_BUGCHK_DEBUG

#define EXT2_BUGCHK_DEBUG   (0x00060000)

Definition at line 319 of file ext2fs.h.

◆ EXT2_BUGCHK_DEVCTL

#define EXT2_BUGCHK_DEVCTL   (0x00070000)

Definition at line 320 of file ext2fs.h.

◆ EXT2_BUGCHK_DIRCTL

#define EXT2_BUGCHK_DIRCTL   (0x00080000)

Definition at line 321 of file ext2fs.h.

◆ EXT2_BUGCHK_DISPATCH

#define EXT2_BUGCHK_DISPATCH   (0x00090000)

Definition at line 322 of file ext2fs.h.

◆ EXT2_BUGCHK_EXCEPT

#define EXT2_BUGCHK_EXCEPT   (0x000A0000)

Definition at line 323 of file ext2fs.h.

◆ EXT2_BUGCHK_EXT2

#define EXT2_BUGCHK_EXT2   (0x000B0000)

Definition at line 324 of file ext2fs.h.

◆ EXT2_BUGCHK_FASTIO

#define EXT2_BUGCHK_FASTIO   (0x000C0000)

Definition at line 325 of file ext2fs.h.

◆ EXT2_BUGCHK_FILEINFO

#define EXT2_BUGCHK_FILEINFO   (0x000D0000)

Definition at line 326 of file ext2fs.h.

◆ EXT2_BUGCHK_FLUSH

#define EXT2_BUGCHK_FLUSH   (0x000E0000)

Definition at line 327 of file ext2fs.h.

◆ EXT2_BUGCHK_FSCTL

#define EXT2_BUGCHK_FSCTL   (0x000F0000)

Definition at line 328 of file ext2fs.h.

◆ EXT2_BUGCHK_INIT

#define EXT2_BUGCHK_INIT   (0x00100000)

Definition at line 329 of file ext2fs.h.

◆ EXT2_BUGCHK_LAST

#define EXT2_BUGCHK_LAST   (0x00170000)

Definition at line 338 of file ext2fs.h.

◆ EXT2_BUGCHK_LOCK

#define EXT2_BUGCHK_LOCK   (0x0011000)

Definition at line 330 of file ext2fs.h.

◆ EXT2_BUGCHK_MEMORY

#define EXT2_BUGCHK_MEMORY   (0x0012000)

Definition at line 331 of file ext2fs.h.

◆ EXT2_BUGCHK_MISC

#define EXT2_BUGCHK_MISC   (0x0013000)

Definition at line 332 of file ext2fs.h.

◆ EXT2_BUGCHK_READ

#define EXT2_BUGCHK_READ   (0x00140000)

Definition at line 333 of file ext2fs.h.

◆ EXT2_BUGCHK_SHUTDOWN

#define EXT2_BUGCHK_SHUTDOWN   (0x00150000)

Definition at line 334 of file ext2fs.h.

◆ EXT2_BUGCHK_VOLINFO

#define EXT2_BUGCHK_VOLINFO   (0x00160000)

Definition at line 335 of file ext2fs.h.

◆ EXT2_BUGCHK_WRITE

#define EXT2_BUGCHK_WRITE   (0x00170000)

Definition at line 336 of file ext2fs.h.

◆ EXT2_CHECKING_BITMAP

#define EXT2_CHECKING_BITMAP   0x00000008

Definition at line 593 of file ext2fs.h.

◆ EXT2_DATA_MAGIC

#define EXT2_DATA_MAGIC   'BD2E'

Definition at line 296 of file ext2fs.h.

◆ EXT2_DEBUG

#define EXT2_DEBUG   0

Definition at line 34 of file ext2fs.h.

◆ EXT2_DENTRY_MAGIC

#define EXT2_DENTRY_MAGIC   'ED2E'

Definition at line 300 of file ext2fs.h.

◆ EXT2_DIRSP_MAGIC

#define EXT2_DIRSP_MAGIC   'SD2E'

Definition at line 301 of file ext2fs.h.

◆ EXT2_FILE_SYSTEM

#define EXT2_FILE_SYSTEM   (FILE_SYSTEM)

Definition at line 312 of file ext2fs.h.

◆ EXT2_FIRST_DATA_BLOCK

#define EXT2_FIRST_DATA_BLOCK   (SUPER_BLOCK->s_first_data_block)

Definition at line 103 of file ext2fs.h.

◆ EXT2_FLIST_MAGIC

#define EXT2_FLIST_MAGIC   'LF2E'

Definition at line 304 of file ext2fs.h.

◆ EXT2_FNAME_MAGIC

#define EXT2_FNAME_MAGIC   'NF2E'

Definition at line 298 of file ext2fs.h.

◆ EXT2_GD_MAGIC

#define EXT2_GD_MAGIC   'DG2E'

Definition at line 303 of file ext2fs.h.

◆ EXT2_INAME_MAGIC

#define EXT2_INAME_MAGIC   'NI2E'

Definition at line 297 of file ext2fs.h.

◆ EXT2_LINKLEN_IN_INODE

#define EXT2_LINKLEN_IN_INODE   (60)

Definition at line 76 of file ext2fs.h.

◆ EXT2_LOOKUP_FLAG_MASK

#define EXT2_LOOKUP_FLAG_MASK   (0xFF00000)

Definition at line 1379 of file ext2fs.h.

◆ EXT2_LOOKUP_NOT_FOLLOW

#define EXT2_LOOKUP_NOT_FOLLOW   (0x8000000)

Definition at line 1380 of file ext2fs.h.

◆ EXT2_MAX_NESTED_LINKS

#define EXT2_MAX_NESTED_LINKS   (8)

Definition at line 75 of file ext2fs.h.

◆ EXT2_MAX_USER_BLKSIZE

#define EXT2_MAX_USER_BLKSIZE   65536

Definition at line 353 of file ext2fs.h.

◆ EXT2_MIN_BLOCK

#define EXT2_MIN_BLOCK   1024

Definition at line 351 of file ext2fs.h.

◆ EXT2_MIN_FRAG

#define EXT2_MIN_FRAG   1024

Definition at line 352 of file ext2fs.h.

◆ EXT2_PARAM_MAGIC

#define EXT2_PARAM_MAGIC   'PP2E'

Definition at line 305 of file ext2fs.h.

◆ EXT2_PRE_ALLOCATION_SUPPORT

#define EXT2_PRE_ALLOCATION_SUPPORT   TRUE

Definition at line 69 of file ext2fs.h.

◆ EXT2_REAPER_FLAG_STOP

#define EXT2_REAPER_FLAG_STOP   (1 << 0)

Definition at line 511 of file ext2fs.h.

◆ EXT2_RW_CONTEXT_WRITE

#define EXT2_RW_CONTEXT_WRITE   1

Definition at line 3215 of file ext2fs.h.

◆ EXT2_RWC_MAGIC

#define EXT2_RWC_MAGIC   'WR2E'

Definition at line 306 of file ext2fs.h.

◆ EXT2_SB_MAGIC

#define EXT2_SB_MAGIC   'BS2E'

Definition at line 302 of file ext2fs.h.

◆ EXT2_SUPER_MAGIC

#define EXT2_SUPER_MAGIC   0xEF53

Definition at line 349 of file ext2fs.h.

◆ EXT2_SUPPORT_WRITING

#define EXT2_SUPPORT_WRITING   0x00000002

Definition at line 591 of file ext2fs.h.

◆ EXT2_UNLOAD

#define EXT2_UNLOAD   FALSE

Definition at line 65 of file ext2fs.h.

◆ EXT2_UNLOAD_PENDING

#define EXT2_UNLOAD_PENDING   0x00000001

Definition at line 590 of file ext2fs.h.

◆ EXT2_VNAME_MAGIC

#define EXT2_VNAME_MAGIC   'NV2E'

Definition at line 299 of file ext2fs.h.

◆ Ext2BugCheck

#define Ext2BugCheck (   A,
  B,
  C,
  D 
)    { KeBugCheckEx(EXT2_FILE_SYSTEM, A | __LINE__, B, C, D ); }

Definition at line 340 of file ext2fs.h.

◆ Ext2CanIWait

#define Ext2CanIWait ( )    (!IrpContext || IsFlagOn(IrpContext->Flags, IRP_CONTEXT_FLAG_WAIT))

Definition at line 1100 of file ext2fs.h.

◆ Ext2CompleteRequest

#define Ext2CompleteRequest (   Irp,
  bPrint,
  PriorityBoost 
)     IoCompleteRequest(Irp, PriorityBoost)

Definition at line 1475 of file ext2fs.h.

◆ Ext2DerefMcb

#define Ext2DerefMcb (   Mcb)    Ext2DerefXcb(&Mcb->Refercount)

Definition at line 996 of file ext2fs.h.

◆ Ext2DerefXcb

#define Ext2DerefXcb (   _C)    DEC_OBJ_CNT(_C)

Definition at line 977 of file ext2fs.h.

◆ Ext2FileCanExecute

#define Ext2FileCanExecute   (0x4)

Definition at line 433 of file ext2fs.h.

◆ Ext2FileCanRead

#define Ext2FileCanRead   (0x1)

Definition at line 431 of file ext2fs.h.

◆ Ext2FileCanWrite

#define Ext2FileCanWrite   (0x2)

Definition at line 432 of file ext2fs.h.

◆ EXT2FSD_VERSION

#define EXT2FSD_VERSION   "0.69"

Definition at line 51 of file ext2fs.h.

◆ Ext2GetCurrentProcessName

#define Ext2GetCurrentProcessName ( )
Value:
( \
)
ULONG ProcessNameOffset
unsigned char * PUCHAR
Definition: typedefs.h:53
#define PsGetCurrentProcess
Definition: psfuncs.h:17

Definition at line 1489 of file ext2fs.h.

◆ Ext2IsGroupReadable

#define Ext2IsGroupReadable (   m)    (((m) & S_IRGRP) == S_IRGRP)

Definition at line 421 of file ext2fs.h.

◆ Ext2IsGroupReadOnly

#define Ext2IsGroupReadOnly (   m)    (!(Ext2IsGroupWritable(m)) && Ext2IsGroupReadable(m))

Definition at line 422 of file ext2fs.h.

◆ Ext2IsGroupWritable

#define Ext2IsGroupWritable (   m)    (((m) & S_IWGRP) == S_IWGRP)

Definition at line 420 of file ext2fs.h.

◆ Ext2IsOtherReadable

#define Ext2IsOtherReadable (   m)    (((m) & S_IROTH) == S_IROTH)

Definition at line 425 of file ext2fs.h.

◆ Ext2IsOtherReadOnly

#define Ext2IsOtherReadOnly (   m)    (!(Ext2IsOtherWritable(m)) && Ext2IsOtherReadable(m))

Definition at line 426 of file ext2fs.h.

◆ Ext2IsOtherWritable

#define Ext2IsOtherWritable (   m)    (((m) & S_IWOTH) == S_IWOTH)

Definition at line 424 of file ext2fs.h.

◆ Ext2IsOwnerReadable

#define Ext2IsOwnerReadable (   m)    (((m) & S_IRUSR) == S_IRUSR)

Definition at line 417 of file ext2fs.h.

◆ Ext2IsOwnerReadOnly

#define Ext2IsOwnerReadOnly (   m)    (!(Ext2IsOwnerWritable(m)) && Ext2IsOwnerReadable(m))

Definition at line 418 of file ext2fs.h.

◆ Ext2IsOwnerWritable

#define Ext2IsOwnerWritable (   m)    (((m) & S_IWUSR) == S_IWUSR)

Definition at line 416 of file ext2fs.h.

◆ Ext2NormalizeAndRaiseStatus

#define Ext2NormalizeAndRaiseStatus (   IRPCONTEXT,
  STATUS 
)
Value:
{ \
(IRPCONTEXT)->ExceptionCode = STATUS; \
}
#define STATUS
Definition: blue.h:116
_Inout_ PIRP _In_ NTSTATUS ExceptionCode
Definition: cdprocs.h:1774
NTSTATUS NTAPI FsRtlNormalizeNtstatus(IN NTSTATUS NtStatusToNormalize, IN NTSTATUS NormalizedNtStatus)
Definition: filter.c:90
#define ExRaiseStatus
Definition: ntoskrnl.h:114
#define STATUS_UNEXPECTED_IO_ERROR
Definition: ntstatus.h:469
#define STATUS_VERIFY_REQUIRED
Definition: udferr_usr.h:130

Definition at line 268 of file ext2fs.h.

◆ Ext2RaiseStatus

#define Ext2RaiseStatus (   IRPCONTEXT,
  STATUS 
)
Value:
{ \
(IRPCONTEXT)->ExceptionCode = (STATUS); \
ExRaiseStatus((STATUS)); \
}

Definition at line 263 of file ext2fs.h.

◆ Ext2ReferMcb

#define Ext2ReferMcb (   Mcb)    Ext2ReferXcb(&Mcb->Refercount)

Definition at line 995 of file ext2fs.h.

◆ Ext2ReferXcb

#define Ext2ReferXcb (   _C)    InterlockedIncrement(_C)

Definition at line 976 of file ext2fs.h.

◆ Ext2SetOwnerReadOnly

#define Ext2SetOwnerReadOnly (   m)    do {(m) &= ~S_IWUSR;} while(0)

Definition at line 414 of file ext2fs.h.

◆ Ext2SetOwnerWritable

#define Ext2SetOwnerWritable (   m)    do {(m) |= S_IWUSR;} while(0)

Definition at line 413 of file ext2fs.h.

◆ Ext2SetReadable

#define Ext2SetReadable (   m)    do {(m) = (m) | (S_IRUSR | S_IRGRP | S_IROTH);} while(0)

Definition at line 410 of file ext2fs.h.

◆ Ext2SetReadOnly

#define Ext2SetReadOnly (   m)    do {(m) &= ~(S_IWUSR | S_IWGRP | S_IWOTH);} while(0)

Definition at line 428 of file ext2fs.h.

◆ Ext2SetWritable

#define Ext2SetWritable (   m)    do {(m) = (m) | (S_IWUSR | S_IWGRP | S_IWOTH);} while(0)

Definition at line 411 of file ext2fs.h.

◆ ext3_error

#define ext3_error   ext3_warning

Definition at line 2593 of file ext2fs.h.

◆ EXT3_FORCE_WRITING

#define EXT3_FORCE_WRITING   0x00000004

Definition at line 592 of file ext2fs.h.

◆ EXT3_FORCEWRITING

#define EXT3_FORCEWRITING   L"Ext3ForceWriting"

Definition at line 148 of file ext2fs.h.

◆ ext4_error

#define ext4_error   ext3_error

Definition at line 2594 of file ext2fs.h.

◆ EXT_DEBUG_BREAKPOINT

#define EXT_DEBUG_BREAKPOINT   FALSE

Definition at line 37 of file ext2fs.h.

◆ FCB_ALLOC_IN_CREATE

#define FCB_ALLOC_IN_CREATE   0x00000080

Definition at line 884 of file ext2fs.h.

◆ FCB_ALLOC_IN_SETINFO

#define FCB_ALLOC_IN_SETINFO   0x00000200

Definition at line 886 of file ext2fs.h.

◆ FCB_ALLOC_IN_WRITE

#define FCB_ALLOC_IN_WRITE   0x00000100

Definition at line 885 of file ext2fs.h.

◆ FCB_DELETE_PENDING

#define FCB_DELETE_PENDING   0x80000000

Definition at line 888 of file ext2fs.h.

◆ FCB_FILE_MODIFIED

#define FCB_FILE_MODIFIED   0x00000020

Definition at line 882 of file ext2fs.h.

◆ FCB_FROM_POOL

#define FCB_FROM_POOL   0x00000001

Definition at line 880 of file ext2fs.h.

◆ FCB_PAGE_FILE

#define FCB_PAGE_FILE   0x00000002

Definition at line 881 of file ext2fs.h.

◆ FILE_SUPPORTS_EXTENDED_ATTRIBUTES

#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES   0x00800000

Definition at line 1136 of file ext2fs.h.

◆ FILE_WRITE_TO_END_OF_FILE

#define FILE_WRITE_TO_END_OF_FILE   0xffffffff

Definition at line 278 of file ext2fs.h.

◆ FlagOn

#define FlagOn (   _F,
  _SF 
)    ((_F) & (_SF))

Definition at line 179 of file ext2fs.h.

◆ FSCTL_GET_RETRIEVAL_POINTER_BASE

#define FSCTL_GET_RETRIEVAL_POINTER_BASE   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 141, METHOD_BUFFERED, FILE_ANY_ACCESS)

Definition at line 1132 of file ext2fs.h.

◆ GID

#define GID   L"gid"

Definition at line 155 of file ext2fs.h.

◆ GROUP_DESC_SIZE

#define GROUP_DESC_SIZE   (Vcb->sbi.s_desc_size)

Definition at line 95 of file ext2fs.h.

◆ HIDING_PREFIX

#define HIDING_PREFIX   L"HidingPrefix"

Definition at line 150 of file ext2fs.h.

◆ HIDING_SUFFIX

#define HIDING_SUFFIX   L"HidingSuffix"

Definition at line 151 of file ext2fs.h.

◆ INC_IRP_COUNT

#define INC_IRP_COUNT (   IrpContext)    Ext2TraceIrpContext(TRUE, (IrpContext))

Definition at line 609 of file ext2fs.h.

◆ INC_MEM_COUNT

#define INC_MEM_COUNT (   _i,
  _p,
  _s 
)    do { ASSERT(_p); Ext2TraceMemory(TRUE, (int) (_i), (PVOID)(_p), (LONG)(_s)); } while(0)

Definition at line 607 of file ext2fs.h.

◆ INODE_SIZE

#define INODE_SIZE   (Vcb->InodeSize)

Definition at line 92 of file ext2fs.h.

◆ INODES_COUNT

#define INODES_COUNT   (Vcb->SuperBlock->s_inodes_count)

Definition at line 97 of file ext2fs.h.

◆ INODES_PER_GROUP

#define INODES_PER_GROUP   (SUPER_BLOCK->s_inodes_per_group)

Definition at line 99 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_DEFERRED

#define IRP_CONTEXT_FLAG_DEFERRED   (0x00000040)

Definition at line 1091 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_DELAY_CLOSE

#define IRP_CONTEXT_FLAG_DELAY_CLOSE   (0x00000800)

Definition at line 1096 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_DISABLE_POPUPS

#define IRP_CONTEXT_FLAG_DISABLE_POPUPS   (0x00000020)

Definition at line 1090 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_FILE_BUSY

#define IRP_CONTEXT_FLAG_FILE_BUSY   (0x00001000)

Definition at line 1097 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_FLOPPY

#define IRP_CONTEXT_FLAG_FLOPPY   (0x00000008)

Definition at line 1089 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_FROM_POOL

#define IRP_CONTEXT_FLAG_FROM_POOL   (0x00000001)

Definition at line 1086 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_REQUEUED

#define IRP_CONTEXT_FLAG_REQUEUED   (0x00000200)

Definition at line 1094 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_USER_IO

#define IRP_CONTEXT_FLAG_USER_IO   (0x00000400)

Definition at line 1095 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_VERIFY_READ

#define IRP_CONTEXT_FLAG_VERIFY_READ   (0x00000080)

Definition at line 1092 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_WAIT

#define IRP_CONTEXT_FLAG_WAIT   (0x00000002)

Definition at line 1087 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_WRITE_THROUGH

#define IRP_CONTEXT_FLAG_WRITE_THROUGH   (0x00000004)

Definition at line 1088 of file ext2fs.h.

◆ IRP_CONTEXT_STACK_IO_CONTEXT

#define IRP_CONTEXT_STACK_IO_CONTEXT   (0x00000100)

Definition at line 1093 of file ext2fs.h.

◆ IsDirectory

#define IsDirectory (   Fcb)    IsMcbDirectory((Fcb)->Mcb)

Definition at line 283 of file ext2fs.h.

◆ IsDispending

#define IsDispending (   Vcb)    (IsFlagOn((Vcb)->Flags, VCB_DISMOUNT_PENDING))

Definition at line 813 of file ext2fs.h.

◆ IsExt2FsDevice

#define IsExt2FsDevice (   DO)
Value:
PEXT2_GLOBAL Ext2Global
Definition: init.c:16
#define DO
Definition: ftp_var.h:15
PDEVICE_OBJECT DiskdevObject
Definition: ext2fs.h:539
PDEVICE_OBJECT CdromdevObject
Definition: ext2fs.h:542

Definition at line 616 of file ext2fs.h.

◆ IsExt3ForceWrite

#define IsExt3ForceWrite ( )    (IsFlagOn(Ext2Global->Flags, EXT3_FORCE_WRITING))

Definition at line 819 of file ext2fs.h.

◆ IsFileDeleted

#define IsFileDeleted (   Mcb)    IsFlagOn((Mcb)->Flags, MCB_FILE_DELETED)

Definition at line 968 of file ext2fs.h.

◆ IsFlagOn

#define IsFlagOn (   a,
  b 
)    ((BOOLEAN)(FlagOn(a,b) == b))

Definition at line 177 of file ext2fs.h.

◆ IsInodeSymLink

#define IsInodeSymLink (   I)    S_ISLNK((I)->i_mode)

Definition at line 286 of file ext2fs.h.

◆ IsLazyWriter

#define IsLazyWriter (   Fcb)    ((Fcb)->LazyWriterThread == PsGetCurrentThread())

Definition at line 822 of file ext2fs.h.

◆ IsLinkInvalid

#define IsLinkInvalid (   Mcb)    (IsMcbSymLink(Mcb) && IsFileDeleted(Mcb->Target))

Definition at line 970 of file ext2fs.h.

◆ IsMcbDirectory

#define IsMcbDirectory (   Mcb)    IsFlagOn((Mcb)->FileAttr, FILE_ATTRIBUTE_DIRECTORY)

Definition at line 967 of file ext2fs.h.

◆ IsMcbReadonly

#define IsMcbReadonly (   Mcb)    IsFlagOn((Mcb)->FileAttr, FILE_ATTRIBUTE_READONLY)

Definition at line 966 of file ext2fs.h.

◆ IsMcbRoot

#define IsMcbRoot (   Mcb)    ((Mcb)->Inode.i_ino == EXT2_ROOT_INO)

Definition at line 965 of file ext2fs.h.

◆ IsMcbSpecialFile

#define IsMcbSpecialFile (   Mcb)    IsFlagOn((Mcb)->Flags, MCB_TYPE_SPECIAL)

Definition at line 964 of file ext2fs.h.

◆ IsMcbSymLink

#define IsMcbSymLink (   Mcb)    IsFlagOn((Mcb)->Flags, MCB_TYPE_SYMLINK)

Definition at line 962 of file ext2fs.h.

◆ IsMcbUsed

#define IsMcbUsed (   Mcb)    ((Mcb)->Refercount > 0)

Definition at line 961 of file ext2fs.h.

◆ IsMounted

#define IsMounted (   Vcb)    (IsFlagOn((Vcb)->Flags, VCB_MOUNTED))

Definition at line 812 of file ext2fs.h.

◆ IsRoot

#define IsRoot (   Fcb)    IsMcbRoot((Fcb)->Mcb)

Definition at line 287 of file ext2fs.h.

◆ IsSpecialFile

#define IsSpecialFile (   Fcb)    IsMcbSpecialFile((Fcb)->Mcb)

Definition at line 284 of file ext2fs.h.

◆ IsSymLink

#define IsSymLink (   Fcb)    IsMcbSymLink((Fcb)->Mcb)

Definition at line 285 of file ext2fs.h.

◆ IsVcbForceWrite

#define IsVcbForceWrite (   Vcb)    (IsFlagOn((Vcb)->Flags, VCB_FORCE_WRITING))

Definition at line 820 of file ext2fs.h.

◆ IsVcbInited

#define IsVcbInited (   Vcb)    (IsFlagOn((Vcb)->Flags, VCB_INITIALIZED))

Definition at line 811 of file ext2fs.h.

◆ IsVcbReadOnly

#define IsVcbReadOnly (   Vcb)
Value:
IsFlagOn((Vcb)->Flags, VCB_RO_COMPAT_READ_ONLY) || \
IsFlagOn((Vcb)->Flags, VCB_WRITE_PROTECTED))
#define VCB_WRITE_PROTECTED
Definition: ext2fs.h:805
#define VCB_READ_ONLY
Definition: ext2fs.h:804
#define VCB_RO_COMPAT_READ_ONLY
Definition: ext2fs.h:803
#define IsFlagOn(a, b)
Definition: ext2fs.h:177
#define Vcb
Definition: cdprocs.h:1415
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

Definition at line 814 of file ext2fs.h.

◆ IsWritingToEof

#define IsWritingToEof (   Pos)
Value:
(((Pos).LowPart == FILE_WRITE_TO_END_OF_FILE) && \
((Pos).HighPart == -1 ))
ush Pos
Definition: deflate.h:92
#define FILE_WRITE_TO_END_OF_FILE
Definition: ext2fs.h:278

Definition at line 280 of file ext2fs.h.

◆ IsZoneInited

#define IsZoneInited (   Mcb)    IsFlagOn((Mcb)->Flags, MCB_ZONE_INITED)

Definition at line 963 of file ext2fs.h.

◆ max

#define max (   a,
  b 
)    (((a) > (b)) ? (a) : (b))

Definition at line 199 of file ext2fs.h.

◆ MAXIMUM_RECORD_LENGTH

#define MAXIMUM_RECORD_LENGTH   (0x10000)

Definition at line 79 of file ext2fs.h.

◆ MCB_ENTRY_TREE

#define MCB_ENTRY_TREE   0x00000004

Definition at line 954 of file ext2fs.h.

◆ MCB_FILE_DELETED

#define MCB_FILE_DELETED   0x00000008

Definition at line 955 of file ext2fs.h.

◆ MCB_FROM_POOL

#define MCB_FROM_POOL   0x00000001

Definition at line 952 of file ext2fs.h.

◆ MCB_TYPE_SPECIAL

#define MCB_TYPE_SPECIAL   0x40000000 /* unresolved symlink + device node */

Definition at line 958 of file ext2fs.h.

◆ MCB_TYPE_SYMLINK

#define MCB_TYPE_SYMLINK   0x80000000

Definition at line 959 of file ext2fs.h.

◆ MCB_VCB_LINK

#define MCB_VCB_LINK   0x00000002

Definition at line 953 of file ext2fs.h.

◆ MCB_ZONE_INITED

#define MCB_ZONE_INITED   0x20000000

Definition at line 957 of file ext2fs.h.

◆ min

#define min (   a,
  b 
)    (((a) < (b)) ? (a) : (b))

Definition at line 195 of file ext2fs.h.

◆ MOUNT_POINT

#define MOUNT_POINT   L"MountPoint"

Definition at line 153 of file ext2fs.h.

◆ NodeType

#define NodeType (   Ptr)    (*((EXT2_IDENTIFIER_TYPE *)(Ptr)))

Definition at line 482 of file ext2fs.h.

◆ PARAMETERS_KEY

#define PARAMETERS_KEY   L"\\Parameters"

Definition at line 142 of file ext2fs.h.

◆ READ_AHEAD_GRANULARITY

#define READ_AHEAD_GRANULARITY   (0x10000)

Definition at line 88 of file ext2fs.h.

◆ READING_ONLY

#define READING_ONLY   L"Readonly"

Definition at line 145 of file ext2fs.h.

◆ S_IALLUGO

#define S_IALLUGO   (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)

Definition at line 401 of file ext2fs.h.

◆ S_IFATTR

#define S_IFATTR   (S_IRWNU|S_IRWNG|S_IRWNO)

Definition at line 405 of file ext2fs.h.

◆ S_IFBLK

#define S_IFBLK   0x06000 /* 006 0000 */

Definition at line 362 of file ext2fs.h.

◆ S_IFCHR

#define S_IFCHR   0x02000 /* 002 0000 */

Definition at line 364 of file ext2fs.h.

◆ S_IFDIR

#define S_IFDIR   0x04000 /* 004 0000 */

Definition at line 363 of file ext2fs.h.

◆ S_IFIFO

#define S_IFIFO   0x01000 /* 001 0000 */

Definition at line 365 of file ext2fs.h.

◆ S_IFLNK

#define S_IFLNK   0x0A000 /* 012 0000 */

Definition at line 360 of file ext2fs.h.

◆ S_IFMT

#define S_IFMT   0x0F000 /* 017 0000 */

Definition at line 358 of file ext2fs.h.

◆ S_IFREG

#define S_IFREG   0x08000 /* 010 0000 */

Definition at line 361 of file ext2fs.h.

◆ S_IFSOCK

#define S_IFSOCK   0x0C000 /* 014 0000 */

Definition at line 359 of file ext2fs.h.

◆ S_IPERMISSION_MASK

#define S_IPERMISSION_MASK   0x1FF /* */

Definition at line 380 of file ext2fs.h.

◆ S_IRGRP

#define S_IRGRP   0x020 /* 0 0040 */

Definition at line 390 of file ext2fs.h.

◆ S_IROTH

#define S_IROTH   0x004 /* 0 0004 */

Definition at line 396 of file ext2fs.h.

◆ S_IRUGO

#define S_IRUGO   (S_IRUSR|S_IRGRP|S_IROTH)

Definition at line 402 of file ext2fs.h.

◆ S_IRUSR

#define S_IRUSR   0x100 /* 0 0400 */

Definition at line 384 of file ext2fs.h.

◆ S_IRWNG

#define S_IRWNG   0x030 /* 0 0060 */

Definition at line 389 of file ext2fs.h.

◆ S_IRWNO

#define S_IRWNO   0x006 /* 0 0006 */

Definition at line 395 of file ext2fs.h.

◆ S_IRWNU

#define S_IRWNU   0x180 /* 0 0600 */

Definition at line 383 of file ext2fs.h.

◆ S_IRWXG

#define S_IRWXG   0x038 /* 0 0070 */

Definition at line 388 of file ext2fs.h.

◆ S_IRWXO

#define S_IRWXO   0x007 /* 0 0007 */

Definition at line 394 of file ext2fs.h.

◆ S_IRWXU

#define S_IRWXU   0x1C0 /* 0 0700 */

Definition at line 382 of file ext2fs.h.

◆ S_IRWXUGO

#define S_IRWXUGO   (S_IRWXU|S_IRWXG|S_IRWXO)

Definition at line 400 of file ext2fs.h.

◆ S_ISBLK

#define S_ISBLK (   m)    (((m) & S_IFMT) == S_IFBLK)

Definition at line 375 of file ext2fs.h.

◆ S_ISCHR

#define S_ISCHR (   m)    (((m) & S_IFMT) == S_IFCHR)

Definition at line 377 of file ext2fs.h.

◆ S_ISDIR

#define S_ISDIR (   m)    (((m) & S_IFMT) == S_IFDIR)

Definition at line 376 of file ext2fs.h.

◆ S_ISFIFO

#define S_ISFIFO (   m)    (((m) & S_IFMT) == S_IFIFO)

Definition at line 378 of file ext2fs.h.

◆ S_ISFIL

#define S_ISFIL (   m)    (((m) & S_IFMT) == S_IFFIL)

Definition at line 374 of file ext2fs.h.

◆ S_ISGID

#define S_ISGID   0x00400 /* 000 2000 */

Definition at line 368 of file ext2fs.h.

◆ S_ISLNK

#define S_ISLNK (   m)    (((m) & S_IFMT) == S_IFLNK)

Definition at line 373 of file ext2fs.h.

◆ S_ISREADABLE

#define S_ISREADABLE (   m)    (((m) & S_IPERMISSION_MASK) == (S_IRUSR | S_IRGRP | S_IROTH))

Definition at line 407 of file ext2fs.h.

◆ S_ISREG

#define S_ISREG (   m)    (((m) & S_IFMT) == S_IFREG)

Definition at line 371 of file ext2fs.h.

◆ S_ISSOCK

#define S_ISSOCK (   m)    (((m) & S_IFMT) == S_IFSOCK)

Definition at line 372 of file ext2fs.h.

◆ S_ISUID

#define S_ISUID   0x00800 /* 000 4000 */

Definition at line 367 of file ext2fs.h.

◆ S_ISVTX

#define S_ISVTX   0x00200 /* 000 1000 */

Definition at line 369 of file ext2fs.h.

◆ S_ISWRITABLE

#define S_ISWRITABLE (   m)    (((m) & S_IPERMISSION_MASK) == (S_IWUSR | S_IWGRP | S_IWOTH))

Definition at line 408 of file ext2fs.h.

◆ S_IWGRP

#define S_IWGRP   0x010 /* 0 0020 */

Definition at line 391 of file ext2fs.h.

◆ S_IWOTH

#define S_IWOTH   0x002 /* 0 0002 */

Definition at line 397 of file ext2fs.h.

◆ S_IWUGO

#define S_IWUGO   (S_IWUSR|S_IWGRP|S_IWOTH)

Definition at line 403 of file ext2fs.h.

◆ S_IWUSR

#define S_IWUSR   0x080 /* 0 0200 */

Definition at line 385 of file ext2fs.h.

◆ S_IXGRP

#define S_IXGRP   0x008 /* 0 0010 */

Definition at line 392 of file ext2fs.h.

◆ S_IXOTH

#define S_IXOTH   0x001 /* 0 0001 */

Definition at line 398 of file ext2fs.h.

◆ S_IXUGO

#define S_IXUGO   (S_IXUSR|S_IXGRP|S_IXOTH)

Definition at line 404 of file ext2fs.h.

◆ S_IXUSR

#define S_IXUSR   0x040 /* 0 0100 */

Definition at line 386 of file ext2fs.h.

◆ SECTOR_BITS

#define SECTOR_BITS   (Vcb->SectorBits)

Definition at line 81 of file ext2fs.h.

◆ SECTOR_SIZE

#define SECTOR_SIZE   (Vcb->DiskGeometry.BytesPerSector)

Definition at line 82 of file ext2fs.h.

◆ SetFlag

#define SetFlag (   _F,
  _SF 
)    ((_F) |= (_SF))

Definition at line 187 of file ext2fs.h.

◆ SetLongFlag

#define SetLongFlag (   _F,
  _SF 
)    InterlockedOr(&(_F), (ULONG)(_SF))

Definition at line 258 of file ext2fs.h.

◆ SUPER_BLOCK

#define SUPER_BLOCK   (Vcb->SuperBlock)

Definition at line 90 of file ext2fs.h.

◆ SUPER_BLOCK_OFFSET

#define SUPER_BLOCK_OFFSET   (0x400)

Definition at line 85 of file ext2fs.h.

◆ SUPER_BLOCK_SIZE

#define SUPER_BLOCK_SIZE   (0x400)

Definition at line 86 of file ext2fs.h.

◆ TAG_VPB

#define TAG_VPB   ' bpV'

Definition at line 293 of file ext2fs.h.

◆ TOTAL_BLOCKS

#define TOTAL_BLOCKS   (ext3_blocks_count(SUPER_BLOCK))

Definition at line 101 of file ext2fs.h.

◆ UID

#define UID   L"uid"

Definition at line 154 of file ext2fs.h.

◆ VCB_ARRIVAL_NOTIFIED

#define VCB_ARRIVAL_NOTIFIED   0x00800000

Definition at line 802 of file ext2fs.h.

◆ VCB_BEING_CLOSED

#define VCB_BEING_CLOSED   0x00000020

Definition at line 793 of file ext2fs.h.

◆ VCB_BEING_DROPPED

#define VCB_BEING_DROPPED   0x00002000

Definition at line 798 of file ext2fs.h.

◆ VCB_DEVICE_REMOVED

#define VCB_DEVICE_REMOVED   0x00008000

Definition at line 800 of file ext2fs.h.

◆ VCB_DISMOUNT_PENDING

#define VCB_DISMOUNT_PENDING   0x00000008

Definition at line 791 of file ext2fs.h.

◆ VCB_FLOPPY_DISK

#define VCB_FLOPPY_DISK   0x20000000

Definition at line 806 of file ext2fs.h.

◆ VCB_FORCE_WRITING

#define VCB_FORCE_WRITING   0x00004000

Definition at line 799 of file ext2fs.h.

◆ VCB_GD_LOADED

#define VCB_GD_LOADED   0x00000100 /* group desc loaded */

Definition at line 796 of file ext2fs.h.

◆ VCB_INITIALIZED

#define VCB_INITIALIZED   0x00000001

Definition at line 788 of file ext2fs.h.

◆ VCB_JOURNAL_RECOVER

#define VCB_JOURNAL_RECOVER   0x00080000

Definition at line 801 of file ext2fs.h.

◆ VCB_MOUNTED

#define VCB_MOUNTED   0x00000004

Definition at line 790 of file ext2fs.h.

◆ VCB_NEW_VPB

#define VCB_NEW_VPB   0x00000010

Definition at line 792 of file ext2fs.h.

◆ VCB_READ_ONLY

#define VCB_READ_ONLY   0x08000000

Definition at line 804 of file ext2fs.h.

◆ VCB_REMOVABLE_MEDIA

#define VCB_REMOVABLE_MEDIA   0x80000000

Definition at line 808 of file ext2fs.h.

◆ VCB_REMOVAL_PREVENTED

#define VCB_REMOVAL_PREVENTED   0x40000000

Definition at line 807 of file ext2fs.h.

◆ VCB_RO_COMPAT_READ_ONLY

#define VCB_RO_COMPAT_READ_ONLY   0x01000000

Definition at line 803 of file ext2fs.h.

◆ VCB_USER_EIDS

#define VCB_USER_EIDS   0x00000080 /* euid/egid specified by user */

Definition at line 795 of file ext2fs.h.

◆ VCB_USER_IDS

#define VCB_USER_IDS   0x00000040 /* uid/gid specified by user */

Definition at line 794 of file ext2fs.h.

◆ VCB_VOLUME_LOCKED

#define VCB_VOLUME_LOCKED   0x00000002

Definition at line 789 of file ext2fs.h.

◆ VCB_WRITE_PROTECTED

#define VCB_WRITE_PROTECTED   0x10000000

Definition at line 805 of file ext2fs.h.

◆ VOLUMES_KEY

#define VOLUMES_KEY   L"\\Volumes"

Definition at line 143 of file ext2fs.h.

◆ VPB_SIZE

#define VPB_SIZE   sizeof(VPB)

Definition at line 294 of file ext2fs.h.

◆ WRITING_SUPPORT

#define WRITING_SUPPORT   L"WritingSupport"

Definition at line 146 of file ext2fs.h.

Typedef Documentation

◆ EXT2_ALLOC_HEADER

◆ EXT2_CCB

◆ EXT2_DIR_ENTRY

Definition at line 108 of file ext2fs.h.

◆ EXT2_DIR_ENTRY2

Definition at line 109 of file ext2fs.h.

◆ EXT2_EXTENT

◆ EXT2_FCB

◆ EXT2_FCBVCB

◆ EXT2_FILLDIR_CONTEXT

◆ EXT2_GLOBAL

◆ EXT2_GROUP_DESC

Definition at line 107 of file ext2fs.h.

◆ EXT2_IDENTIFIER

◆ EXT2_IDENTIFIER_TYPE

◆ EXT2_INODE

Definition at line 106 of file ext2fs.h.

◆ EXT2_IRP_CONTEXT

◆ EXT2_MCB

Definition at line 484 of file ext2fs.h.

◆ EXT2_REAPER

◆ EXT2_REAPER_RELEASE

typedef VOID(* EXT2_REAPER_RELEASE) (PVOID)

Definition at line 500 of file ext2fs.h.

◆ EXT2_RW_CONTEXT

◆ EXT2_SUPER_BLOCK

Definition at line 105 of file ext2fs.h.

◆ EXT2_VCB

◆ EXTENDED_IO_STACK_LOCATION

Definition at line 174 of file ext2fs.h.

◆ FCB_LIST_ENTRY

◆ filldir_t

typedef int(* filldir_t) (void *, const char *, int, unsigned long, __u32, unsigned)

Definition at line 2609 of file ext2fs.h.

◆ PBCB

typedef PVOID PBCB

Definition at line 487 of file ext2fs.h.

◆ PEXT2_ALLOC_HEADER

◆ PEXT2_CCB

◆ PEXT2_DIR_ENTRY

Definition at line 108 of file ext2fs.h.

◆ PEXT2_DIR_ENTRY2

Definition at line 109 of file ext2fs.h.

◆ PEXT2_EXTENT

◆ PEXT2_FCB

◆ PEXT2_FCBVCB

◆ PEXT2_FILLDIR_CONTEXT

◆ PEXT2_GLOBAL

◆ PEXT2_GROUP_DESC

Definition at line 107 of file ext2fs.h.

◆ PEXT2_IDENTIFIER

◆ PEXT2_INODE

Definition at line 106 of file ext2fs.h.

◆ PEXT2_IRP_CONTEXT

◆ PEXT2_MCB

Definition at line 484 of file ext2fs.h.

◆ PEXT2_REAPER

◆ PEXT2_RW_CONTEXT

◆ PEXT2_SUPER_BLOCK

Definition at line 105 of file ext2fs.h.

◆ PEXT2_VCB

◆ PEXTENDED_IO_STACK_LOCATION

Definition at line 174 of file ext2fs.h.

◆ PFCB_LIST_ENTRY

Enumeration Type Documentation

◆ _EXT2_IDENTIFIER_TYPE

Enumerator
EXT2FGD 
EXT2VCB 
EXT2FCB 
EXT2CCB 
EXT2ICX 
EXT2FSD 
EXT2MCB 

Definition at line 451 of file ext2fs.h.

451 {
452#ifdef _MSC_VER
453 EXT2FGD = ':DGF',
454 EXT2VCB = ':BCV',
455 EXT2FCB = ':BCF',
456 EXT2CCB = ':BCC',
457 EXT2ICX = ':XCI',
458 EXT2FSD = ':DSF',
459 EXT2MCB = ':BCM'
460#else
461 EXT2FGD = 0xE2FD0001,
462 EXT2VCB = 0xE2FD0002,
463 EXT2FCB = 0xE2FD0003,
464 EXT2CCB = 0xE2FD0004,
465 EXT2ICX = 0xE2FD0005,
466 EXT2FSD = 0xE2FD0006,
467 EXT2MCB = 0xE2FD0007
468#endif
@ EXT2FCB
Definition: ext2fs.h:463
@ EXT2ICX
Definition: ext2fs.h:465
@ EXT2FSD
Definition: ext2fs.h:466
@ EXT2VCB
Definition: ext2fs.h:462
@ EXT2MCB
Definition: ext2fs.h:467
@ EXT2FGD
Definition: ext2fs.h:461
@ EXT2CCB
Definition: ext2fs.h:464
enum _EXT2_IDENTIFIER_TYPE EXT2_IDENTIFIER_TYPE

Function Documentation

◆ add_dirent_to_buf()

int add_dirent_to_buf ( struct ext2_icb icb,
struct dentry dentry,
struct inode inode,
struct ext3_dir_entry_2 de,
struct buffer_head bh 
)

Definition at line 386 of file htree.c.

389{
390 struct inode *dir = dentry->d_parent->d_inode;
391 const char *name = dentry->d_name.name;
392 int namelen = dentry->d_name.len;
393 unsigned int offset = 0;
394 unsigned short reclen;
395 int nlen, rlen, err;
396 char *top;
397
398 reclen = EXT3_DIR_REC_LEN(namelen);
399 if (!de) {
400 de = (struct ext3_dir_entry_2 *)bh->b_data;
401 top = bh->b_data + dir->i_sb->s_blocksize - reclen;
402 while ((char *) de <= top) {
403 if (!ext3_check_dir_entry("ext3_add_entry", dir, de,
404 bh, offset)) {
405 __brelse(bh);
406 return -EIO;
407 }
408 if (ext3_match(namelen, name, de)) {
409 __brelse(bh);
410 return -EEXIST;
411 }
412 nlen = EXT3_DIR_REC_LEN(de->name_len);
414 if ((de->inode? rlen - nlen: rlen) >= reclen)
415 break;
416 de = (struct ext3_dir_entry_2 *)((char *)de + rlen);
417 offset += rlen;
418 }
419 if ((char *) de > top)
420 return -ENOSPC;
421 }
422
423 /* By now the buffer is marked for journaling */
424 nlen = EXT3_DIR_REC_LEN(de->name_len);
426 if (de->inode) {
427 struct ext3_dir_entry_2 *de1 = (struct ext3_dir_entry_2 *)((char *)de + nlen);
428 de1->rec_len = ext3_rec_len_to_disk(rlen - nlen);
429 de->rec_len = ext3_rec_len_to_disk(nlen);
430 de = de1;
431 }
433 if (inode) {
435 ext3_set_de_type(dir->i_sb, de, inode->i_mode);
436 } else
437 de->inode = 0;
438 de->name_len = (__u8)namelen;
439 memcpy(de->name, name, namelen);
440
441 /*
442 * XXX shouldn't update any times until successful
443 * completion of syscall, but too many callers depend
444 * on this.
445 *
446 * XXX similarly, too many callers depend on
447 * ext4_new_inode() setting the times, but error
448 * recovery deletes the inode, so the worst that can
449 * happen is that the times are slightly out of date
450 * and/or different from the directory change time.
451 */
452 dir->i_mtime = dir->i_ctime = ext3_current_time(dir);
454 dir->i_version++;
456 set_buffer_dirty(bh);
457 __brelse(bh);
458 return 0;
459}
#define EEXIST
Definition: acclib.h:88
#define EIO
Definition: acclib.h:81
unsigned int dir
Definition: maze.c:112
while(CdLookupNextInitialFileDirent(IrpContext, Fcb, FileContext))
#define ENOSPC
Definition: errno.h:34
int ext3_check_dir_entry(const char *function, struct inode *dir, struct ext3_dir_entry_2 *de, struct buffer_head *bh, unsigned long offset)
Definition: generic.c:2209
static __le16 ext3_rec_len_to_disk(unsigned len)
Definition: ext3_fs.h:880
#define EXT3_DIR_REC_LEN(len)
Definition: ext3_fs.h:867
#define EXT3_FT_UNKNOWN
Definition: ext3_fs.h:786
static unsigned ext3_rec_len_from_disk(__le16 dlen)
Definition: ext3_fs.h:871
GLint namelen
Definition: glext.h:7232
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
GLintptr offset
Definition: glext.h:5920
__u32 ext3_current_time(struct inode *in)
Definition: htree.c:204
int ext3_mark_inode_dirty(struct ext2_icb *icb, struct inode *in)
Definition: htree.c:360
void ext3_set_de_type(struct super_block *sb, struct ext3_dir_entry_2 *de, umode_t mode)
Definition: htree.c:347
void ext3_update_dx_flag(struct inode *inode)
Definition: htree.c:368
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define cpu_to_le32
Definition: module.h:148
void __brelse(struct buffer_head *)
Definition: linux.c:808
#define err(...)
#define __u8
Definition: types.h:12
char * b_data
Definition: module.h:735
Definition: fs.h:117
struct dentry::@718 d_name
struct dentry * d_parent
Definition: fs.h:124
Definition: ext3_fs.h:774
char name[EXT3_NAME_LEN]
Definition: ext3_fs.h:779
__le32 inode
Definition: ext3_fs.h:775
__u8 name_len
Definition: ext3_fs.h:777
__le16 rec_len
Definition: ext3_fs.h:776
__u8 file_type
Definition: ext3_fs.h:778
Definition: fs.h:78
__u32 i_ino
Definition: fs.h:79
umode_t i_mode
Definition: fs.h:87
Definition: name.c:39

Referenced by ext3_add_entry().

◆ DEC_OBJ_CNT()

__inline ULONG DEC_OBJ_CNT ( PULONG  _C)

Definition at line 982 of file ext2fs.h.

982 {
983 if (*_C <= 0) {
984 DbgBreak();
985 }
986 return InterlockedDecrement(_C);
987}
#define InterlockedDecrement
Definition: armddk.h:52
#define DbgBreak()
Definition: ext2fs.h:46

◆ descriptor_loc()

ext3_fsblk_t descriptor_loc ( struct super_block sb,
ext3_fsblk_t  logical_sb_block,
unsigned int  nr 
)

Definition at line 2736 of file generic.c.

2738{
2739 struct ext3_sb_info *sbi = EXT3_SB(sb);
2740 ext3_group_t bg, first_meta_bg;
2741 int has_super = 0;
2742
2743 first_meta_bg = le32_to_cpu(sbi->s_es->s_first_meta_bg);
2744
2746 nr < first_meta_bg)
2747 return logical_sb_block + nr + 1;
2748 bg = sbi->s_desc_per_block * nr;
2749 if (ext3_bg_has_super(sb, bg))
2750 has_super = 1;
2751 return (has_super + ext3_group_first_block_no(sb, bg));
2752}
superblock * sb
Definition: btrfs.c:4261
#define EXT3_SB(sb)
Definition: ext3_fs.h:615
#define EXT3_HAS_INCOMPAT_FEATURE(sb, mask)
Definition: ext3_fs.h:649
#define EXT4_FEATURE_INCOMPAT_META_BG
Definition: ext3_fs.h:708
unsigned int ext3_group_t
Definition: ext3_fs_i.h:34
int ext3_bg_has_super(struct super_block *sb, ext3_group_t group)
Definition: generic.c:2686
#define le32_to_cpu
Definition: module.h:149
ULONG nr
Definition: thread.c:7
struct ext3_super_block * s_es
Definition: ext3_fs_sb.h:61
unsigned long s_desc_per_block
Definition: ext3_fs_sb.h:39

Referenced by Ext2LoadGroup().

◆ do_split()

struct ext3_dir_entry_2 * do_split ( struct ext2_icb icb,
struct inode dir,
struct buffer_head **  bh,
struct dx_frame *  frame,
struct dx_hash_info *  hinfo,
int error 
)

◆ DriverUnload()

VOID DriverUnload ( IN PDRIVER_OBJECT  DriverObject)

Definition at line 15 of file green.c.

16{
17 // nothing to do here yet
18}

◆ Ex2ProcessMountPoint()

NTSTATUS Ex2ProcessMountPoint ( IN PEXT2_IRP_CONTEXT  IrpContext,
IN PEXT2_MOUNT_POINT  MountPoint,
IN ULONG  Length 
)

Definition at line 723 of file devctl.c.

728{
731 WCHAR Buffer[] = L"\\DosDevices\\Global\\Z:";
733
735
736 _SEH2_TRY {
737
738 ASSERT(IrpContext != NULL);
739 ASSERT((IrpContext->Identifier.Type == EXT2ICX) &&
740 (IrpContext->Identifier.Size == sizeof(EXT2_IRP_CONTEXT)));
741
742 DeviceObject = IrpContext->DeviceObject;
746 }
747
748 if (Length != sizeof(EXT2_MOUNT_POINT) ||
749 MountPoint->Magic != EXT2_APP_MOUNTPOINT_MAGIC) {
752 }
753
755 Buffer[12] = MountPoint->Link[0];
756
757 switch (MountPoint->Command) {
758
760 RtlInitUnicodeString(&Target, &MountPoint->Name[0]);
762 break;
763
766 break;
767
768 default:
770 }
771
772 } _SEH2_FINALLY {
773
774 if (!IrpContext->ExceptionInProgress) {
775 Ext2CompleteIrpContext(IrpContext, status);
776 }
777 } _SEH2_END;
778
779 return status;
780}
LONG NTSTATUS
Definition: precomp.h:26
Definition: bufpool.h:45
#define NULL
Definition: types.h:112
#define APP_CMD_DEL_DOS_SYMLINK
Definition: common.h:263
#define EXT2_APP_MOUNTPOINT_MAGIC
Definition: common.h:252
#define APP_CMD_ADD_DOS_SYMLINK
Definition: common.h:262
#define IsExt2FsDevice(DO)
Definition: ext2fs.h:616
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
Definition: read.c:32
#define _SEH2_FINALLY
Definition: filesup.c:21
#define _SEH2_END
Definition: filesup.c:22
#define _SEH2_TRY
Definition: filesup.c:19
#define _SEH2_LEAVE
Definition: filesup.c:20
#define ASSERT(a)
Definition: mode.c:44
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
#define L(x)
Definition: ntvdm.h:50
#define STATUS_SUCCESS
Definition: shellext.h:65
Definition: ps.c:97
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
static int Link(const char **args)
Definition: vfdcmd.c:2414
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by Ext2DeviceControl().

◆ Ex2ProcessUserPerfStat()

NTSTATUS Ex2ProcessUserPerfStat ( IN PEXT2_IRP_CONTEXT  IrpContext,
IN PEXT2_QUERY_PERFSTAT  QueryPerf,
IN ULONG  Length 
)

Definition at line 640 of file devctl.c.

645{
646
647#ifndef __REACTOS__
649#endif
651
652 BOOLEAN GlobalDataResourceAcquired = FALSE;
654
655 _SEH2_TRY {
656
657 ASSERT(IrpContext != NULL);
658 ASSERT((IrpContext->Identifier.Type == EXT2ICX) &&
659 (IrpContext->Identifier.Size == sizeof(EXT2_IRP_CONTEXT)));
660
661 DeviceObject = IrpContext->DeviceObject;
663
664 if (QueryPerf->Magic != EXT2_QUERY_PERFSTAT_MAGIC) {
667 }
668
669 if (QueryPerf->Command != IOCTL_APP_QUERY_PERFSTAT) {
672 }
673
678 }
679
681 GlobalDataResourceAcquired = TRUE;
682
684 QueryPerf->Flags = EXT2_QUERY_PERFSTAT_VER2;
685 QueryPerf->PerfStatV2 = Ext2Global->PerfStat;
686 } else {
687 memcpy(&QueryPerf->PerfStatV1.Irps[0], &Ext2Global->PerfStat.Irps[0],
689 memcpy(&QueryPerf->PerfStatV1.Unit, &Ext2Global->PerfStat.Unit,
690 sizeof(EXT2_STAT_ARRAY_V1));
691 memcpy(&QueryPerf->PerfStatV1.Current, &Ext2Global->PerfStat.Current,
692 sizeof(EXT2_STAT_ARRAY_V1));
693 memcpy(&QueryPerf->PerfStatV1.Size, &Ext2Global->PerfStat.Size,
694 sizeof(EXT2_STAT_ARRAY_V1));
695 memcpy(&QueryPerf->PerfStatV1.Total, &Ext2Global->PerfStat.Total,
696 sizeof(EXT2_STAT_ARRAY_V1));
697 }
698
699 } else {
702 }
703
704 if (NT_SUCCESS(Status)) {
705 IrpContext->Irp->IoStatus.Information = Length;
706 }
707
708 } _SEH2_FINALLY {
709
710 if (GlobalDataResourceAcquired) {
712 }
713
714 if (!IrpContext->ExceptionInProgress) {
715 Ext2CompleteIrpContext(IrpContext, Status);
716 }
717 } _SEH2_END
718
719 return Status;
720}
unsigned char BOOLEAN
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define EXT2_QUERY_PERFSTAT_SZV1
Definition: common.h:248
#define IOCTL_APP_QUERY_PERFSTAT
Definition: common.h:8
#define EXT2_QUERY_PERFSTAT_VER2
Definition: common.h:236
#define EXT2_QUERY_PERFSTAT_SZV2
Definition: common.h:249
#define EXT2_QUERY_PERFSTAT_MAGIC
Definition: common.h:235
#define ExAcquireResourceSharedLite(res, wait)
Definition: env_spec_w32.h:621
PEXT2_GLOBAL Ext2Global
Definition: init.c:16
Unit
Definition: gdiplusenums.h:26
Status
Definition: gdiplustypes.h:25
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1822
EXT2_PERF_STATISTICS_V2 PerfStat
Definition: ext2fs.h:582
ERESOURCE Resource
Definition: ext2fs.h:519
EXT2_STAT_ARRAY_V2 Unit
Definition: common.h:131
EXT2_STAT_ARRAY_V2 Total
Definition: common.h:140
struct _EXT2_PERF_STATISTICS_V2::@694 Irps[IRP_MJ_MAXIMUM_FUNCTION+1]
EXT2_STAT_ARRAY_V2 Size
Definition: common.h:137
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255

Referenced by Ext2DeviceControl().

◆ ext2_destroy_linux()

void ext2_destroy_linux ( )

Definition at line 1019 of file linux.c.

1020{
1022}
void ext2_destroy_bh()
Definition: linux.c:318

Referenced by DriverEntry().

◆ ext2_init_linux()

int ext2_init_linux ( )

Definition at line 1004 of file linux.c.

1005{
1006 int rc = 0;
1007
1008 rc = ext2_init_bh();
1009 if (rc != 0) {
1010 goto errorout;
1011 }
1012
1013errorout:
1014
1015 return rc;
1016}
int ext2_init_bh()
Definition: linux.c:300

Referenced by DriverEntry().

◆ Ext2AcquireFileForCcFlush()

NTSTATUS Ext2AcquireFileForCcFlush ( IN PFILE_OBJECT  FileObject,
IN PDEVICE_OBJECT  DeviceObject 
)

Definition at line 1135 of file fastio.c.

1139{
1140 PEXT2_FCB Fcb = FileObject->FsContext;
1141
1142 if (Fcb->Header.Resource != NULL) {
1144 }
1145
1146 DEBUG(FASTIO_DEBUG_LEVEL, ("Ext2AcquireFileForCcFlush: Fcb=%p\n", Fcb));
1147
1148 return STATUS_SUCCESS;
1149}
#define DEBUG(args)
Definition: rdesktop.h:129
_In_ PFCB Fcb
Definition: cdprocs.h:159
#define FASTIO_DEBUG_LEVEL
Definition: fastio.c:20
#define ExAcquireResourceExclusiveLite(res, wait)
Definition: env_spec_w32.h:615
FSRTL_ADVANCED_FCB_HEADER Header
Definition: cdstruc.h:925
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550

Referenced by DriverEntry().

◆ Ext2AcquireFileForModWrite()

NTSTATUS Ext2AcquireFileForModWrite ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  EndingOffset,
OUT PERESOURCE ResourceToRelease,
IN PDEVICE_OBJECT  DeviceObject 
)

Definition at line 1081 of file fastio.c.

1088{
1089 BOOLEAN ResourceAcquired = FALSE;
1090
1091 PEXT2_FCB Fcb = FileObject->FsContext;
1092
1093 *ResourceToRelease = Fcb->Header.Resource;
1095 if (!ResourceAcquired) {
1097 }
1098
1099 DEBUG(FASTIO_DEBUG_LEVEL, ("Ext2AcquireFileForModWrite: Fcb=%p Acquired=%d\n",
1100 Fcb, ResourceAcquired));
1101
1102 return (ResourceAcquired ? STATUS_SUCCESS : STATUS_CANT_WAIT);
1103}
#define STATUS_CANT_WAIT
Definition: ntstatus.h:452
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
Definition: iotypes.h:1598

Referenced by DriverEntry().

◆ Ext2AcquireForCreateSection()

VOID Ext2AcquireForCreateSection ( IN PFILE_OBJECT  FileObject)

Definition at line 1043 of file fastio.c.

1047{
1048 PEXT2_FCB Fcb = FileObject->FsContext;
1049
1050 if (Fcb->Header.Resource != NULL) {
1052 }
1053
1054 DEBUG(FASTIO_DEBUG_LEVEL, ("Ext2AcquireForCreateSection: Fcb=%p\n", Fcb));
1055}

Referenced by DriverEntry().

◆ Ext2AcquireForLazyWrite()

BOOLEAN Ext2AcquireForLazyWrite ( IN PVOID  Context,
IN BOOLEAN  Wait 
)

Definition at line 27 of file cmcb.c.

30{
31 //
32 // On a readonly filesystem this function still has to exist but it
33 // doesn't need to do anything.
34
36
38 ASSERT(Fcb != NULL);
40 (Fcb->Identifier.Size == sizeof(EXT2_FCB)));
41#if EXT2_DEBUG
42 DEBUG(CMCB_DEBUG_LEVEL, ("Ext2AcquireForLazyWrite: %s %s Fcb=%p\n",
43 Ext2GetCurrentProcessName(), "ACQUIRE_FOR_LAZY_WRITE", Fcb));
44#endif
46 return FALSE;
47 }
48
49 ASSERT(Fcb->LazyWriterThread == NULL);
50 Fcb->LazyWriterThread = PsGetCurrentThread();
51
54
55 return TRUE;
56}
#define CMCB_DEBUG_LEVEL
Definition: cmcb.c:20
#define PsGetCurrentThread()
Definition: env_spec_w32.h:81
#define Ext2GetCurrentProcessName()
Definition: ext2fs.h:1489
struct _EXT2_FCB * PEXT2_FCB
#define FSRTL_CACHE_TOP_LEVEL_IRP
Definition: fsrtltypes.h:60
PIRP NTAPI IoGetTopLevelIrp(VOID)
Definition: irp.c:1843
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
Definition: irp.c:2000
ULONG Type
Definition: ntfs.h:95
ULONG Size
Definition: ntfs.h:96
NTFSIDENTIFIER Identifier
Definition: ntfs.h:515
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170

Referenced by DriverEntry().

◆ Ext2AcquireForReadAhead()

BOOLEAN Ext2AcquireForReadAhead ( IN PVOID  Context,
IN BOOLEAN  Wait 
)

Definition at line 92 of file cmcb.c.

94{
96
97 ASSERT(Fcb != NULL);
99 (Fcb->Identifier.Size == sizeof(EXT2_FCB)));
100
101 DEBUG(CMCB_DEBUG_LEVEL, ("Ext2AcquireForReadAhead: i=%xh Fcb=%p\n",
102 Fcb->Mcb->Inode.i_ino, Fcb));
103
105 return FALSE;
108
109 return TRUE;
110}
CD_MCB Mcb
Definition: cdstruc.h:1016

Referenced by DriverEntry().

◆ Ext2AddBlockExtent()

BOOLEAN Ext2AddBlockExtent ( IN PEXT2_VCB  Vcb,
IN PEXT2_MCB  Mcb,
IN ULONG  Start,
IN ULONG  Block,
IN ULONG  Number 
)

Definition at line 1027 of file memory.c.

1034{
1035 LONGLONG Vbn = 0;
1036 LONGLONG Lbn = 0;
1037 LONGLONG Length = 0;
1038
1039 Vbn = ((LONGLONG) Start) << BLOCK_BITS;
1040 Lbn = ((LONGLONG) Block) << BLOCK_BITS;
1042
1043 if (Mcb) {
1044#if EXT2_DEBUG
1045 ULONG _block = 0, _mapped = 0;
1046 BOOLEAN _rc = Ext2LookupBlockExtent(Vcb, Mcb, Start, &_block, &_mapped);
1047 if (_rc && _block != 0 && (_block != Block)) {
1048 DbgBreak();
1049 }
1050#endif
1051 return Ext2AddMcbExtent(Vcb, Mcb, Vbn, Lbn, Length);
1052
1053 }
1054
1055 ASSERT(Start == Block);
1056 return Ext2AddVcbExtent(Vcb, Vbn, Length);
1057}
#define BLOCK_BITS
Definition: stream.h:22
BOOLEAN Ext2LookupBlockExtent(IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN ULONG Start, IN PULONG Block, IN PULONG Mapped)
Definition: memory.c:1061
BOOLEAN Ext2AddMcbExtent(IN PEXT2_VCB Vcb, IN PEXT2_MCB Mcb, IN LONGLONG Vbn, IN LONGLONG Lbn, IN LONGLONG Length)
Definition: memory.c:790
BOOLEAN Ext2AddVcbExtent(IN PEXT2_VCB Vcb, IN LONGLONG Vbn, IN LONGLONG Length)
Definition: memory.c:648
IN PVCB IN ULONG IN OUT PULONG IN BOOLEAN OUT PLARGE_MCB Mcb
Definition: fatprocs.h:349
_In_ LONGLONG Vbn
Definition: fsrtlfuncs.h:470