dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::kmdf::driver Class Referenceabstract

the WDF driver, one per driver object: the framework device objects with their queue and interface, its devices made by the product's create() More...

#include <dxd_kmdf_device.h>

Inheritance diagram for dxd::kmdf::driver:
Collaboration diagram for dxd::kmdf::driver:

Public Member Functions

virtual client* client_create()
 a client for an open of the driver itself: none where the platform gives the driver no access point of its own
 driver(::DRIVER_OBJECT* wdm_driver, ::UNICODE_STRING* registry, const dxd::guid& guid= 0)
virtual os_result ioctl(unsigned int ioctl, const void* in, size_t size_in, void* out, size_t size_out, size_t& size)
 driver-wide control I/O: the version, and the log mask - the input sets it, the output reads it back
 operator const ::HANDLE() const
template<typename type_t>
os_result query(const ::UNICODE_STRING& key, type_t& value)
template<typename key_t, typename type_t>
os_result query(key_t* key, type_t& value)
os_result remove()
os_result set(const ::UNICODE_STRING& key, const ::GUID& value)
os_result set(const ::UNICODE_STRING& key, const ::UNICODE_STRING& value, unsigned long type= REG_SZ)
os_result set(const ::UNICODE_STRING& key, const char* value)
os_result set(const ::UNICODE_STRING& key, const wchar_t* value)
os_result set(const ::UNICODE_STRING& key, unsigned int value)
template<typename key_t, typename type_t>
os_result set(key_t* key, const type_t& value)
template<typename type_t>
unsigned long type()

Public Attributes

const ::GUID guid
 product GUID: the devices' interface
dx::log log{}
 log mask: every module at error until dx::ioctl::log sets it
bool managed{}
 dxd::power binds the OS's power management to the devices' sleep() and wake()
os_result status
uint32_t version{DX_VERSION32}
 what dx::ioctl::version answers

Protected Member Functions

virtual device* create(::WDFDEVICE wdf_device)= 0
 device factory, on the framework's add of a device and for a rebalanced one's successor

Detailed Description

the WDF driver, one per driver object: the framework device objects with their queue and interface, its devices made by the product's create()

Constructor & Destructor Documentation

◆ driver()

dxd::kmdf::driver::driver(::DRIVER_OBJECT* wdm_driver, ::UNICODE_STRING* registry, const dxd::guid& guid= 0)
inline
Parameters
wdm_driverthe driver's WDM driver object
registrythe driver's service key, whose Parameters it opens
guidproduct GUID
Here is the call graph for this function:

Member Function Documentation

◆ client_create()

virtual client* dxd::driver::client_create()
inlinevirtualinherited

a client for an open of the driver itself: none where the platform gives the driver no access point of its own

Reimplemented in dxd::platform::driver.

◆ create()

virtual device* dxd::kmdf::driver::create(::WDFDEVICE wdf_device)
protectedpure virtual

device factory, on the framework's add of a device and for a rebalanced one's successor

◆ ioctl()

virtual os_result dxd::driver::ioctl(unsigned int ioctl, const void* in, size_t size_in, void* out, size_t size_out, size_t& size)
inlinevirtualinherited

driver-wide control I/O: the version, and the log mask - the input sets it, the output reads it back

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

◆ operator const ::HANDLE()

dxd::wdm::registry::operator const ::HANDLE() const
inlineinherited
Here is the caller graph for this function:

◆ query() [1/2]

template<typename type_t>
os_result dxd::wdm::registry::query(const ::UNICODE_STRING& key, type_t& value)
inlineinherited

◆ query() [2/2]

template<typename key_t, typename type_t>
os_result dxd::wdm::registry::query(key_t* key, type_t& value)
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove()

os_result dxd::wdm::registry::remove()
inlineinherited

◆ set() [1/6]

os_result dxd::wdm::registry::set(const ::UNICODE_STRING& key, const ::GUID& value)
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set() [2/6]

os_result dxd::wdm::registry::set(const ::UNICODE_STRING& key, const ::UNICODE_STRING& value, unsigned long type= REG_SZ)
inlineinherited
Here is the call graph for this function:

◆ set() [3/6]

os_result dxd::wdm::registry::set(const ::UNICODE_STRING& key, const char* value)
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set() [4/6]

os_result dxd::wdm::registry::set(const ::UNICODE_STRING& key, const wchar_t* value)
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set() [5/6]

os_result dxd::wdm::registry::set(const ::UNICODE_STRING& key, unsigned int value)
inlineinherited
Here is the caller graph for this function:

◆ set() [6/6]

template<typename key_t, typename type_t>
os_result dxd::wdm::registry::set(key_t* key, const type_t& value)
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ type()

template<typename type_t>
unsigned long dxd::wdm::registry::type()
inherited
Here is the caller graph for this function:

Member Data Documentation

◆ guid

const ::GUID dxd::kmdf::driver::guid

product GUID: the devices' interface

◆ log

dx::log dxd::driver::log{}
inherited

log mask: every module at error until dx::ioctl::log sets it

◆ managed

bool dxd::driver::managed{}
inherited

dxd::power binds the OS's power management to the devices' sleep() and wake()

◆ status

◆ version

uint32_t dxd::driver::version{DX_VERSION32}
inherited

what dx::ioctl::version answers


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