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

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

#include <NtWaitForMultipleObjects.hh>

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

Public Member Functions

virtual uint32_t HandleCount () const =0
 Getter for HandleCount.
 
virtual guest_ptr< void > HandleArrayPtr () const =0
 Getter for HandleArrayPtr.
 
virtual OBJECT_WAIT_TYPE WaitType () const =0
 Getter for WaitType.
 
virtual void HandleCount (uint32_t HandleCount)=0
 Setter for HandleCount.
 
virtual void HandleArrayPtr (const guest_ptr< void > &pHandleArray)=0
 Setter for HandleArrayPtr.
 
virtual void WaitType (OBJECT_WAIT_TYPE WaitType)=0
 Setter for WaitType.
 
virtual const std::vector< uint64_t > & Handles () const =0
 Get the handles that are being waited on.
 
virtual uint64_t CompletedHandle () const =0
 
- Public Member Functions inherited from introvirt::windows::nt::NtWaitForObjectsBase
virtual bool Alertable () const =0
 Getter for Alertable.
 
virtual guest_ptr< void > TimeoutPtr () const =0
 Getter for TimeoutPtr.
 
virtual void Alertable (bool Alertable)=0
 Setter for Alertable.
 
virtual void TimeoutPtr (const guest_ptr< void > &pTimeout)=0
 Setter for TimeoutPtr.
 
virtual int64_t Timeout () const =0
 
virtual void Timeout (int64_t Timeout)=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 (uint32_t HandleCount, const guest_ptr< void > &pHandleArray, OBJECT_WAIT_TYPE WaitType, bool Alertable, const int64_t *Timeout)
 

Detailed Description

Handler class for the NtWaitForMultipleObjects system call.

Member Function Documentation

◆ CompletedHandle()

virtual uint64_t introvirt::windows::nt::NtWaitForMultipleObjects::CompletedHandle ( ) const
pure virtual

If WaitType is WaitAnyObject, this will return the handle that completed the wait.

Returns
The handle for the dispatcher object that was signaled. NULL if WaitType is WaitAllObjects.

◆ HandleArrayPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtWaitForMultipleObjects::HandleArrayPtr ( ) const
pure virtual

Getter for HandleArrayPtr.

Returns
The address pointed to by the the HandleArrayPtr parameter

◆ HandleArrayPtr() [2/2]

virtual void introvirt::windows::nt::NtWaitForMultipleObjects::HandleArrayPtr ( const guest_ptr< void > &  pHandleArray)
pure virtual

Setter for HandleArrayPtr.

Parameters
pHandleArrayThe address to set for the HandleArrayPtr parameter

◆ HandleCount() [1/2]

virtual uint32_t introvirt::windows::nt::NtWaitForMultipleObjects::HandleCount ( ) const
pure virtual

Getter for HandleCount.

Returns
The value of the HandleCount parameter

◆ HandleCount() [2/2]

virtual void introvirt::windows::nt::NtWaitForMultipleObjects::HandleCount ( uint32_t  HandleCount)
pure virtual

Setter for HandleCount.

Parameters
HandleCountThe value to set for the HandleCount parameter

◆ Handles()

virtual const std::vector< uint64_t > & introvirt::windows::nt::NtWaitForMultipleObjects::Handles ( ) const
pure virtual

Get the handles that are being waited on.

◆ inject()

static NTSTATUS introvirt::windows::nt::NtWaitForMultipleObjects::inject ( uint32_t  HandleCount,
const guest_ptr< void > &  pHandleArray,
OBJECT_WAIT_TYPE  WaitType,
bool  Alertable,
const int64_t *  Timeout 
)
static

◆ WaitType() [1/2]

virtual OBJECT_WAIT_TYPE introvirt::windows::nt::NtWaitForMultipleObjects::WaitType ( ) const
pure virtual

Getter for WaitType.

Returns
The value of the WaitType parameter

◆ WaitType() [2/2]

virtual void introvirt::windows::nt::NtWaitForMultipleObjects::WaitType ( OBJECT_WAIT_TYPE  WaitType)
pure virtual

Setter for WaitType.

Parameters
WaitTypeThe value to set for the WaitType parameter

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