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

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

#include <NtDeviceIoControlFile.hh>

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

Public Member Functions

virtual uint64_t FileHandle () const =0
 Getter for FileHandle.
 
virtual uint64_t EventHandle () const =0
 Getter for EventHandle.
 
virtual guest_ptr< void > ApcRoutinePtr () const =0
 Getter for ApcRoutinePtr.
 
virtual guest_ptr< void > ApcContextPtr () const =0
 Getter for ApcContextPtr.
 
virtual guest_ptr< void > IoStatusBlockPtr () const =0
 Getter for IoStatusBlockPtr.
 
virtual uint32_t IoControlCode () const =0
 Getter for IoControlCode.
 
virtual guest_ptr< void > InputBufferPtr () const =0
 Getter for InputBufferPtr.
 
virtual uint32_t InputBufferLength () const =0
 Getter for InputBufferLength.
 
virtual guest_ptr< void > OutputBufferPtr () const =0
 Getter for OutputBufferPtr.
 
virtual uint32_t OutputBufferLength () const =0
 Getter for OutputBufferLength.
 
virtual void FileHandle (uint64_t FileHandle)=0
 Setter for FileHandle.
 
virtual void EventHandle (uint64_t EventHandle)=0
 Setter for EventHandle.
 
virtual void ApcRoutinePtr (const guest_ptr< void > &pApcRoutine)=0
 Setter for ApcRoutinePtr.
 
virtual void ApcContextPtr (const guest_ptr< void > &pApcContext)=0
 Setter for ApcContextPtr.
 
virtual void IoStatusBlockPtr (const guest_ptr< void > &pIoStatusBlock)=0
 Setter for IoStatusBlockPtr.
 
virtual void IoControlCode (uint32_t IoControlCode)=0
 Setter for IoControlCode.
 
virtual void InputBufferPtr (const guest_ptr< void > &pInputBuffer)=0
 Setter for InputBufferPtr.
 
virtual void InputBufferLength (uint32_t InputBufferLength)=0
 Setter for InputBufferLength.
 
virtual void OutputBufferPtr (const guest_ptr< void > &pOutputBuffer)=0
 Setter for OutputBufferPtr.
 
virtual void OutputBufferLength (uint32_t OutputBufferLength)=0
 Setter for OutputBufferLength.
 
virtual const IO_STATUS_BLOCKIoStatusBlock () const =0
 
virtual IO_STATUS_BLOCKIoStatusBlock ()=0
 
- 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, uint64_t EventHandle, const guest_ptr< void > &pApcRoutine, const guest_ptr< void > &pApcContext, const guest_ptr< void > &pIoStatusBlock, uint32_t IoControlCode, const guest_ptr< void > &pInputBuffer, uint32_t InputBufferLength, const guest_ptr< void > &pOutputBuffer, uint32_t OutputBufferLength)
 

Detailed Description

Handler class for the NtDeviceIoControlFile system call.

Examples
ivexec.cc.

Member Function Documentation

◆ ApcContextPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtDeviceIoControlFile::ApcContextPtr ( ) const
pure virtual

Getter for ApcContextPtr.

Returns
The address pointed to by the the ApcContextPtr parameter

◆ ApcContextPtr() [2/2]

virtual void introvirt::windows::nt::NtDeviceIoControlFile::ApcContextPtr ( const guest_ptr< void > &  pApcContext)
pure virtual

Setter for ApcContextPtr.

Parameters
pApcContextThe address to set for the ApcContextPtr parameter

◆ ApcRoutinePtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtDeviceIoControlFile::ApcRoutinePtr ( ) const
pure virtual

Getter for ApcRoutinePtr.

Returns
The address pointed to by the the ApcRoutinePtr parameter

◆ ApcRoutinePtr() [2/2]

virtual void introvirt::windows::nt::NtDeviceIoControlFile::ApcRoutinePtr ( const guest_ptr< void > &  pApcRoutine)
pure virtual

Setter for ApcRoutinePtr.

Parameters
pApcRoutineThe address to set for the ApcRoutinePtr parameter

◆ EventHandle() [1/2]

virtual uint64_t introvirt::windows::nt::NtDeviceIoControlFile::EventHandle ( ) const
pure virtual

Getter for EventHandle.

Returns
The value of the EventHandle parameter

