#include <file.h>
Inherits _Base.
Public Member Functions | |
_DirectFile (const FilePath &filePath, bool AllowWrite) | |
~_DirectFile () | |
size_t | Read (void *pBuffer, size_t size, ActionStatus *pStatus=NULL) |
size_t | Write (const void *pBuffer, size_t size, ActionStatus *pStatus=NULL) |
void | Close () |
size_t | ReadAt (ULONGLONG Offset, void *pBuffer, size_t size, ActionStatus *pStatus) |
size_t | WriteAt (ULONGLONG Offset, const void *pBuffer, size_t size, ActionStatus *pStatus) |
LONGLONG | GetPosition (ActionStatus *pStatus=NULL) |
LONGLONG | Seek (LONGLONG Offset, FileFlags::SeekType seekType, ActionStatus *pStatus=NULL) |
Protected Attributes | |
PFILE_OBJECT | m_pFileObj |
ULONGLONG | m_CurrentOffset |
bool | m_bAllowWrite |
The experimental DirectFile class allows accessing NT files by sending IRP_MJ_READ/IRP_MJ_WRITE IRPs directly to filesystem driver. This allows bypassing restrictions implied by ZwReadFile()/ ZwWriteFile() routines.
BazisLib::DDK::_DirectFile< _Base >::_DirectFile | ( | const FilePath & | filePath, | |
bool | AllowWrite | |||
) | [inline] |
BazisLib::DDK::_DirectFile< _Base >::~_DirectFile | ( | ) | [inline] |
void BazisLib::DDK::_DirectFile< _Base >::Close | ( | ) | [inline] |
LONGLONG BazisLib::DDK::_DirectFile< _Base >::GetPosition | ( | ActionStatus * | pStatus = NULL |
) | [inline] |
size_t BazisLib::DDK::_DirectFile< _Base >::Read | ( | void * | pBuffer, | |
size_t | size, | |||
ActionStatus * | pStatus = NULL | |||
) | [inline] |
size_t BazisLib::DDK::_DirectFile< _Base >::ReadAt | ( | ULONGLONG | Offset, | |
void * | pBuffer, | |||
size_t | size, | |||
ActionStatus * | pStatus | |||
) | [inline] |
LONGLONG BazisLib::DDK::_DirectFile< _Base >::Seek | ( | LONGLONG | Offset, | |
FileFlags::SeekType | seekType, | |||
ActionStatus * | pStatus = NULL | |||
) | [inline] |
size_t BazisLib::DDK::_DirectFile< _Base >::Write | ( | const void * | pBuffer, | |
size_t | size, | |||
ActionStatus * | pStatus = NULL | |||
) | [inline] |
size_t BazisLib::DDK::_DirectFile< _Base >::WriteAt | ( | ULONGLONG | Offset, | |
const void * | pBuffer, | |||
size_t | size, | |||
ActionStatus * | pStatus | |||
) | [inline] |
bool BazisLib::DDK::_DirectFile< _Base >::m_bAllowWrite [protected] |
ULONGLONG BazisLib::DDK::_DirectFile< _Base >::m_CurrentOffset [protected] |
PFILE_OBJECT BazisLib::DDK::_DirectFile< _Base >::m_pFileObj [protected] |