dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::device Class Reference

plain WDM device, one per FDO More...

#include <dxd_device.h>

Inheritance diagram for dxd::device:

Public Member Functions

 device (::DEVICE_OBJECT *wdm_device, ::DEVICE_OBJECT *wdm_pdo, ::DEVICE_OBJECT *wdm_bus)
virtual os_result ioctl (unsigned int ioctl, const void *, size_t size_in, void *out, size_t size_out, size_t &size)
 control I/O handler, reached through client::ioctl()
virtual ~device ()=default

Public Attributes

os_result status {not_initialized}

Protected Member Functions

virtual client * client_create ()
virtual void conclude ()
 device remove hook, called while the stack below still serves: the last word to the hardware
virtual os_result launch ()
 device start hook, called before any client can reach the device
virtual void unplugged ()
 surprise removal hook, called with removed set: the hardware side goes at once, what open handles hold waits for their close and the remove

Protected Attributes

bool removed {}
 the device vanished: the stack below no longer answers //////////////////////////////////////////////////////////////////////////// user client factory
struct dxd::device:: { ... }  wdm

Friends

class adapter

Detailed Description

plain WDM device, one per FDO

The KMDF bound counterpart of this class, its client and its driver is dxd::kmdf(kmdf/dxd_device.h) - both offer the same ioctl()/client contract, so classes built on either(dxd::stream::device, the bus devices) name only that.

Constructor & Destructor Documentation

◆ device()

dxd::device::device ( ::DEVICE_OBJECT * wdm_device,
::DEVICE_OBJECT * wdm_pdo,
::DEVICE_OBJECT * wdm_bus )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~device()

virtual dxd::device::~device ( )
virtualdefault

Reimplemented in dxd::adapter::device.

Member Function Documentation

◆ client_create()

virtual client * dxd::device::client_create ( )
inlineprotectedvirtual

◆ conclude()

virtual void dxd::device::conclude ( )
inlineprotectedvirtual

device remove hook, called while the stack below still serves: the last word to the hardware

Reimplemented in dxd::adapter::device, and dxd::usb::device< base_t >.

Here is the caller graph for this function:

◆ ioctl()

virtual os_result dxd::device::ioctl ( unsigned int ioctl,
const void * ,
size_t size_in,
void * out,
size_t size_out,
size_t & size )
inlinevirtual

control I/O handler, reached through client::ioctl()

Reimplemented in dxd::adapter::device, and dxd::usb::device< base_t >.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ launch()

virtual os_result dxd::device::launch ( )
inlineprotectedvirtual

device start hook, called before any client can reach the device

Reimplemented in dxd::usb::device< base_t >.

Here is the caller graph for this function:

◆ unplugged()

virtual void dxd::device::unplugged ( )
inlineprotectedvirtual

surprise removal hook, called with removed set: the hardware side goes at once, what open handles hold waits for their close and the remove

Reimplemented in dxd::adapter::device.

Here is the caller graph for this function:

◆ adapter

friend class adapter
friend

Member Data Documentation

◆ removed

bool dxd::device::removed {}
protected

the device vanished: the stack below no longer answers //////////////////////////////////////////////////////////////////////////// user client factory

◆ status

os_result dxd::device::status {not_initialized}

◆ wdm

struct { ... } dxd::device::wdm

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

(c) copyright 2009 dynamic acoustics e.U. generated on

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.