dxd - dynax driver framework 2.1.0d58
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::wdm::irp< synchrony_t > Class Template Reference

IRP class. More...

#include <dxd_wdm.h>

+ Inheritance diagram for dxd::wdm::irp< synchrony_t >:
+ Collaboration diagram for dxd::wdm::irp< synchrony_t >:

Public Member Functions

bool cancel ()
 
os_result ctl (unsigned int ioctl, bool internal=false)
 
template<class receipt_t >
os_result ictl (unsigned int ioctl, receipt_t &receipt, bool internal=false)
 
template<class post_t , class receipt_t >
os_result ioctl (const post_t &post, unsigned int ioctl, receipt_t &receipt, bool internal=false)
 
os_result ioctl (const void *post, size_t post_size, unsigned int ioctl, void *receipt, size_t receipt_size, bool internal=false)
 IOCTL IRP http://msdn.microsoft.com/en-us/library/windows/hardware/ff540663(v=vs.85).aspx.
 
 irp (const::DEVICE_OBJECT *wdm_device, const::FILE_OBJECT *wdm_file=nullptr)
 
template<class post_t >
os_result octl (const post_t &post, unsigned int ioctl, bool internal=false)
 
os_result octl (unsigned int post, unsigned int ioctl, bool internal=false)
 
os_result submit (unsigned int ioctl, void *others)
 submit other IRP
 
virtual ~irp ()
 

Protected Member Functions

virtual void completion (os_result)
 

Detailed Description

template<synchrony synchrony_t = synchrony::sync>
class dxd::wdm::irp< synchrony_t >

IRP class.

general semantics is: irp(optional_post_data->device:ioclt->optional_receive_data)

Constructor & Destructor Documentation

◆ irp()

template<synchrony synchrony_t = synchrony::sync>
dxd::wdm::irp< synchrony_t >::irp ( const::DEVICE_OBJECT * wdm_device,
const::FILE_OBJECT * wdm_file = nullptr )
inline
+ Here is the call graph for this function:

◆ ~irp()

template<synchrony synchrony_t = synchrony::sync>
virtual dxd::wdm::irp< synchrony_t >::~irp ( )
inline
+ Here is the call graph for this function:

Member Function Documentation

◆ cancel()

template<synchrony synchrony_t = synchrony::sync>
bool dxd::wdm::irp< synchrony_t >::cancel ( )
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ completion()

template<synchrony synchrony_t = synchrony::sync>
virtual void dxd::wdm::irp< synchrony_t >::completion ( os_result )
inlineprotectedvirtual

◆ ctl()

template<synchrony synchrony_t = synchrony::sync>
os_result dxd::wdm::irp< synchrony_t >::ctl ( unsigned int ioctl,
bool internal = false )
inline
+ Here is the call graph for this function:

◆ ictl()

template<synchrony synchrony_t = synchrony::sync>
template<class receipt_t >
os_result dxd::wdm::irp< synchrony_t >::ictl ( unsigned int ioctl,
receipt_t & receipt,
bool internal = false )
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ioctl() [1/2]

template<synchrony synchrony_t = synchrony::sync>
template<class post_t , class receipt_t >
os_result dxd::wdm::irp< synchrony_t >::ioctl ( const post_t & post,
unsigned int ioctl,
receipt_t & receipt,
bool internal = false )
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ioctl() [2/2]

template<synchrony synchrony_t = synchrony::sync>
os_result dxd::wdm::irp< synchrony_t >::ioctl ( const void * post,
size_t post_size,
unsigned int ioctl,
void * receipt,
size_t receipt_size,
bool internal = false )
inline

IOCTL IRP http://msdn.microsoft.com/en-us/library/windows/hardware/ff540663(v=vs.85).aspx.

Todo
: check and refuse IRQL; handle completion
Todo
:for asynchronous IRP request: move buffered copy into completion!
+ Here is the call graph for this function:

◆ octl() [1/2]

template<synchrony synchrony_t = synchrony::sync>
template<class post_t >
os_result dxd::wdm::irp< synchrony_t >::octl ( const post_t & post,
unsigned int ioctl,
bool internal = false )
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ octl() [2/2]

template<synchrony synchrony_t = synchrony::sync>
os_result dxd::wdm::irp< synchrony_t >::octl ( unsigned int post,
unsigned int ioctl,
bool internal = false )
inline
+ Here is the call graph for this function:

◆ submit()

template<synchrony synchrony_t = synchrony::sync>
os_result dxd::wdm::irp< synchrony_t >::submit ( unsigned int ioctl,
void * others )
inline

submit other IRP

+ Here is the call graph for this function:

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

(c) copyright 2009 dynamic acoustics e.U. generated on Sat Mar 23 2024

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.