kernel
Loading...
Searching...
No Matches
fs.h File Reference
#include "../mtstatus.h"
#include "ob.h"

Go to the source code of this file.

Data Structures

struct  _FILE_OBJECT
struct  FS_DRIVER

Macros

#define MAX_PATH   256
#define MT_FILE_READ_DATA   0x0001
#define MT_FILE_LIST_DIRECTORY   0x0001
#define MT_FILE_WRITE_DATA   0x0002
#define MT_FILE_ADD_FILE   0x0002
#define MT_FILE_APPEND_DATA   0x0004
#define MT_FILE_ADD_SUBDIRECTORY   0x0004
#define MT_FILE_CREATE_PIPE_INSTANCE   0x0004
#define MT_FILE_READ_EA   0x0008
#define MT_FILE_WRITE_EA   0x0010
#define MT_FILE_EXECUTE   0x0020
#define MT_FILE_TRAVERSE   0x0020
#define MT_FILE_DELETE_CHILD   0x0040
#define MT_FILE_READ_ATTRIBUTES   0x0080
#define MT_FILE_WRITE_ATTRIBUTES   0x0100
#define MT_FILE_ALL_ACCESS   0x01FF
#define MT_FILE_GENERIC_READ   ( MT_FILE_READ_DATA | MT_FILE_READ_ATTRIBUTES | MT_FILE_READ_EA )
#define MT_FILE_GENERIC_WRITE   ( MT_FILE_WRITE_DATA | MT_FILE_WRITE_ATTRIBUTES | MT_FILE_WRITE_EA | MT_FILE_APPEND_DATA )
#define MT_FILE_GENERIC_EXECUTE   ( MT_FILE_READ_ATTRIBUTES | MT_FILE_EXECUTE )

Typedefs

typedef enum _MT_FILE_OBJECT_FLAGS MT_FILE_OBJECT_FLAGS
typedef struct _FILE_OBJECT FILE_OBJECT
typedef struct _FILE_OBJECTPFILE_OBJECT
typedef struct FS_DRIVER FS_DRIVER

Enumerations

enum  _MT_FILE_OBJECT_FLAGS {
  MT_FOF_NONE = 0x00000000 , MT_FOF_DIRECTORY = 0x00000001 , MT_FOF_READ_ONLY = 0x00000002 , MT_FOF_HIDDEN = 0x00000004 ,
  MT_FOF_SYSTEM = 0x00000008 , MT_FOF_VOLUME_LABEL = 0x00000010 , MT_FOF_ARCHIVE = 0x00000020 , MT_FOF_COMPRESSED = 0x00000040 ,
  MT_FOF_ENCRYPTED = 0x00000080 , MT_FOF_SPARSE = 0x00000100 , MT_FOF_TEMPORARY = 0x00000200 , MT_FOF_OFFLINE = 0x00000400 ,
  MT_FOF_APPEND_ONLY = 0x00000800 , MT_FOF_IMMUTABLE = 0x00001000 , MT_FOF_DELETE_ON_CLOSE = 0x00002000 , MT_FOF_DELETE_PENDING = 0x00004000 ,
  MT_FOF_NO_CACHE = 0x00008000 , MT_FOF_WRITE_THROUGH = 0x00010000 , MT_FOF_REPARSE_POINT = 0x00020000 , MT_FOF_LOCKED = 0x00040000 ,
  MT_FOF_DIRTY_METADATA = 0x00080000 , MT_FOF_RESERVED_1 = 0x00100000 , MT_FOF_RESERVED_2 = 0x00200000 , MT_FOF_RESERVED_3 = 0x00400000 ,
  MT_FOF_FS_RESERVED_START = 0x01000000 , MT_FOF_FS_RESERVED_MASK = 0xFF000000u
}

Functions

MTSTATUS FsInitialize (void)
MTSTATUS FsCreateFile (IN const char *path, IN ACCESS_MASK DesiredAccess, OUT PHANDLE FileHandleOut)
MTSTATUS FsReadFile (IN PFILE_OBJECT FileObject, IN uint64_t FileOffset, OUT void *Buffer, IN size_t BufferSize, _Out_Opt size_t *BytesRead)
MTSTATUS FsWriteFile (IN PFILE_OBJECT FileObject, IN uint64_t FileOffset, IN void *Buffer, IN size_t BufferSize, _Out_Opt size_t *BytesWritten)
MTSTATUS FsDeleteFile (IN PFILE_OBJECT FileObject)
MTSTATUS FsListDirectory (IN PFILE_OBJECT DirectoryObject, OUT char *listings, IN size_t max_len)
MTSTATUS FsCreateDirectory (IN const char *path, OUT PHANDLE OutDirectoryObject)
MTSTATUS FsRemoveDirectoryRecursive (IN PFILE_OBJECT DirectoryObject)

Variables

POBJECT_TYPE FsFileType

Macro Definition Documentation

◆ MAX_PATH

#define MAX_PATH   256

Definition at line 25 of file fs.h.

◆ MT_FILE_ADD_FILE

#define MT_FILE_ADD_FILE   0x0002

Definition at line 31 of file fs.h.

◆ MT_FILE_ADD_SUBDIRECTORY

#define MT_FILE_ADD_SUBDIRECTORY   0x0004

Definition at line 34 of file fs.h.

◆ MT_FILE_ALL_ACCESS

#define MT_FILE_ALL_ACCESS   0x01FF

Definition at line 47 of file fs.h.

◆ MT_FILE_APPEND_DATA

#define MT_FILE_APPEND_DATA   0x0004

Definition at line 33 of file fs.h.

◆ MT_FILE_CREATE_PIPE_INSTANCE

