dxd - dynax driver framework 2.1.0d69
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::adapter< miniport_t > Class Template Reference

adapter driver skeleton More...

#include <dxd_port.h>

+ Inheritance diagram for dxd::adapter< miniport_t >:
+ Collaboration diagram for dxd::adapter< miniport_t >:

Public Member Functions

 adapter (::DRIVER_OBJECT *wdm_driver, ::UNICODE_STRING *registry, const wchar_t *name, const dxd::guid &guid=0)
 
 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 char *value)
 
os_result set (const::UNICODE_STRING &key, const wchar_t *value)
 
os_result set (const::UNICODE_STRING &key, const::GUID &value)
 
os_result set (const::UNICODE_STRING &key, const::UNICODE_STRING &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

unsigned int ports = 1
 miniport subdevices
 
os_result status = not_initialized
 

Protected Member Functions

os_result create_miniport (const wchar_t *,::IResourceList *, unsigned int)
 abstract IMiniport factory
 
virtual os_result create_miniport (const wchar_t *name, ::IResourceList *wdm_reslist, unsigned int port)
 miniport factory
 
virtual os_result launch ()
 miniport factory
 

Protected Attributes

::GUID guid
 
const wchar_t * name = nullptr
 
::DEVICE_OBJECT * wdm_bus = nullptr
 
::DEVICE_OBJECT * wdm_device = nullptr
 
::DEVICE_OBJECT * wdm_pdo = nullptr
 

Detailed Description

template<class miniport_t = ::IMiniport>
class dxd::adapter< miniport_t >

adapter driver skeleton

Constructor & Destructor Documentation

◆ adapter()

template<class miniport_t = ::IMiniport>
dxd::adapter< miniport_t >::adapter ( ::DRIVER_OBJECT * wdm_driver,
::UNICODE_STRING * registry,
const wchar_t * name,
const dxd::guid & guid = 0 )
inline

< GUID identifying the type of port
< interface that is being requested and can be one of the following: CLSID_PortDMus, CLSID_PortMidi, CLSID_PortTopology, CLSID_PortWaveCyclic, CLSID_PortWavePci

Parameters
wdm_driverA pointer to a DRIVER_OBJECT structure that represents the driver's WDM driver object.
registryA pointer to an UNICODE_STRING structure that specifies the path to the driver's Parameters key in the registry.
nameAn internal unique name

Member Function Documentation

◆ create_miniport() [1/2]

os_result dxd::adapter<::IMiniport >::create_miniport ( const wchar_t * ,
::IResourceList * ,
unsigned int  )
protected

abstract IMiniport factory

◆ create_miniport() [2/2]

template<class miniport_t >
os_result dxd::adapter< miniport_t >::create_miniport ( const wchar_t * name,
::IResourceList * wdm_reslist,
unsigned int port )
protectedvirtual

miniport factory

Ignores by default subdevice index parameters and creates the miniport with outer unknown zero for compatibilty with Microsofts IMiniport interfaces.

◆ launch()

template<class miniport_t = ::IMiniport>
virtual os_result dxd::adapter< miniport_t >::launch ( )
inlineprotectedvirtual

miniport factory

◆ operator const::HANDLE()

dxd::wdm::registry::operator const::HANDLE ( ) const
inlineinherited

◆ 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
+ Here is the caller graph for this function:

◆ set() [1/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() [2/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() [3/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() [4/6]

os_result dxd::wdm::registry::set ( const::UNICODE_STRING & key,
const::UNICODE_STRING & value )
inlineinherited

◆ 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

Member Data Documentation

◆ guid

template<class miniport_t = ::IMiniport>
::GUID dxd::adapter< miniport_t >::guid
protected

◆ name

template<class miniport_t = ::IMiniport>
const wchar_t* dxd::adapter< miniport_t >::name = nullptr
protected

◆ ports

template<class miniport_t = ::IMiniport>
unsigned int dxd::adapter< miniport_t >::ports = 1

miniport subdevices

◆ status

template<class miniport_t = ::IMiniport>
os_result dxd::adapter< miniport_t >::status = not_initialized

◆ wdm_bus

template<class miniport_t = ::IMiniport>
::DEVICE_OBJECT* dxd::adapter< miniport_t >::wdm_bus = nullptr
protected

◆ wdm_device

template<class miniport_t = ::IMiniport>
::DEVICE_OBJECT* dxd::adapter< miniport_t >::wdm_device = nullptr
protected

◆ wdm_pdo

template<class miniport_t = ::IMiniport>
::DEVICE_OBJECT* dxd::adapter< miniport_t >::wdm_pdo = nullptr
protected

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

(c) copyright 2009 dynamic acoustics e.U. generated on Sun May 26 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.