libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
introvirt::windows::nt::NtCreateFile Class Referenceabstract

Handler class for the NtCreateFile system call. More...

#include <NtCreateFile.hh>

Inheritance diagram for introvirt::windows::nt::NtCreateFile:
Collaboration diagram for introvirt::windows::nt::NtCreateFile:

Public Member Functions

virtual guest_ptr< void > FileHandlePtr () const =0
 Getter for FileHandlePtr.
 
virtual FILE_ACCESS_MASK DesiredAccess () const =0
 Getter for DesiredAccess.
 
virtual guest_ptr< void > ObjectAttributesPtr () const =0
 Getter for ObjectAttributesPtr.
 
virtual guest_ptr< void > IoStatusBlockPtr () const =0
 Getter for IoStatusBlockPtr.
 
virtual guest_ptr< void > AllocationSizePtr () const =0
 Getter for AllocationSizePtr.
 
virtual FILE_ATTRIBUTES FileAttributes () const =0
 Getter for FileAttributes.
 
virtual FILE_SHARE_ACCESS ShareAccess () const =0
 Getter for ShareAccess.
 
virtual CreateFileDisposition CreateDisposition () const =0
 Getter for CreateDisposition.
 
virtual FileCreateOptions CreateOptions () const =0
 Getter for CreateOptions.
 
virtual guest_ptr< void > EaBufferPtr () const =0
 Getter for EaBufferPtr.
 
virtual uint32_t EaLength () const =0
 Getter for EaLength.
 
virtual void FileHandlePtr (const guest_ptr< void > &pFileHandle)=0
 Setter for FileHandlePtr.
 
virtual void DesiredAccess (FILE_ACCESS_MASK DesiredAccess)=0
 Setter for DesiredAccess.
 
virtual void ObjectAttributesPtr (const guest_ptr< void > &pObjectAttributes)=0
 Setter for ObjectAttributesPtr.
 
virtual void IoStatusBlockPtr (const guest_ptr< void > &pIoStatusBlock)=0
 Setter for IoStatusBlockPtr.
 
virtual void AllocationSizePtr (const guest_ptr< void > &pAllocationSize)=0
 Setter for AllocationSizePtr.
 
virtual void FileAttributes (FILE_ATTRIBUTES FileAttributes)=0
 Setter for FileAttributes.
 
virtual void ShareAccess (FILE_SHARE_ACCESS ShareAccess)=0
 Setter for ShareAccess.
 
virtual void CreateDisposition (CreateFileDisposition CreateDisposition)=0
 Setter for CreateDisposition.
 
virtual void CreateOptions (FileCreateOptions CreateOptions)=0
 Setter for CreateOptions.
 
virtual void EaBufferPtr (const guest_ptr< void > &pEaBuffer)=0
 Setter for EaBufferPtr.
 
virtual void EaLength (uint32_t EaLength)=0
 Setter for EaLength.
 
virtual uint64_t FileHandle () const =0
 
virtual void FileHandle (uint64_t FileHandle)=0
 
virtual const OBJECT_ATTRIBUTESObjectAttributes () const =0
 
virtual OBJECT_ATTRIBUTESObjectAttributes ()=0
 
virtual const IO_STATUS_BLOCKIoStatusBlock () const =0
 
virtual IO_STATUS_BLOCKIoStatusBlock ()=0
 
virtual int64_t AllocationSize () const =0
 
virtual void AllocationSize (int64_t AllocationSize)=0
 
virtual IO_STATUS_RESULT IoStatusResult () const =0
 
virtual void IoStatusResult (IO_STATUS_RESULT IoStatusResult)=0
 Sets the IoStatusResult field in the IoStatusBlock.
 
- Public Member Functions inherited from introvirt::windows::nt::NtSystemCall
virtual NTSTATUS result () const =0
 Get the result code.
 
virtual void result (NTSTATUS_CODE code)=0
 Set the result code.
 
- Public Member Functions inherited from introvirt::windows::WindowsSystemCall
virtual SystemCallIndex index () const =0
 Get the system call number.
 
- Public Member Functions inherited from introvirt::SystemCall
virtual const std::string & name () const =0
 Get the name of the system call.
 
virtual void write (std::ostream &os=std::cout) const =0
 Write a human-readable description of this system call.
 
virtual Json::Value json () const =0
 
virtual bool will_return () const =0
 
