19#ifndef X86_MATANEL_FS_H
20#define X86_MATANEL_FS_H
27#define MT_FILE_READ_DATA 0x0001
28#define MT_FILE_LIST_DIRECTORY 0x0001
30#define MT_FILE_WRITE_DATA 0x0002
31#define MT_FILE_ADD_FILE 0x0002
33#define MT_FILE_APPEND_DATA 0x0004
34#define MT_FILE_ADD_SUBDIRECTORY 0x0004
35#define MT_FILE_CREATE_PIPE_INSTANCE 0x0004
37#define MT_FILE_READ_EA 0x0008
38#define MT_FILE_WRITE_EA 0x0010
40#define MT_FILE_EXECUTE 0x0020
41#define MT_FILE_TRAVERSE 0x0020
43#define MT_FILE_DELETE_CHILD 0x0040
45#define MT_FILE_READ_ATTRIBUTES 0x0080
46#define MT_FILE_WRITE_ATTRIBUTES 0x0100
47#define MT_FILE_ALL_ACCESS 0x01FF
49#define MT_FILE_GENERIC_READ ( MT_FILE_READ_DATA | MT_FILE_READ_ATTRIBUTES | MT_FILE_READ_EA )
50#define MT_FILE_GENERIC_WRITE ( MT_FILE_WRITE_DATA | MT_FILE_WRITE_ATTRIBUTES | MT_FILE_WRITE_EA | MT_FILE_APPEND_DATA )
51#define MT_FILE_GENERIC_EXECUTE ( MT_FILE_READ_ATTRIBUTES | MT_FILE_EXECUTE )
120 IN uint64_t FileOffset,
122 IN size_t BufferSize,
125 IN uint64_t FileOffset,
127 IN size_t BufferSize,
159 IN uint64_t FileOffset,
161 IN size_t BufferSize,
167 IN uint64_t FileOffset,
169 IN size_t BufferSize,
MTSTATUS FsCreateDirectory(IN const char *path, OUT PHANDLE OutDirectoryObject)
struct _FILE_OBJECT * PFILE_OBJECT
MTSTATUS FsReadFile(IN PFILE_OBJECT FileObject, IN uint64_t FileOffset, OUT void *Buffer, IN size_t BufferSize, _Out_Opt size_t *BytesRead)
MTSTATUS FsInitialize(void)
MTSTATUS FsCreateFile(IN const char *path, IN ACCESS_MASK DesiredAccess, OUT PHANDLE FileHandleOut)
MTSTATUS FsListDirectory(IN PFILE_OBJECT DirectoryObject, OUT char *listings, IN size_t max_len)
@ MT_FOF_FS_RESERVED_MASK
@ MT_FOF_FS_RESERVED_START
MTSTATUS FsWriteFile(IN PFILE_OBJECT FileObject, IN uint64_t FileOffset, IN void *Buffer, IN size_t BufferSize, _Out_Opt size_t *BytesWritten)
struct _FILE_OBJECT FILE_OBJECT
MTSTATUS FsDeleteFile(IN PFILE_OBJECT FileObject)
enum _MT_FILE_OBJECT_FLAGS MT_FILE_OBJECT_FLAGS
MTSTATUS FsRemoveDirectoryRecursive(IN PFILE_OBJECT DirectoryObject)
struct _OBJECT_TYPE * POBJECT_TYPE
MTSTATUS(* ReadFile)(IN PFILE_OBJECT FileObject, IN uint64_t FileOffset, OUT void *Buffer, IN size_t BufferSize, _Out_Opt size_t *BytesRead)
void(* DeleteObjectProcedure)(IN void *Object)
MTSTATUS(* ListDirectory)(IN PFILE_OBJECT DirectoryObject, OUT char *listings, IN size_t max_len)
MTSTATUS(* CreateFile)(IN const char *path, OUT PFILE_OBJECT *FileObjectOut)
MTSTATUS(* RemoveDirectoryRecursive)(IN PFILE_OBJECT DirectoryObject)
MTSTATUS(* init)(uint8_t device_id)
MTSTATUS(* CreateDirectory)(IN const char *path, OUT PFILE_OBJECT *OutDirectoryObject)
MTSTATUS(* WriteFile)(IN PFILE_OBJECT FileObject, IN uint64_t FileOffset, IN void *Buffer, IN size_t BufferSize, _Out_Opt size_t *BytesWritten)
MTSTATUS(* DeleteFile)(IN PFILE_OBJECT FileObject)