◆ EventHandle() [2/2]

virtual void introvirt::windows::nt::NtDeviceIoControlFile::EventHandle ( uint64_t  EventHandle)
pure virtual

Setter for EventHandle.

Parameters
EventHandleThe value to set for the EventHandle parameter

◆ FileHandle() [1/2]

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

Getter for FileHandle.

Returns
The value of the FileHandle parameter

◆ FileHandle() [2/2]

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

Setter for FileHandle.

Parameters
FileHandleThe value to set for the FileHandle parameter

◆ inject()

static NTSTATUS introvirt::windows::nt::NtDeviceIoControlFile::inject ( uint64_t  FileHandle,
uint64_t  EventHandle,
const guest_ptr< void > &  pApcRoutine,
const guest_ptr< void > &  pApcContext,
const guest_ptr< void > &  pIoStatusBlock,
uint32_t  IoControlCode,
const guest_ptr< void > &  pInputBuffer,
uint32_t  InputBufferLength,
const guest_ptr< void > &  pOutputBuffer,
uint32_t  OutputBufferLength 
)
static

◆ InputBufferLength() [1/2]

virtual uint32_t introvirt::windows::nt::NtDeviceIoControlFile::InputBufferLength ( ) const
pure virtual

Getter for InputBufferLength.

Returns
The value of the InputBufferLength parameter

◆ InputBufferLength() [2/2]

virtual void introvirt::windows::nt::NtDeviceIoControlFile::InputBufferLength ( uint32_t  InputBufferLength)
pure virtual

Setter for InputBufferLength.

Parameters
InputBufferLengthThe value to set for the InputBufferLength parameter

◆ InputBufferPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtDeviceIoControlFile::InputBufferPtr ( ) const
pure virtual

Getter for InputBufferPtr.

Returns
The address pointed to by the the InputBufferPtr parameter

◆ InputBufferPtr() [2/2]

virtual void introvirt::windows::nt::NtDeviceIoControlFile::InputBufferPtr ( const guest_ptr< void > &  pInputBuffer)
pure virtual

Setter for InputBufferPtr.

Parameters
pInputBufferThe address to set for the InputBufferPtr parameter

◆ IoControlCode() [1/2]

virtual uint32_t introvirt::windows::nt::NtDeviceIoControlFile::IoControlCode ( ) const
pure virtual

Getter for IoControlCode.

Returns
The value of the IoControlCode parameter

◆ IoControlCode() [2/2]

virtual void introvirt::windows::nt::NtDeviceIoControlFile::IoControlCode ( uint32_t  IoControlCode)
pure virtual

Setter for IoControlCode.

Parameters
IoControlCodeThe value to set for the IoControlCode parameter

◆ IoStatusBlock() [1/2]

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

◆ IoStatusBlock() [2/2]

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

◆ IoStatusBlockPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtDeviceIoControlFile::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::NtDeviceIoControlFile::IoStatusBlockPtr ( const guest_ptr< void > &  pIoStatusBlock)
pure virtual

Setter for IoStatusBlockPtr.

Parameters
pIoStatusBlockThe address to set for the IoStatusBlockPtr parameter

◆ OutputBufferLength() [1/2]

virtual uint32_t introvirt::windows::nt::NtDeviceIoControlFile::OutputBufferLength ( ) const
pure virtual

Getter for OutputBufferLength.

Returns
The value of the OutputBufferLength parameter

◆ OutputBufferLength() [2/2]

virtual void introvirt::windows::nt::NtDeviceIoControlFile::OutputBufferLength ( uint32_t  OutputBufferLength)
pure virtual

Setter for OutputBufferLength.

Parameters
OutputBufferLengthThe value to set for the OutputBufferLength parameter

◆ OutputBufferPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtDeviceIoControlFile::OutputBufferPtr ( ) const
pure virtual

Getter for OutputBufferPtr.

Returns
The address pointed to by the the OutputBufferPtr parameter

◆ OutputBufferPtr() [2/2]

virtual void introvirt::windows::nt::NtDeviceIoControlFile::OutputBufferPtr ( const guest_ptr< void > &  pOutputBuffer)
pure virtual

Setter for OutputBufferPtr.

Parameters
pOutputBufferThe address to set for the OutputBufferPtr parameter

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