dxd - dynax driver framework  2711
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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, 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, unsigned int value)
 
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)
 
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 More...
 
os_result status =not_initialized
 

Protected Member Functions

virtual os_result create_miniport (wchar_t *name,::IResourceList *wdm_reslist, unsigned int port)
 miniport factory More...
 
template<>
os_result create_miniport (wchar_t *,::IResourceList *, unsigned int)
 
virtual os_result launch ()
 miniport factory More...
 

Protected Attributes

::GUID guid
 
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

template<class miniport_t = ::IMiniport>
dxd::adapter< miniport_t >::adapter ( ::DRIVER_OBJECT *  wdm_driver,
::UNICODE_STRING *  registry,
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

template<class miniport_t >
os_result dxd::adapter< miniport_t >::create_miniport ( 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.

template<>
os_result dxd::adapter<::IMiniport >::create_miniport ( wchar_t *  ,
::IResourceList *  ,
unsigned  int 
)
protected
template<class miniport_t = ::IMiniport>
virtual os_result dxd::adapter< miniport_t >::launch ( )
inlineprotectedvirtual

miniport factory

dxd::wdm::registry::operator const ::HANDLE ( ) const
inlineinherited
template<typename type_t >
os_result dxd::wdm::registry::query ( const ::UNICODE_STRING &  key,
type_t &  value 
)
inlineinherited
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:

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

+ Here is the caller graph for this function:

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

+ Here is the caller graph for this function:

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:

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:

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:

os_result dxd::wdm::registry::set ( const ::UNICODE_STRING &  key,
const ::UNICODE_STRING &  value 
)
inlineinherited
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:

template<typename type_t >
unsigned long dxd::wdm::registry::type ( )
inherited

Member Data Documentation

template<class miniport_t = ::IMiniport>
::GUID dxd::adapter< miniport_t >::guid
protected
template<class miniport_t = ::IMiniport>
wchar_t* dxd::adapter< miniport_t >::name =nullptr
protected
template<class miniport_t = ::IMiniport>
unsigned int dxd::adapter< miniport_t >::ports =1

miniport subdevices

template<class miniport_t = ::IMiniport>
os_result dxd::adapter< miniport_t >::status =not_initialized
template<class miniport_t = ::IMiniport>
::DEVICE_OBJECT* dxd::adapter< miniport_t >::wdm_bus =nullptr
protected
template<class miniport_t = ::IMiniport>
::DEVICE_OBJECT* dxd::adapter< miniport_t >::wdm_device =nullptr
protected
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 Mon Feb 25 2019

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.