#define MT_FILE_CREATE_PIPE_INSTANCE   0x0004

Definition at line 35 of file fs.h.

◆ MT_FILE_DELETE_CHILD

#define MT_FILE_DELETE_CHILD   0x0040

Definition at line 43 of file fs.h.

◆ MT_FILE_EXECUTE

#define MT_FILE_EXECUTE   0x0020

Definition at line 40 of file fs.h.

◆ MT_FILE_GENERIC_EXECUTE

#define MT_FILE_GENERIC_EXECUTE   ( MT_FILE_READ_ATTRIBUTES | MT_FILE_EXECUTE )

Definition at line 51 of file fs.h.

◆ MT_FILE_GENERIC_READ

#define MT_FILE_GENERIC_READ   ( MT_FILE_READ_DATA | MT_FILE_READ_ATTRIBUTES | MT_FILE_READ_EA )

Definition at line 49 of file fs.h.

◆ MT_FILE_GENERIC_WRITE

Definition at line 50 of file fs.h.

◆ MT_FILE_LIST_DIRECTORY

#define MT_FILE_LIST_DIRECTORY   0x0001

Definition at line 28 of file fs.h.

◆ MT_FILE_READ_ATTRIBUTES

#define MT_FILE_READ_ATTRIBUTES   0x0080

Definition at line 45 of file fs.h.

◆ MT_FILE_READ_DATA

#define MT_FILE_READ_DATA   0x0001

Definition at line 27 of file fs.h.

◆ MT_FILE_READ_EA

#define MT_FILE_READ_EA   0x0008

Definition at line 37 of file fs.h.

◆ MT_FILE_TRAVERSE

#define MT_FILE_TRAVERSE   0x0020

Definition at line 41 of file fs.h.

◆ MT_FILE_WRITE_ATTRIBUTES

#define MT_FILE_WRITE_ATTRIBUTES   0x0100

Definition at line 46 of file fs.h.

◆ MT_FILE_WRITE_DATA

#define MT_FILE_WRITE_DATA   0x0002

Definition at line 30 of file fs.h.

◆ MT_FILE_WRITE_EA

#define MT_FILE_WRITE_EA   0x0010

Definition at line 38 of file fs.h.

Typedef Documentation

◆ FILE_OBJECT

typedef struct _FILE_OBJECT FILE_OBJECT

◆ FS_DRIVER

typedef struct FS_DRIVER FS_DRIVER

◆ MT_FILE_OBJECT_FLAGS

◆ PFILE_OBJECT

typedef struct _FILE_OBJECT * PFILE_OBJECT

Enumeration Type Documentation

◆ _MT_FILE_OBJECT_FLAGS

Enumerator
MT_FOF_NONE 
MT_FOF_DIRECTORY 
MT_FOF_READ_ONLY 
MT_FOF_HIDDEN 
MT_FOF_SYSTEM 
MT_FOF_VOLUME_LABEL 
MT_FOF_ARCHIVE 
MT_FOF_COMPRESSED 
MT_FOF_ENCRYPTED 
MT_FOF_SPARSE 
MT_FOF_TEMPORARY 
MT_FOF_OFFLINE 
MT_FOF_APPEND_ONLY 
MT_FOF_IMMUTABLE 
MT_FOF_DELETE_ON_CLOSE 
MT_FOF_DELETE_PENDING 
MT_FOF_NO_CACHE 
MT_FOF_WRITE_THROUGH 
MT_FOF_REPARSE_POINT 
MT_FOF_LOCKED 
MT_FOF_DIRTY_METADATA 
MT_FOF_RESERVED_1 
MT_FOF_RESERVED_2 
MT_FOF_RESERVED_3 
MT_FOF_FS_RESERVED_START 
MT_FOF_FS_RESERVED_MASK 

Definition at line 54 of file fs.h.

Function Documentation

◆ FsCreateDirectory()

MTSTATUS FsCreateDirectory ( IN const char * path,
OUT PHANDLE OutDirectoryObject )

Definition at line 171 of file vfs.c.

◆ FsCreateFile()

MTSTATUS FsCreateFile ( IN const char * path,
IN ACCESS_MASK DesiredAccess,
OUT PHANDLE FileHandleOut )

Definition at line 204 of file vfs.c.

◆ FsDeleteFile()

MTSTATUS FsDeleteFile ( IN PFILE_OBJECT FileObject)

Definition at line 147 of file vfs.c.

◆ FsInitialize()

MTSTATUS FsInitialize ( void )

Definition at line 81 of file vfs.c.

◆ FsListDirectory()

MTSTATUS FsListDirectory ( IN PFILE_OBJECT DirectoryObject,
OUT char * listings,
IN size_t max_len )

Definition at line 158 of file vfs.c.

◆ FsReadFile()

MTSTATUS FsReadFile ( IN PFILE_OBJECT FileObject,
IN uint64_t FileOffset,
OUT void * Buffer,
IN size_t BufferSize,
_Out_Opt size_t * BytesRead )

Definition at line 117 of file vfs.c.

◆ FsRemoveDirectoryRecursive()

MTSTATUS FsRemoveDirectoryRecursive ( IN PFILE_OBJECT DirectoryObject)

Definition at line 193 of file vfs.c.

◆ FsWriteFile()

MTSTATUS FsWriteFile ( IN PFILE_OBJECT FileObject,
IN uint64_t FileOffset,
IN void * Buffer,
IN size_t BufferSize,
_Out_Opt size_t * BytesWritten )

Definition at line 132 of file vfs.c.

Variable Documentation

◆ FsFileType

POBJECT_TYPE FsFileType
extern

Definition at line 26 of file vfs.c.