ReactOS  0.4.13-dev-257-gfabbd7c
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(NTAPIEXT2_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 NTAPI Ext2DeQueueCloseRequest (IN PVOID Context)
 
BOOLEAN NTAPI Ext2AcquireForLazyWrite (IN PVOID Context, IN BOOLEAN Wait)
 
VOID NTAPI Ext2ReleaseFromLazyWrite (IN PVOID Context)
 
BOOLEAN NTAPI Ext2AcquireForReadAhead (IN PVOID Context, IN BOOLEAN Wait)
 
VOID NTAPI Ext2ReleaseFromReadAhead (IN PVOID Context)
 
BOOLEAN NTAPI Ext2NoOpAcquire (IN PVOID Fcb, IN BOOLEAN Wait)
 
VOID NTAPI 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 NTAPI Ext2OplockComplete (IN PVOID Context, IN PIRP Irp)
 
VOID NTAPI Ext2LockIrp (IN PVOID Context, IN PIRP Irp)
 
NTSTATUS Ext2QueueRequest (IN PEXT2_IRP_CONTEXT IrpContext)
 
VOID NTAPI Ext2DeQueueRequest (IN PVOID Context)
 
NTSTATUS Ext2DispatchRequest (IN PEXT2_IRP_CONTEXT IrpContext)
 
NTSTATUS NTAPI 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 NTAPI 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 NTAPI 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 NTAPI 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 NTAPI Ext2FastIoQueryBasicInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN NTAPI Ext2FastIoQueryStandardInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN NTAPI 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 NTAPI 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 NTAPI Ext2FastIoUnlockAll (IN PFILE_OBJECT FileObject, IN PEPROCESS Process, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN NTAPI Ext2FastIoUnlockAllByKey (IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN NTAPI Ext2FastIoQueryNetworkOpenInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_NETWORK_OPEN_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
VOID NTAPI Ext2AcquireForCreateSection (IN PFILE_OBJECT FileObject)
 
VOID NTAPI Ext2ReleaseForCreateSection (IN PFILE_OBJECT FileObject)
 
NTSTATUS NTAPI Ext2AcquireFileForModWrite (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER EndingOffset, OUT PERESOURCE *ResourceToRelease, IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS NTAPI Ext2ReleaseFileForModWrite (IN PFILE_OBJECT FileObject, IN PERESOURCE ResourceToRelease, IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS NTAPI Ext2AcquireFileForCcFlush (IN PFILE_OBJECT FileObject, IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS NTAPI Ext2ReleaseFileForCcFlush (IN PFILE_OBJECT FileObject, IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS NTAPI 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 NTAPI 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 NTAPI Ext2FcbReaperThread (PVOID Context)
 
VOID NTAPI Ext2McbReaperThread (PVOID Context)
 
VOID NTAPI 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 NTAPI Ext2ReaperThread (PVOID Context)
 
NTSTATUS Ext2StartReaper (PEXT2_REAPER, EXT2_REAPER_RELEASE)
 
VOID NTAPI 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 1137 of file ext2fs.h.

◆ CanIWrite

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

Definition at line 812 of file ext2fs.h.

◆ CCB_ALLOW_EXTENDED_DASD_IO

#define CCB_ALLOW_EXTENDED_DASD_IO   0x80000000

Definition at line 1028 of file ext2fs.h.

◆ CCB_DELETE_ON_CLOSE

#define CCB_DELETE_ON_CLOSE   0x00000010

Definition at line 1026 of file ext2fs.h.

◆ CCB_FROM_POOL

#define CCB_FROM_POOL   0x00000001

Definition at line 1022 of file ext2fs.h.

◆ CCB_LAST_WRITE_UPDATED

#define CCB_LAST_WRITE_UPDATED   0x00000004

Definition at line 1024 of file ext2fs.h.

◆ CCB_OPEN_REPARSE_POINT

#define CCB_OPEN_REPARSE_POINT   0x00000008

Definition at line 1025 of file ext2fs.h.

◆ CCB_VOLUME_DASD_PURGE

#define CCB_VOLUME_DASD_PURGE   0x00000002

Definition at line 1023 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 254 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 1436 of file ext2fs.h.

◆ DEC_IRP_COUNT

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

Definition at line 601 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 599 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 1411 of file ext2fs.h.

◆ DL_BLK

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

Definition at line 1404 of file ext2fs.h.

◆ DL_CP

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

Definition at line 1405 of file ext2fs.h.

◆ DL_DBG

#define DL_DBG   0x00000004

Definition at line 1398 of file ext2fs.h.

◆ DL_DEFAULT

#define DL_DEFAULT   (DL_ERR|DL_VIT)

Definition at line 1415 of file ext2fs.h.

◆ DL_ERR

#define DL_ERR   0x00000002

Definition at line 1397 of file ext2fs.h.

◆ DL_EXT

#define DL_EXT   0x00000400 /* mcb extents */

Definition at line 1406 of file ext2fs.h.

◆ DL_FUN

#define DL_FUN   0x00000010

Definition at line 1400 of file ext2fs.h.

◆ DL_HTI

#define DL_HTI   0x00002000 /* htree index */

Definition at line 1409 of file ext2fs.h.

◆ DL_INF

#define DL_INF   0x00000008

Definition at line 1399 of file ext2fs.h.

◆ DL_IO

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

Definition at line 1413 of file ext2fs.h.

◆ DL_JNL

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

Definition at line 1408 of file ext2fs.h.

◆ DL_LOW

#define DL_LOW   0x00000020

Definition at line 1401 of file ext2fs.h.

◆ DL_MAP

#define DL_MAP   0x00000800 /* retrieval points */

Definition at line 1407 of file ext2fs.h.

◆ DL_NVR

#define DL_NVR   0

Definition at line 1395 of file ext2fs.h.

◆ DL_PNP

#define DL_PNP   0x00010000 /* pnp */

Definition at line 1412 of file ext2fs.h.

◆ DL_REN

#define DL_REN   0x00000040 /* renaming operation */

Definition at line 1402 of file ext2fs.h.

◆ DL_RES

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

Definition at line 1403 of file ext2fs.h.

◆ DL_VIT

#define DL_VIT   0x00000001

Definition at line 1396 of file ext2fs.h.

◆ DL_WRN

#define DL_WRN   0x00004000 /* warning */

Definition at line 1410 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 585 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 309 of file ext2fs.h.

◆ EXT2_BUGCHK_CLEANUP

#define EXT2_BUGCHK_CLEANUP   (0x00020000)

Definition at line 310 of file ext2fs.h.

◆ EXT2_BUGCHK_CLOSE

#define EXT2_BUGCHK_CLOSE   (0x00030000)

Definition at line 311 of file ext2fs.h.

◆ EXT2_BUGCHK_CMCB

#define EXT2_BUGCHK_CMCB   (0x00040000)

Definition at line 312 of file ext2fs.h.

◆ EXT2_BUGCHK_CREATE

#define EXT2_BUGCHK_CREATE   (0x00050000)

Definition at line 313 of file ext2fs.h.

◆ EXT2_BUGCHK_DEBUG

#define EXT2_BUGCHK_DEBUG   (0x00060000)

Definition at line 314 of file ext2fs.h.

◆ EXT2_BUGCHK_DEVCTL

#define EXT2_BUGCHK_DEVCTL   (0x00070000)

Definition at line 315 of file ext2fs.h.

◆ EXT2_BUGCHK_DIRCTL

#define EXT2_BUGCHK_DIRCTL   (0x00080000)

Definition at line 316 of file ext2fs.h.

◆ EXT2_BUGCHK_DISPATCH

#define EXT2_BUGCHK_DISPATCH   (0x00090000)

Definition at line 317 of file ext2fs.h.

◆ EXT2_BUGCHK_EXCEPT

#define EXT2_BUGCHK_EXCEPT   (0x000A0000)

Definition at line 318 of file ext2fs.h.

◆ EXT2_BUGCHK_EXT2

#define EXT2_BUGCHK_EXT2   (0x000B0000)

Definition at line 319 of file ext2fs.h.

◆ EXT2_BUGCHK_FASTIO

#define EXT2_BUGCHK_FASTIO   (0x000C0000)

Definition at line 320 of file ext2fs.h.

◆ EXT2_BUGCHK_FILEINFO

#define EXT2_BUGCHK_FILEINFO   (0x000D0000)

Definition at line 321 of file ext2fs.h.

◆ EXT2_BUGCHK_FLUSH

#define EXT2_BUGCHK_FLUSH   (0x000E0000)

Definition at line 322 of file ext2fs.h.

◆ EXT2_BUGCHK_FSCTL

#define EXT2_BUGCHK_FSCTL   (0x000F0000)

Definition at line 323 of file ext2fs.h.

◆ EXT2_BUGCHK_INIT

#define EXT2_BUGCHK_INIT   (0x00100000)

Definition at line 324 of file ext2fs.h.

◆ EXT2_BUGCHK_LAST

#define EXT2_BUGCHK_LAST   (0x00170000)

Definition at line 333 of file ext2fs.h.

◆ EXT2_BUGCHK_LOCK

#define EXT2_BUGCHK_LOCK   (0x0011000)

Definition at line 325 of file ext2fs.h.

◆ EXT2_BUGCHK_MEMORY

#define EXT2_BUGCHK_MEMORY   (0x0012000)

Definition at line 326 of file ext2fs.h.

◆ EXT2_BUGCHK_MISC

#define EXT2_BUGCHK_MISC   (0x0013000)

Definition at line 327 of file ext2fs.h.

◆ EXT2_BUGCHK_READ

#define EXT2_BUGCHK_READ   (0x00140000)

Definition at line 328 of file ext2fs.h.

◆ EXT2_BUGCHK_SHUTDOWN

#define EXT2_BUGCHK_SHUTDOWN   (0x00150000)

Definition at line 329 of file ext2fs.h.

◆ EXT2_BUGCHK_VOLINFO

#define EXT2_BUGCHK_VOLINFO   (0x00160000)

Definition at line 330 of file ext2fs.h.

◆ EXT2_BUGCHK_WRITE

#define EXT2_BUGCHK_WRITE   (0x00170000)

Definition at line 331 of file ext2fs.h.

◆ EXT2_CHECKING_BITMAP

#define EXT2_CHECKING_BITMAP   0x00000008

Definition at line 584 of file ext2fs.h.

◆ EXT2_DATA_MAGIC

#define EXT2_DATA_MAGIC   'BD2E'

Definition at line 291 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 295 of file ext2fs.h.

◆ EXT2_DIRSP_MAGIC

#define EXT2_DIRSP_MAGIC   'SD2E'

Definition at line 296 of file ext2fs.h.

◆ EXT2_FILE_SYSTEM

#define EXT2_FILE_SYSTEM   (FILE_SYSTEM)

Definition at line 307 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 299 of file ext2fs.h.

◆ EXT2_FNAME_MAGIC

#define EXT2_FNAME_MAGIC   'NF2E'

Definition at line 293 of file ext2fs.h.

◆ EXT2_GD_MAGIC

#define EXT2_GD_MAGIC   'DG2E'

Definition at line 298 of file ext2fs.h.

◆ EXT2_INAME_MAGIC

#define EXT2_INAME_MAGIC   'NI2E'

Definition at line 292 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 1342 of file ext2fs.h.

◆ EXT2_LOOKUP_NOT_FOLLOW

#define EXT2_LOOKUP_NOT_FOLLOW   (0x8000000)

Definition at line 1343 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 348 of file ext2fs.h.

◆ EXT2_MIN_BLOCK

#define EXT2_MIN_BLOCK   1024

Definition at line 346 of file ext2fs.h.

◆ EXT2_MIN_FRAG

#define EXT2_MIN_FRAG   1024

Definition at line 347 of file ext2fs.h.

◆ EXT2_PARAM_MAGIC

#define EXT2_PARAM_MAGIC   'PP2E'

Definition at line 300 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 502 of file ext2fs.h.

◆ EXT2_RW_CONTEXT_WRITE

#define EXT2_RW_CONTEXT_WRITE   1

Definition at line 3077 of file ext2fs.h.

◆ EXT2_RWC_MAGIC

#define EXT2_RWC_MAGIC   'WR2E'

Definition at line 301 of file ext2fs.h.

◆ EXT2_SB_MAGIC

#define EXT2_SB_MAGIC   'BS2E'

Definition at line 297 of file ext2fs.h.

◆ EXT2_SUPER_MAGIC

#define EXT2_SUPER_MAGIC   0xEF53

Definition at line 344 of file ext2fs.h.

◆ EXT2_SUPPORT_WRITING

#define EXT2_SUPPORT_WRITING   0x00000002

Definition at line 582 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 581 of file ext2fs.h.

◆ EXT2_VNAME_MAGIC

#define EXT2_VNAME_MAGIC   'NV2E'

Definition at line 294 of file ext2fs.h.

◆ Ext2BugCheck

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

Definition at line 335 of file ext2fs.h.

◆ Ext2CanIWait

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

Definition at line 1091 of file ext2fs.h.

◆ Ext2CompleteRequest

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

Definition at line 1438 of file ext2fs.h.

◆ Ext2DerefMcb

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

Definition at line 987 of file ext2fs.h.

◆ Ext2DerefXcb

#define Ext2DerefXcb (   _C)    DEC_OBJ_CNT(_C)

Definition at line 968 of file ext2fs.h.

◆ Ext2FileCanExecute

#define Ext2FileCanExecute   (0x4)

Definition at line 428 of file ext2fs.h.

◆ Ext2FileCanRead

#define Ext2FileCanRead   (0x1)

Definition at line 426 of file ext2fs.h.

◆ Ext2FileCanWrite

#define Ext2FileCanWrite   (0x2)

Definition at line 427 of file ext2fs.h.

◆ EXT2FSD_VERSION

#define EXT2FSD_VERSION   "0.69"

Definition at line 51 of file ext2fs.h.

◆ Ext2GetCurrentProcessName

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

Definition at line 1452 of file ext2fs.h.

◆ Ext2IsGroupReadable

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

Definition at line 416 of file ext2fs.h.

◆ Ext2IsGroupReadOnly

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

Definition at line 417 of file ext2fs.h.

◆ Ext2IsGroupWritable

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

Definition at line 415 of file ext2fs.h.

◆ Ext2IsOtherReadable

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

Definition at line 420 of file ext2fs.h.

◆ Ext2IsOtherReadOnly

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

Definition at line 421 of file ext2fs.h.

◆ Ext2IsOtherWritable

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

Definition at line 419 of file ext2fs.h.

◆ Ext2IsOwnerReadable

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

Definition at line 412 of file ext2fs.h.

◆ Ext2IsOwnerReadOnly

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

Definition at line 413 of file ext2fs.h.

◆ Ext2IsOwnerWritable

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

Definition at line 411 of file ext2fs.h.

◆ Ext2NormalizeAndRaiseStatus

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

Definition at line 263 of file ext2fs.h.

◆ Ext2RaiseStatus

#define Ext2RaiseStatus (   IRPCONTEXT,
  STATUS 
)
Value:
{ \
(IRPCONTEXT)->ExceptionCode = (STATUS); \
ExRaiseStatus((STATUS)); \
}
_Inout_ PIRP _In_ NTSTATUS ExceptionCode
Definition: cdprocs.h:1782
#define STATUS
Definition: blue.h:128

Definition at line 258 of file ext2fs.h.

◆ Ext2ReferMcb

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

Definition at line 986 of file ext2fs.h.

◆ Ext2ReferXcb

#define Ext2ReferXcb (   _C)    InterlockedIncrement(_C)

Definition at line 967 of file ext2fs.h.

◆ Ext2SetOwnerReadOnly

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

Definition at line 409 of file ext2fs.h.

◆ Ext2SetOwnerWritable

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

Definition at line 408 of file ext2fs.h.

◆ Ext2SetReadable

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

Definition at line 405 of file ext2fs.h.

◆ Ext2SetReadOnly

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

Definition at line 423 of file ext2fs.h.

◆ Ext2SetWritable

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

Definition at line 406 of file ext2fs.h.

◆ ext3_error

#define ext3_error   ext3_warning

Definition at line 2475 of file ext2fs.h.

◆ EXT3_FORCE_WRITING

#define EXT3_FORCE_WRITING   0x00000004

Definition at line 583 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 2476 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 875 of file ext2fs.h.

◆ FCB_ALLOC_IN_SETINFO

#define FCB_ALLOC_IN_SETINFO   0x00000200

Definition at line 877 of file ext2fs.h.

◆ FCB_ALLOC_IN_WRITE

#define FCB_ALLOC_IN_WRITE   0x00000100

Definition at line 876 of file ext2fs.h.

◆ FCB_DELETE_PENDING

#define FCB_DELETE_PENDING   0x80000000

Definition at line 879 of file ext2fs.h.

◆ FCB_FILE_MODIFIED

#define FCB_FILE_MODIFIED   0x00000020

Definition at line 873 of file ext2fs.h.

◆ FCB_FROM_POOL

#define FCB_FROM_POOL   0x00000001

Definition at line 871 of file ext2fs.h.

◆ FCB_PAGE_FILE

#define FCB_PAGE_FILE   0x00000002

Definition at line 872 of file ext2fs.h.

◆ FILE_SUPPORTS_EXTENDED_ATTRIBUTES

#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES   0x00800000

Definition at line 1127 of file ext2fs.h.

◆ FILE_WRITE_TO_END_OF_FILE

#define FILE_WRITE_TO_END_OF_FILE   0xffffffff

Definition at line 273 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 1123 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 600 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 598 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 1082 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_DELAY_CLOSE

#define IRP_CONTEXT_FLAG_DELAY_CLOSE   (0x00000800)

Definition at line 1087 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_DISABLE_POPUPS

#define IRP_CONTEXT_FLAG_DISABLE_POPUPS   (0x00000020)

Definition at line 1081 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_FILE_BUSY

#define IRP_CONTEXT_FLAG_FILE_BUSY   (0x00001000)

Definition at line 1088 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_FLOPPY

#define IRP_CONTEXT_FLAG_FLOPPY   (0x00000008)

Definition at line 1080 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_FROM_POOL

#define IRP_CONTEXT_FLAG_FROM_POOL   (0x00000001)

Definition at line 1077 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_REQUEUED

#define IRP_CONTEXT_FLAG_REQUEUED   (0x00000200)

Definition at line 1085 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_USER_IO

#define IRP_CONTEXT_FLAG_USER_IO   (0x00000400)

Definition at line 1086 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_VERIFY_READ

#define IRP_CONTEXT_FLAG_VERIFY_READ   (0x00000080)

Definition at line 1083 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_WAIT

#define IRP_CONTEXT_FLAG_WAIT   (0x00000002)

Definition at line 1078 of file ext2fs.h.

◆ IRP_CONTEXT_FLAG_WRITE_THROUGH

#define IRP_CONTEXT_FLAG_WRITE_THROUGH   (0x00000004)

Definition at line 1079 of file ext2fs.h.

◆ IRP_CONTEXT_STACK_IO_CONTEXT

#define IRP_CONTEXT_STACK_IO_CONTEXT   (0x00000100)

Definition at line 1084 of file ext2fs.h.

◆ IsDirectory

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

Definition at line 278 of file ext2fs.h.

◆ IsDispending

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

Definition at line 804 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:530
PDEVICE_OBJECT CdromdevObject
Definition: ext2fs.h:533

Definition at line 607 of file ext2fs.h.

◆ IsExt3ForceWrite

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

Definition at line 810 of file ext2fs.h.

◆ IsFileDeleted

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

Definition at line 959 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 281 of file ext2fs.h.

◆ IsLazyWriter

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

Definition at line 813 of file ext2fs.h.

◆ IsLinkInvalid

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

Definition at line 961 of file ext2fs.h.

◆ IsMcbDirectory

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

Definition at line 958 of file ext2fs.h.

◆ IsMcbReadonly

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

Definition at line 957 of file ext2fs.h.

◆ IsMcbRoot

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

Definition at line 956 of file ext2fs.h.

◆ IsMcbSpecialFile

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

Definition at line 955 of file ext2fs.h.

◆ IsMcbSymLink

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

Definition at line 953 of file ext2fs.h.

◆ IsMcbUsed

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

Definition at line 952 of file ext2fs.h.

◆ IsMounted

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

Definition at line 803 of file ext2fs.h.

◆ IsRoot

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

Definition at line 282 of file ext2fs.h.

◆ IsSpecialFile

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

Definition at line 279 of file ext2fs.h.

◆ IsSymLink

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

Definition at line 280 of file ext2fs.h.

◆ IsVcbForceWrite

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

Definition at line 811 of file ext2fs.h.

◆ IsVcbInited

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

Definition at line 802 of file ext2fs.h.

◆ IsVcbReadOnly

#define IsVcbReadOnly (   Vcb)
Value:
IsFlagOn((Vcb)->Flags, VCB_RO_COMPAT_READ_ONLY) || \
IsFlagOn((Vcb)->Flags, VCB_WRITE_PROTECTED))
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define IsFlagOn(a, b)
Definition: ext2fs.h:177
#define VCB_RO_COMPAT_READ_ONLY
Definition: ext2fs.h:794
#define Vcb
Definition: cdprocs.h:1425
#define VCB_WRITE_PROTECTED
Definition: ext2fs.h:796
#define VCB_READ_ONLY
Definition: ext2fs.h:795

Definition at line 805 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:273

Definition at line 275 of file ext2fs.h.

◆ IsZoneInited

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

Definition at line 954 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 945 of file ext2fs.h.

◆ MCB_FILE_DELETED

#define MCB_FILE_DELETED   0x00000008

Definition at line 946 of file ext2fs.h.

◆ MCB_FROM_POOL

#define MCB_FROM_POOL   0x00000001

Definition at line 943 of file ext2fs.h.

◆ MCB_TYPE_SPECIAL

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

Definition at line 949 of file ext2fs.h.

◆ MCB_TYPE_SYMLINK

#define MCB_TYPE_SYMLINK   0x80000000

Definition at line 950 of file ext2fs.h.

◆ MCB_VCB_LINK

#define MCB_VCB_LINK   0x00000002

Definition at line 944 of file ext2fs.h.

◆ MCB_ZONE_INITED

#define MCB_ZONE_INITED   0x20000000

Definition at line 948 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 477 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 396 of file ext2fs.h.

◆ S_IFATTR

#define S_IFATTR   (S_IRWNU|S_IRWNG|S_IRWNO)

Definition at line 400 of file ext2fs.h.

◆ S_IFBLK

#define S_IFBLK   0x06000 /* 006 0000 */

Definition at line 357 of file ext2fs.h.

◆ S_IFCHR

#define S_IFCHR   0x02000 /* 002 0000 */

Definition at line 359 of file ext2fs.h.

◆ S_IFDIR

#define S_IFDIR   0x04000 /* 004 0000 */

Definition at line 358 of file ext2fs.h.

◆ S_IFIFO

#define S_IFIFO   0x01000 /* 001 0000 */

Definition at line 360 of file ext2fs.h.

◆ S_IFLNK

#define S_IFLNK   0x0A000 /* 012 0000 */

Definition at line 355 of file ext2fs.h.

◆ S_IFMT

#define S_IFMT   0x0F000 /* 017 0000 */

Definition at line 353 of file ext2fs.h.

◆ S_IFREG

#define S_IFREG   0x08000 /* 010 0000 */

Definition at line 356 of file ext2fs.h.

◆ S_IFSOCK

#define S_IFSOCK   0x0C000 /* 014 0000 */

Definition at line 354 of file ext2fs.h.

◆ S_IPERMISSION_MASK

#define S_IPERMISSION_MASK   0x1FF /* */

Definition at line 375 of file ext2fs.h.

◆ S_IRGRP

#define S_IRGRP   0x020 /* 0 0040 */

Definition at line 385 of file ext2fs.h.

◆ S_IROTH

#define S_IROTH   0x004 /* 0 0004 */

Definition at line 391 of file ext2fs.h.

◆ S_IRUGO

#define S_IRUGO   (S_IRUSR|S_IRGRP|S_IROTH)

Definition at line 397 of file ext2fs.h.

◆ S_IRUSR

#define S_IRUSR   0x100 /* 0 0400 */

Definition at line 379 of file ext2fs.h.

◆ S_IRWNG

#define S_IRWNG   0x030 /* 0 0060 */

Definition at line 384 of file ext2fs.h.

◆ S_IRWNO

#define S_IRWNO   0x006 /* 0 0006 */

Definition at line 390 of file ext2fs.h.

◆ S_IRWNU

#define S_IRWNU   0x180 /* 0 0600 */

Definition at line 378 of file ext2fs.h.

◆ S_IRWXG

#define S_IRWXG   0x038 /* 0 0070 */

Definition at line 383 of file ext2fs.h.

◆ S_IRWXO

#define S_IRWXO   0x007 /* 0 0007 */

Definition at line 389 of file ext2fs.h.

◆ S_IRWXU

#define S_IRWXU   0x1C0 /* 0 0700 */

Definition at line 377 of file ext2fs.h.

◆ S_IRWXUGO

#define S_IRWXUGO   (S_IRWXU|S_IRWXG|S_IRWXO)

Definition at line 395 of file ext2fs.h.

◆ S_ISBLK

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

Definition at line 370 of file ext2fs.h.

◆ S_ISCHR

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

Definition at line 372 of file ext2fs.h.

◆ S_ISDIR

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

Definition at line 371 of file ext2fs.h.

◆ S_ISFIFO

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

Definition at line 373 of file ext2fs.h.

◆ S_ISFIL

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

Definition at line 369 of file ext2fs.h.

◆ S_ISGID

#define S_ISGID   0x00400 /* 000 2000 */

Definition at line 363 of file ext2fs.h.

◆ S_ISLNK

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

Definition at line 368 of file ext2fs.h.

◆ S_ISREADABLE

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

Definition at line 402 of file ext2fs.h.

◆ S_ISREG

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

Definition at line 366 of file ext2fs.h.

◆ S_ISSOCK

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

Definition at line 367 of file ext2fs.h.

◆ S_ISUID

#define S_ISUID   0x00800 /* 000 4000 */

Definition at line 362 of file ext2fs.h.

◆ S_ISVTX

#define S_ISVTX   0x00200 /* 000 1000 */

Definition at line 364 of file ext2fs.h.

◆ S_ISWRITABLE

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

Definition at line 403 of file ext2fs.h.

◆ S_IWGRP

#define S_IWGRP   0x010 /* 0 0020 */

Definition at line 386 of file ext2fs.h.

◆ S_IWOTH

#define S_IWOTH   0x002 /* 0 0002 */

Definition at line 392 of file ext2fs.h.

◆ S_IWUGO

#define S_IWUGO   (S_IWUSR|S_IWGRP|S_IWOTH)

Definition at line 398 of file ext2fs.h.

◆ S_IWUSR

#define S_IWUSR   0x080 /* 0 0200 */

Definition at line 380 of file ext2fs.h.

◆ S_IXGRP

#define S_IXGRP   0x008 /* 0 0010 */

Definition at line 387 of file ext2fs.h.

◆ S_IXOTH

#define S_IXOTH   0x001 /* 0 0001 */

Definition at line 393 of file ext2fs.h.

◆ S_IXUGO

#define S_IXUGO   (S_IXUSR|S_IXGRP|S_IXOTH)

Definition at line 399 of file ext2fs.h.

◆ S_IXUSR

#define S_IXUSR   0x040 /* 0 0100 */

Definition at line 381 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 253 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 288 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 793 of file ext2fs.h.

◆ VCB_BEING_CLOSED

#define VCB_BEING_CLOSED   0x00000020

Definition at line 784 of file ext2fs.h.

◆ VCB_BEING_DROPPED

#define VCB_BEING_DROPPED   0x00002000

Definition at line 789 of file ext2fs.h.

◆ VCB_DEVICE_REMOVED

#define VCB_DEVICE_REMOVED   0x00008000

Definition at line 791 of file ext2fs.h.

◆ VCB_DISMOUNT_PENDING

#define VCB_DISMOUNT_PENDING   0x00000008

Definition at line 782 of file ext2fs.h.

◆ VCB_FLOPPY_DISK

#define VCB_FLOPPY_DISK   0x20000000

Definition at line 797 of file ext2fs.h.

◆ VCB_FORCE_WRITING

#define VCB_FORCE_WRITING   0x00004000

Definition at line 790 of file ext2fs.h.

◆ VCB_GD_LOADED

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

Definition at line 787 of file ext2fs.h.

◆ VCB_INITIALIZED

#define VCB_INITIALIZED   0x00000001

Definition at line 779 of file ext2fs.h.

◆ VCB_JOURNAL_RECOVER

#define VCB_JOURNAL_RECOVER   0x00080000

Definition at line 792 of file ext2fs.h.

◆ VCB_MOUNTED

#define VCB_MOUNTED   0x00000004

Definition at line 781 of file ext2fs.h.

◆ VCB_NEW_VPB

#define VCB_NEW_VPB   0x00000010

Definition at line 783 of file ext2fs.h.

◆ VCB_READ_ONLY

#define VCB_READ_ONLY   0x08000000

Definition at line 795 of file ext2fs.h.

◆ VCB_REMOVABLE_MEDIA

#define VCB_REMOVABLE_MEDIA   0x80000000

Definition at line 799 of file ext2fs.h.

◆ VCB_REMOVAL_PREVENTED

#define VCB_REMOVAL_PREVENTED   0x40000000

Definition at line 798 of file ext2fs.h.

◆ VCB_RO_COMPAT_READ_ONLY

#define VCB_RO_COMPAT_READ_ONLY   0x01000000

Definition at line 794 of file ext2fs.h.

◆ VCB_USER_EIDS

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

Definition at line 786 of file ext2fs.h.

◆ VCB_USER_IDS

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

Definition at line 785 of file ext2fs.h.

◆ VCB_VOLUME_LOCKED

#define VCB_VOLUME_LOCKED   0x00000002

Definition at line 780 of file ext2fs.h.

◆ VCB_WRITE_PROTECTED

#define VCB_WRITE_PROTECTED   0x10000000

Definition at line 796 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 289 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 479 of file ext2fs.h.

◆ EXT2_REAPER

◆ EXT2_REAPER_RELEASE

typedef VOID(NTAPI * EXT2_REAPER_RELEASE) (PVOID)

Definition at line 492 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 2491 of file ext2fs.h.

◆ PBCB

typedef PVOID PBCB

Definition at line 482 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 479 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 446 of file ext2fs.h.

446  {
447 #ifdef _MSC_VER
448  EXT2FGD = ':DGF',
449  EXT2VCB = ':BCV',
450  EXT2FCB = ':BCF',
451  EXT2CCB = ':BCC',
452  EXT2ICX = ':XCI',
453  EXT2FSD = ':DSF',
454  EXT2MCB = ':BCM'
455 #else
456  EXT2FGD = 0xE2FD0001,
457  EXT2VCB = 0xE2FD0002,
458  EXT2FCB = 0xE2FD0003,
459  EXT2CCB = 0xE2FD0004,
460  EXT2ICX = 0xE2FD0005,
461  EXT2FSD = 0xE2FD0006,
462  EXT2MCB = 0xE2FD0007
463 #endif
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);
413  rlen = ext3_rec_len_from_disk(de->rec_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);
425  rlen = ext3_rec_len_from_disk(de->rec_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) {
434  de->inode = cpu_to_le32(inode->i_ino);
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 }
unsigned char __u8
Definition: compat.h:88
#define EXT3_DIR_REC_LEN(len)
Definition: ext3_fs.h:867
__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
Definition: ext3_fs.h:774
umode_t i_mode
Definition: fs.h:87
GLintptr offset
Definition: glext.h:5920
GLint namelen
Definition: glext.h:7232
#define EEXIST
Definition: acclib.h:88
Definition: fs.h:78
void ext3_set_de_type(struct super_block *sb, struct ext3_dir_entry_2 *de, umode_t mode)
Definition: htree.c:347
while(1)
Definition: macro.lex.yy.c:740
char name[EXT3_NAME_LEN]
Definition: ext3_fs.h:779
__u8 file_type
Definition: ext3_fs.h:778
Definition: arc.h:49
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:2142
Definition: fs.h:117
unsigned int dir
Definition: maze.c:112
struct dentry * d_parent
Definition: fs.h:124
__le32 inode
Definition: ext3_fs.h:775
#define EXT3_FT_UNKNOWN
Definition: ext3_fs.h:786
void __brelse(struct buffer_head *)
Definition: linux.c:800
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
void ext3_update_dx_flag(struct inode *inode)
Definition: htree.c:368
#define err(...)
__u32 i_ino
Definition: fs.h:79
char * b_data
Definition: module.h:725
static __le16 ext3_rec_len_to_disk(unsigned len)
Definition: ext3_fs.h:880
__u8 name_len
Definition: ext3_fs.h:777
Definition: arc.h:40
static unsigned ext3_rec_len_from_disk(__le16 dlen)
Definition: ext3_fs.h:871
Definition: name.c:36
__le16 rec_len
Definition: ext3_fs.h:776
struct dentry::@667 d_name
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
#define cpu_to_le32
Definition: module.h:146

Referenced by ext3_add_entry().

◆ DEC_OBJ_CNT()

__inline ULONG DEC_OBJ_CNT ( PULONG  _C)

Definition at line 973 of file ext2fs.h.

973  {
974  if (*_C <= 0) {
975  DbgBreak();
976  }
977  return InterlockedDecrement(_C);
978 }
#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 2669 of file generic.c.

2671 {
2672  struct ext3_sb_info *sbi = EXT3_SB(sb);
2673  ext3_group_t bg, first_meta_bg;
2674  int has_super = 0;
2675 
2676  first_meta_bg = le32_to_cpu(sbi->s_es->s_first_meta_bg);
2677 
2679  nr < first_meta_bg)
2680  return logical_sb_block + nr + 1;
2681  bg = sbi->s_desc_per_block * nr;
2682  if (ext3_bg_has_super(sb, bg))
2683  has_super = 1;
2684  return (has_super + ext3_group_first_block_no(sb, bg));
2685 }
ULONG nr
Definition: thread.c:7
superblock * sb
Definition: btrfs.c:3896
#define EXT4_FEATURE_INCOMPAT_META_BG
Definition: ext3_fs.h:708
unsigned long s_desc_per_block
Definition: ext3_fs_sb.h:39
#define le32_to_cpu
Definition: module.h:147
struct ext3_super_block * s_es
Definition: ext3_fs_sb.h:61
#define EXT3_HAS_INCOMPAT_FEATURE(sb, mask)
Definition: ext3_fs.h:649
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:2619
#define EXT3_SB(sb)
Definition: ext3_fs.h:615

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 NTAPI 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 699 of file devctl.c.

704 {
707  WCHAR Buffer[] = L"\\DosDevices\\Global\\Z:";
709 
711 
712  _SEH2_TRY {
713 
714  ASSERT(IrpContext != NULL);
715  ASSERT((IrpContext->Identifier.Type == EXT2ICX) &&
716  (IrpContext->Identifier.Size == sizeof(EXT2_IRP_CONTEXT)));
717 
718  DeviceObject = IrpContext->DeviceObject;
721  _SEH2_LEAVE;
722  }
723 
724  if (Length != sizeof(EXT2_MOUNT_POINT) ||
725  MountPoint->Magic != EXT2_APP_MOUNTPOINT_MAGIC) {
727  _SEH2_LEAVE;
728  }
729 
731  Buffer[12] = MountPoint->Link[0];
732 
733  switch (MountPoint->Command) {
734 
736  RtlInitUnicodeString(&Target, &MountPoint->Name[0]);
738  break;
739 
742  break;
743 
744  default:
746  }
747 
748  } _SEH2_FINALLY {
749 
750  if (!IrpContext->ExceptionInProgress) {
751  Ext2CompleteIrpContext(IrpContext, status);
752  }
753  } _SEH2_END;
754 
755  return status;
756 }
#define APP_CMD_DEL_DOS_SYMLINK
Definition: common.h:258
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
LONG NTSTATUS
Definition: precomp.h:26
static int Link(const char **args)
Definition: vfdcmd.c:2414
_SEH2_TRY
Definition: create.c:4250
smooth NULL
Definition: ftsmooth.c:416
Definition: bufpool.h:45
__wchar_t WCHAR
Definition: xmlstorage.h:180
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
_Must_inspect_result_ typedef _In_ ULONG _In_ BOOLEAN Target
Definition: iotypes.h:1067
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
static const WCHAR L[]
Definition: oid.c:1250
#define EXT2_APP_MOUNTPOINT_MAGIC
Definition: common.h:247
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
Definition: read.c:32
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_SEH2_END
Definition: create.c:4424
_SEH2_FINALLY
Definition: create.c:4395
#define APP_CMD_ADD_DOS_SYMLINK
Definition: common.h:257
#define IsExt2FsDevice(DO)
Definition: ext2fs.h:607
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define _SEH2_LEAVE
Definition: filesup.c:20
return STATUS_SUCCESS
Definition: btrfs.c:2745
static SERVICE_STATUS status
Definition: service.c:31
Definition: ps.c:97

Referenced by Ext2DeviceControl().

◆ Ex2ProcessUserPerfStat()

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

Definition at line 616 of file devctl.c.

621 {
622 
623 #ifndef __REACTOS__
624  PEXT2_VCB Vcb = NULL;
625 #endif
627 
628  BOOLEAN GlobalDataResourceAcquired = FALSE;
630 
631  _SEH2_TRY {
632 
633  ASSERT(IrpContext != NULL);
634  ASSERT((IrpContext->Identifier.Type == EXT2ICX) &&
635  (IrpContext->Identifier.Size == sizeof(EXT2_IRP_CONTEXT)));
636 
637  DeviceObject = IrpContext->DeviceObject;
639 
640  if (QueryPerf->Magic != EXT2_QUERY_PERFSTAT_MAGIC) {
642  _SEH2_LEAVE;
643  }
644 
645  if (QueryPerf->Command != IOCTL_APP_QUERY_PERFSTAT) {
647  _SEH2_LEAVE;
648  }
649 
653  _SEH2_LEAVE;
654  }
655 
657  GlobalDataResourceAcquired = TRUE;
658 
660  QueryPerf->Flags = EXT2_QUERY_PERFSTAT_VER2;
661  QueryPerf->PerfStatV2 = Ext2Global->PerfStat;
662  } else {
663  memcpy(&QueryPerf->PerfStatV1.Irps[0], &Ext2Global->PerfStat.Irps[0],
665  memcpy(&QueryPerf->PerfStatV1.Unit, &Ext2Global->PerfStat.Unit,
666  sizeof(EXT2_STAT_ARRAY_V1));
667  memcpy(&QueryPerf->PerfStatV1.Current, &Ext2Global->PerfStat.Current,
668  sizeof(EXT2_STAT_ARRAY_V1));
669  memcpy(&QueryPerf->PerfStatV1.Size, &Ext2Global->PerfStat.Size,
670  sizeof(EXT2_STAT_ARRAY_V1));
671  memcpy(&QueryPerf->PerfStatV1.Total, &Ext2Global->PerfStat.Total,
672  sizeof(EXT2_STAT_ARRAY_V1));
673  }
674 
675  } else {
677  _SEH2_LEAVE;
678  }
679 
680  if (NT_SUCCESS(Status)) {
681  IrpContext->Irp->IoStatus.Information = Length;
682  }
683 
684  } _SEH2_FINALLY {
685 
686  if (GlobalDataResourceAcquired) {
688  }
689 
690  if (!IrpContext->ExceptionInProgress) {
691  Ext2CompleteIrpContext(IrpContext, Status);
692  }
693  } _SEH2_END
694 
695  return Status;
696 }
#define TRUE
Definition: types.h:120
Unit
Definition: gdiplusenums.h:25
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
ERESOURCE Resource
Definition: ext2fs.h:510
EXT2_STAT_ARRAY_V2 Size
Definition: common.h:137
LONG NTSTATUS
Definition: precomp.h:26
struct _EXT2_PERF_STATISTICS_V2::@643 Irps[IRP_MJ_MAXIMUM_FUNCTION+1]
EXT2_PERF_STATISTICS_V2 PerfStat
Definition: ext2fs.h:573
_SEH2_TRY
Definition: create.c:4250
#define IOCTL_APP_QUERY_PERFSTAT
Definition: common.h:8
PEXT2_GLOBAL Ext2Global
Definition: init.c:16
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
#define EXT2_QUERY_PERFSTAT_SZV1
Definition: common.h:243
EXT2_STAT_ARRAY_V2 Total
Definition: common.h:140
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define Vcb
Definition: cdprocs.h:1425
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1817
#define EXT2_QUERY_PERFSTAT_MAGIC
Definition: common.h:230
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
Definition: read.c:32
#define EXT2_QUERY_PERFSTAT_VER2
Definition: common.h:231
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_SEH2_END
Definition: create.c:4424
#define EXT2_QUERY_PERFSTAT_SZV2
Definition: common.h:244
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
_SEH2_FINALLY
Definition: create.c:4395
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:885
#define IsExt2FsDevice(DO)
Definition: ext2fs.h:607
#define _SEH2_LEAVE
Definition: filesup.c:20
return STATUS_SUCCESS
Definition: btrfs.c:2745
EXT2_STAT_ARRAY_V2 Unit
Definition: common.h:131

Referenced by Ext2DeviceControl().

◆ ext2_destroy_linux()

void ext2_destroy_linux ( )

Definition at line 1011 of file linux.c.

1012 {
1013  ext2_destroy_bh();
1014 }
void ext2_destroy_bh()
Definition: linux.c:318

Referenced by DriverEntry().

◆ ext2_init_linux()

int ext2_init_linux ( )

Definition at line 996 of file linux.c.

997 {
998  int rc = 0;
999 
1000  rc = ext2_init_bh();
1001  if (rc != 0) {
1002  goto errorout;
1003  }
1004 
1005 errorout:
1006 
1007  return rc;
1008 }
int ext2_init_bh()
Definition: linux.c:300

Referenced by DriverEntry().

◆ Ext2AcquireFileForCcFlush()

NTSTATUS NTAPI Ext2AcquireFileForCcFlush ( IN PFILE_OBJECT  FileObject,
IN PDEVICE_OBJECT  DeviceObject 
)

Definition at line 1075 of file fastio.c.

1079 {
1080  PEXT2_FCB Fcb = FileObject->FsContext;
1081 
1082  if (Fcb->Header.Resource != NULL) {
1084  }
1085 
1086  DEBUG(FASTIO_DEBUG_LEVEL, ("Ext2AcquireFileForCcFlush: Fcb=%p\n", Fcb));
1087 
1088  return STATUS_SUCCESS;
1089 }
#define TRUE
Definition: types.h:120
FSRTL_ADVANCED_FCB_HEADER Header
Definition: cdstruc.h:931
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
smooth NULL
Definition: ftsmooth.c:416
#define FASTIO_DEBUG_LEVEL
Definition: fastio.c:20
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
#define DEBUG(args)
Definition: rdesktop.h:129
_In_ PFCB Fcb
Definition: cdprocs.h:151
return STATUS_SUCCESS
Definition: btrfs.c:2745

Referenced by DriverEntry().

◆ Ext2AcquireFileForModWrite()

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

Definition at line 1029 of file fastio.c.

1036 {
1037  BOOLEAN ResourceAcquired = FALSE;
1038 
1039  PEXT2_FCB Fcb = FileObject->FsContext;
1040 
1041  *ResourceToRelease = Fcb->Header.Resource;
1043  if (!ResourceAcquired) {
1045  }
1046 
1047  DEBUG(FASTIO_DEBUG_LEVEL, ("Ext2AcquireFileForModWrite: Fcb=%p Acquired=%d\n",
1048  Fcb, ResourceAcquired));
1049 
1050  return (ResourceAcquired ? STATUS_SUCCESS : STATUS_CANT_WAIT);
1051 }
FSRTL_ADVANCED_FCB_HEADER Header
Definition: cdstruc.h:931
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
Definition: iotypes.h:1554
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
#define FASTIO_DEBUG_LEVEL
Definition: fastio.c:20
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
#define DEBUG(args)
Definition: rdesktop.h:129
_In_ PFCB Fcb
Definition: cdprocs.h:151
return STATUS_SUCCESS
Definition: btrfs.c:2745
#define STATUS_CANT_WAIT
Definition: ntstatus.h:438

Referenced by DriverEntry().

◆ Ext2AcquireForCreateSection()

VOID NTAPI Ext2AcquireForCreateSection ( IN PFILE_OBJECT  FileObject)

Definition at line 999 of file fastio.c.

1003 {
1004  PEXT2_FCB Fcb = FileObject->FsContext;
1005 
1006  if (Fcb->Header.Resource != NULL) {
1008  }
1009 
1010  DEBUG(FASTIO_DEBUG_LEVEL, ("Ext2AcquireForCreateSection: Fcb=%p\n", Fcb));
1011 }
#define TRUE
Definition: types.h:120
FSRTL_ADVANCED_FCB_HEADER Header
Definition: cdstruc.h:931
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
smooth NULL
Definition: ftsmooth.c:416
#define FASTIO_DEBUG_LEVEL
Definition: fastio.c:20
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
#define DEBUG(args)
Definition: rdesktop.h:129
_In_ PFCB Fcb
Definition: cdprocs.h:151

Referenced by DriverEntry().

◆ Ext2AcquireForLazyWrite()

BOOLEAN NTAPI Ext2AcquireForLazyWrite ( IN PVOID  Context,
IN BOOLEAN  Wait 
)

Definition at line 23 of file cmcb.c.

26 {
27  //
28  // On a readonly filesystem this function still has to exist but it
29  // doesn't need to do anything.
30 
31  PEXT2_FCB Fcb;
32 
33  Fcb = (PEXT2_FCB) Context;
34  ASSERT(Fcb != NULL);
36  (Fcb->Identifier.Size == sizeof(EXT2_FCB)));
37 #if EXT2_DEBUG
38  DEBUG(CMCB_DEBUG_LEVEL, ("Ext2AcquireForLazyWrite: %s %s Fcb=%p\n",
39  Ext2GetCurrentProcessName(), "ACQUIRE_FOR_LAZY_WRITE", Fcb));
40 #endif
41  if (!ExAcquireResourceExclusiveLite(Fcb->Header.Resource, Wait)) {
42  return FALSE;
43  }
44 
45  ASSERT(Fcb->LazyWriterThread == NULL);
46  Fcb->LazyWriterThread = PsGetCurrentThread();
47 
50 
51  return TRUE;
52 }
struct _EXT2_FCB * PEXT2_FCB
#define TRUE
Definition: types.h:120
#define PsGetCurrentThread()
Definition: env_spec_w32.h:81
FSRTL_ADVANCED_FCB_HEADER Header
Definition: cdstruc.h:931
#define Ext2GetCurrentProcessName()
Definition: ext2fs.h:1452
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
NTFSIDENTIFIER Identifier
Definition: ntfs.h:499</