#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] |