virtual void data (const std::string &key, const std::shared_ptr< void > &value)=0
 Store arbitrary data with the SystemCall.
 
virtual void data (const std::string &key, std::shared_ptr< void > &&value)=0
 Store arbitrary data with the SystemCall.
 
virtual std::shared_ptr< void > data (const std::string &key)=0
 Retrieve arbitrary data stored with the SystemCall.
 
virtual std::shared_ptr< const void > data (const std::string &key) const =0
 Retrieve arbitrary data stored with the SystemCall.
 
virtual bool supported () const =0
 Check if this system call is supported by a more specific handler.
 
virtual void handle_return_event (Event &event)=0
 Handle a system call return event.
 
virtual ~SystemCall ()=default
 Destroy the instance.
 

Static Public Member Functions

static NTSTATUS inject (uint64_t &FileHandle, FILE_ACCESS_MASK DesiredAccess, const guest_ptr< void > &pObjectAttributes, const guest_ptr< void > &pIoStatusBlock, const int64_t *AllocationSize, FILE_ATTRIBUTES FileAttributes, FILE_SHARE_ACCESS ShareAccess, CreateFileDisposition CreateDisposition, FileCreateOptions CreateOptions, const guest_ptr< void > &pEaBuffer, uint32_t EaLength)
 

Detailed Description

Handler class for the NtCreateFile system call.

Member Function Documentation

◆ AllocationSize() [1/2]

virtual int64_t introvirt::windows::nt::NtCreateFile::AllocationSize ( ) const
pure virtual

◆ AllocationSize() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::AllocationSize ( int64_t  AllocationSize)
pure virtual

◆ AllocationSizePtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtCreateFile::AllocationSizePtr ( ) const
pure virtual

Getter for AllocationSizePtr.

Returns
The address pointed to by the the AllocationSizePtr parameter

◆ AllocationSizePtr() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::AllocationSizePtr ( const guest_ptr< void > &  pAllocationSize)
pure virtual

Setter for AllocationSizePtr.

Parameters
pAllocationSizeThe address to set for the AllocationSizePtr parameter

◆ CreateDisposition() [1/2]

virtual CreateFileDisposition introvirt::windows::nt::NtCreateFile::CreateDisposition ( ) const
pure virtual

Getter for CreateDisposition.

Returns
The value of the CreateDisposition parameter

◆ CreateDisposition() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::CreateDisposition ( CreateFileDisposition  CreateDisposition)
pure virtual

Setter for CreateDisposition.

Parameters
CreateDispositionThe value to set for the CreateDisposition parameter

◆ CreateOptions() [1/2]

virtual FileCreateOptions introvirt::windows::nt::NtCreateFile::CreateOptions ( ) const
pure virtual

Getter for CreateOptions.

Returns
The value of the CreateOptions parameter

◆ CreateOptions() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::CreateOptions ( FileCreateOptions  CreateOptions)
pure virtual

Setter for CreateOptions.

Parameters
CreateOptionsThe value to set for the CreateOptions parameter

◆ DesiredAccess() [1/2]

virtual FILE_ACCESS_MASK introvirt::windows::nt::NtCreateFile::DesiredAccess ( ) const
pure virtual

Getter for DesiredAccess.

Returns
The value of the DesiredAccess parameter

◆ DesiredAccess() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::DesiredAccess ( FILE_ACCESS_MASK  DesiredAccess)
pure virtual

Setter for DesiredAccess.

Parameters
DesiredAccessThe value to set for the DesiredAccess parameter

◆ EaBufferPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtCreateFile::EaBufferPtr ( ) const
pure virtual

Getter for EaBufferPtr.

Returns
The address pointed to by the the EaBufferPtr parameter

◆ EaBufferPtr() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::EaBufferPtr ( const guest_ptr< void > &  pEaBuffer)
pure virtual

Setter for EaBufferPtr.

Parameters
pEaBufferThe address to set for the EaBufferPtr parameter

◆ EaLength() [1/2]

virtual uint32_t introvirt::windows::nt::NtCreateFile::EaLength ( ) const
pure virtual

Getter for EaLength.

Returns
The value of the EaLength parameter

◆ EaLength() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::EaLength ( uint32_t  EaLength)
pure virtual

Setter for EaLength.

Parameters
EaLengthThe value to set for the EaLength parameter

◆ FileAttributes() [1/2]

virtual FILE_ATTRIBUTES introvirt::windows::nt::NtCreateFile::FileAttributes ( ) const
pure virtual

Getter for FileAttributes.

Returns
The value of the FileAttributes parameter

◆ FileAttributes() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::FileAttributes ( FILE_ATTRIBUTES  FileAttributes)
pure virtual

Setter for FileAttributes.

Parameters
FileAttributesThe value to set for the FileAttributes parameter

◆ FileHandle() [1/2]

virtual uint64_t introvirt::windows::nt::NtCreateFile::FileHandle ( ) const
pure virtual

◆ FileHandle() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::FileHandle ( uint64_t  FileHandle)
pure virtual

◆ FileHandlePtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtCreateFile::FileHandlePtr ( ) const
pure virtual

Getter for FileHandlePtr.

Returns
The address pointed to by the the FileHandlePtr parameter

◆ FileHandlePtr() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::FileHandlePtr ( const guest_ptr< void > &  pFileHandle)
pure virtual

Setter for FileHandlePtr.

Parameters
pFileHandleThe address to set for the FileHandlePtr parameter

◆ inject()

static NTSTATUS introvirt::windows::nt::NtCreateFile::inject ( uint64_t &  FileHandle,
FILE_ACCESS_MASK  DesiredAccess,
const guest_ptr< void > &  pObjectAttributes,
const guest_ptr< void > &  pIoStatusBlock,
const int64_t *  AllocationSize,
FILE_ATTRIBUTES  FileAttributes,
FILE_SHARE_ACCESS  ShareAccess,
CreateFileDisposition  CreateDisposition,
FileCreateOptions  CreateOptions,
const guest_ptr< void > &  pEaBuffer,
uint32_t  EaLength 
)
static

◆ IoStatusBlock() [1/2]

virtual const IO_STATUS_BLOCK * introvirt::windows::nt::NtCreateFile::IoStatusBlock ( ) const
pure virtual

◆ IoStatusBlock() [2/2]

virtual IO_STATUS_BLOCK * introvirt::windows::nt::NtCreateFile::IoStatusBlock ( )
pure virtual

◆ IoStatusBlockPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtCreateFile::IoStatusBlockPtr ( ) const
pure virtual

Getter for IoStatusBlockPtr.

Returns
The address pointed to by the the IoStatusBlockPtr parameter

◆ IoStatusBlockPtr() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::IoStatusBlockPtr ( const guest_ptr< void > &  pIoStatusBlock)
pure virtual

Setter for IoStatusBlockPtr.

Parameters
pIoStatusBlockThe address to set for the IoStatusBlockPtr parameter

◆ IoStatusResult() [1/2]

virtual IO_STATUS_RESULT introvirt::windows::nt::NtCreateFile::IoStatusResult ( ) const
pure virtual
Returns
the IoStatusResult field from the IoStatusBlock

◆ IoStatusResult() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::IoStatusResult ( IO_STATUS_RESULT  IoStatusResult)
pure virtual

Sets the IoStatusResult field in the IoStatusBlock.

◆ ObjectAttributes() [1/2]

virtual const OBJECT_ATTRIBUTES * introvirt::windows::nt::NtCreateFile::ObjectAttributes ( ) const
pure virtual

◆ ObjectAttributes() [2/2]

virtual OBJECT_ATTRIBUTES * introvirt::windows::nt::NtCreateFile::ObjectAttributes ( )
pure virtual

◆ ObjectAttributesPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtCreateFile::ObjectAttributesPtr ( ) const
pure virtual

Getter for ObjectAttributesPtr.

Returns
The address pointed to by the the ObjectAttributesPtr parameter

◆ ObjectAttributesPtr() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::ObjectAttributesPtr ( const guest_ptr< void > &  pObjectAttributes)
pure virtual

Setter for ObjectAttributesPtr.

Parameters
pObjectAttributesThe address to set for the ObjectAttributesPtr parameter

◆ ShareAccess() [1/2]

virtual FILE_SHARE_ACCESS introvirt::windows::nt::NtCreateFile::ShareAccess ( ) const
pure virtual

Getter for ShareAccess.

Returns
The value of the ShareAccess parameter

◆ ShareAccess() [2/2]

virtual void introvirt::windows::nt::NtCreateFile::ShareAccess ( FILE_SHARE_ACCESS  ShareAccess)
pure virtual

Setter for ShareAccess.

Parameters
ShareAccessThe value to set for the ShareAccess parameter

The documentation for this class was generated from the following file: