dxd - dynax driver framework 2.1.0d73
cross platform open source driver development framework
|
dynax driver framework kernel namespace More...
Namespaces | |
namespace | abstract |
namespace | debug |
namespace | dmus |
dmus namespace | |
namespace | doubly |
namespace | ioctl |
kernel IOCTLs | |
namespace | linked |
namespace | multichannel |
namespace | portcls |
portcls namespace | |
namespace | property |
namespace | range |
range namespace | |
namespace | wavecyclic |
wavecyclic namespace | |
namespace | wdm |
WDM++ - windows helper classes. | |
Classes | |
class | __atomic_pointer |
atomic pointer operations More... | |
class | __atomic_pointer< type_t * > |
class | __atomic_scalar |
class | __atomic_scalar< 4, type_t > |
32bit atomic operations More... | |
class | adapter |
adapter driver skeleton More... | |
struct | adjust |
struct | adjust< host > |
struct | adjust< swap > |
class | array |
class | atomic |
atomic operations More... | |
class | atomic< type_t * > |
explicitely specify pointer template argument: More... | |
class | audio |
class | broadcast |
broadcast signalization of participating linked event items More... | |
class | buffer |
kernel memory buffer w/o alignment and boundary requirements More... | |
class | bus |
WDM BUS class. More... | |
class | client |
class | device |
class | engine |
class | event |
IOKit user client. More... | |
class | event< dx::kernel > |
class | event< dx::user > |
kernel representation of shared user space event More... | |
union | fourchar_string |
class | fw |
WDK: FireWire device. More... | |
class | guid |
class | iostream |
class | lock |
class | map |
WDK memory mapping. More... | |
class | map< dx::kernel, vm_t > |
WDK: kernel space memory mapping. More... | |
class | map< dx::user, vm_t > |
WDK: user space memory mapping. More... | |
class | memory |
virtual kernel memory description More... | |
class | mutex |
mutex More... | |
class | open |
class | pci |
class | port |
miniport creation helper More... | |
class | ppc |
PPC device. More... | |
class | process |
IOKit process thread. More... | |
class | reference |
reference holder for object based reference counter More... | |
class | referenced |
reference counting base class More... | |
class | scoped |
class | scoped<::URB > |
class | spinlock |
WDK spinlock. More... | |
class | stream |
generic kernel stream More... | |
class | usb_device |
class | usb_stream_client |
generic USB user client class More... | |
class | usb_stream_device |
generic USB device More... | |
class | wstring |
Typedefs | |
typedef ::KEVENT * | os_event |
platform abstract type os_event for WDK driver | |
typedef ::NTSTATUS | os_result |
platform abstract type os_result for WDK driver | |
Enumerations | |
enum | { ok =kIOReturnSuccess , not_implemented =kIOReturnUnsupported , invalid =kIOReturnBadArgument , device_error =kIOReturnDeviceError , no_resources =kIOReturnNoResources , not_initialized =kIOReturnNotReady , timeout =kIOReturnTimeout , invalid_size =kIOReturnNoSpace , aborted =kIOReturnAborted , exclusive =kIOReturnExclusiveAccess , device_removed =kIOReturnNotAttached , closed =kIOReturnNotOpen , not_permitted =kIOReturnNotPermitted , internal_error =kIOReturnInternalError } |
enum | : int64_t { nsec =1ll , usec =nsec*1000ll , msec =usec*1000ll , sec =msec*1000ll , base =0ll } |
enum | { ok =kIOReturnSuccess , not_implemented =kIOReturnUnsupported , invalid =kIOReturnBadArgument , device_error =kIOReturnDeviceError , no_resources =kIOReturnNoResources , not_initialized =kIOReturnNotReady , interrupt_level_mismatch = STATUS_INVALID_LEVEL , timeout =kIOReturnTimeout , invalid_size =kIOReturnNoSpace , not_aligned = STATUS_DATATYPE_MISALIGNMENT_ERROR , aborted =kIOReturnAborted , failed = STATUS_UNSUCCESSFUL , device_removed =kIOReturnNotAttached , not_permitted =kIOReturnNotPermitted , internal_error =kIOReturnInternalError } |
enum | direction { in =::kIODirectionIn , out =::kIODirectionOut , both =::kIODirectionInOut , none , in =::kIODirectionIn , out =::kIODirectionOut , both =::kIODirectionInOut } |
direction of memory operation More... | |
enum | direction { in =::kIODirectionIn , out =::kIODirectionOut , both =::kIODirectionInOut , none , in =::kIODirectionIn , out =::kIODirectionOut , both =::kIODirectionInOut } |
enum | endian { little_endian , big_endian , host =little_endian , swap =big_endian } |
enum | scale : int64_t { nsec =1ll , usec =nsec*1000ll , msec =usec*1000ll , sec =msec*1000ll } |
enum class | synchrony { sync , async } |
enum | version { elcapitan =0x10110000 } |
Functions | |
bool | below32 (::MDL *mdl) |
indicates whether memory is mapped above 4GB boundary | |
template<class driver_t > | |
::NTSTATUS | create (::DRIVER_OBJECT *wdm_driver, ::UNICODE_STRING *registry, const wchar_t *name=L"", dxd::guid guid=0) |
template<class client_t = ::IOUserClient, typename return_t = os_result, typename exec_arg_t , typename exec_t > | |
return_t | each (::OSIterator *iterator, exec_arg_t exec_arg, exec_t exec) |
for each iterator executor | |
void | errorlog (const char *fmt...) |
template<> | |
os_result | fw::read32< dx::kernel, host > (unsigned int *dst, size_t size32, uint64_t space, int64_t timeout) |
template<> | |
os_result | fw::read32< dx::kernel, host > (unsigned int *dst, size_t size32, uint64_t space, int64_t timeout) |
WDK: synchronously submit an firewire async read request. | |
template<> | |
os_result | fw::read32< dx::kernel, swap > (unsigned int *dst, size_t size32, uint64_t space, int64_t timeout) |
template<> | |
os_result | fw::read32< dx::kernel, swap > (unsigned int *dst, size_t size32, uint64_t space, int64_t timeout) |
WDK: synchronously submit an firewire async swapped data read request. | |
template<> | |
os_result | fw::write32< dx::kernel, host > (const unsigned int *src, size_t size32, uint64_t space, int64_t timeout) |
template<> | |
os_result | fw::write32< dx::kernel, host > (const unsigned int *src, size_t size32, uint64_t space, int64_t timeout) |
WDK: synchronously submit an firewire async write request. | |
template<> | |
os_result | fw::write32< dx::kernel, swap > (const unsigned int *src, size_t size32, uint64_t space, int64_t timeout) |
template<> | |
os_result | fw::write32< dx::kernel, swap > (const unsigned int *src, size_t size32, uint64_t space, int64_t timeout) |
WDK: synchronously submit an firewire async swapped data write request. | |
void | log (const char *fmt...) |
windows kernel logging | |
unsigned int | os_version () |
int64_t | time (int64_t timestamp, scale scale=usec) |
WDK: timestamp to Windows time converter. | |
void | warnlog (const char *fmt...) |
Variables | |
::DRIVER_OBJECT * | wdm_driver = nullptr |
Main driver entry. | |
dynax driver framework kernel namespace
dxd - dynax driver framework
typedef::IOLock * dxd::os_event |
platform abstract type os_event for WDK driver
platform abstract type os_event for IOKit driver
typedef::IOReturn dxd::os_result |
platform abstract type os_result for WDK driver
defining platform abstract type os_result for IOKit driver
anonymous enum |
anonymous enum : int64_t |
anonymous enum |
enum dxd::direction |
enum dxd::direction |
enum dxd::endian |
enum dxd::scale : int64_t |
|
strong |
enum dxd::version |
bool dxd::below32 | ( | ::MDL * | mdl | ) |
indicates whether memory is mapped above 4GB boundary
::NTSTATUS dxd::create | ( | ::DRIVER_OBJECT * | wdm_driver, |
::UNICODE_STRING * | registry, | ||
const wchar_t * | name = L"", | ||
dxd::guid | guid = 0 ) |
wdm_driver | A pointer to a DRIVER_OBJECT structure that represents the driver's WDM driver object. |
registry | A pointer to a UNICODE_STRING structure that specifies the path to the driver's Parameters key in the registry. |
name | An internal unique name |
guid | GUID identifying the kernel driver interface |
return_t dxd::each | ( | ::OSIterator * | iterator, |
exec_arg_t | exec_arg, | ||
exec_t | exec ) |
for each iterator executor
void dxd::errorlog | ( | const char * | fmt... | ) |
os_result dxd::fw::read32< dx::kernel, host > | ( | unsigned int * | dst, |
size_t | size32, | ||
uint64_t | space, | ||
int64_t | timeout ) |
Checks for valid fw unit object,
creates kernel memory object from pointer:size of kernel origin,
checks kernel memory object,
create and submit read command for kernel memory object.
os_result dxd::fw::read32< dx::kernel, host > | ( | unsigned int * | dst, |
size_t | size32, | ||
uint64_t | space, | ||
int64_t | timeout ) |
WDK: synchronously submit an firewire async read request.
Create a memory object from kernel originated pointer:size
checks the kernel memory object,
constructs the appropriate irb and submits it to the lower device
os_result dxd::fw::read32< dx::kernel, swap > | ( | unsigned int * | dst, |
size_t | size32, | ||
uint64_t | space, | ||
int64_t | timeout ) |
Checks for valid fw unit object,
create kernel memory object from pointer:size of kernel origin
check kernel memory object
os_result dxd::fw::read32< dx::kernel, swap > | ( | unsigned int * | dst, |
size_t | size32, | ||
uint64_t | space, | ||
int64_t | timeout ) |
WDK: synchronously submit an firewire async swapped data read request.
Create a memory object from kernel originated pointer:size
checks the kernel memory object,
constructs the appropriate irb and submits it to the lower device,
swaps the received data.
os_result dxd::fw::write32< dx::kernel, host > | ( | const unsigned int * | src, |
size_t | size32, | ||
uint64_t | space, | ||
int64_t | timeout ) |
Checks for valid fw unit object,
create a kernel memory object from kernel originated pointer:size
check kernel memory object
create and submit firewire write cmd
os_result dxd::fw::write32< dx::kernel, host > | ( | const unsigned int * | src, |
size_t | size32, | ||
uint64_t | space, | ||
int64_t | timeout ) |
WDK: synchronously submit an firewire async write request.
Create a memory object from kernel originated pointer:size
checks the kernel memory object,
constructs the appropriate irb and submits it to the lower device.
os_result dxd::fw::write32< dx::kernel, swap > | ( | const unsigned int * | src, |
size_t | size32, | ||
uint64_t | space, | ||
int64_t | timeout ) |
Checks for valid fw unit object,
creates a secondary endian swap kernel buffer memory object below 4GB boundary from size,
creates kernel mapping to endian swap data into,
checks the mapping,
endian swaps into kernel buffer,
creates and submits firewire write cmd.
os_result dxd::fw::write32< dx::kernel, swap > | ( | const unsigned int * | src, |
size_t | size32, | ||
uint64_t | space, | ||
int64_t | timeout ) |
WDK: synchronously submit an firewire async swapped data write request.
Creates an intermediate swap buffer memory object,
checks the buffer creation status,
swaps the data into the newly constructed buffer,
constructs the appropriate irb and submits it to the lower device.
void dxd::log | ( | const char * | fmt... | ) |
windows kernel logging
By default Windows only displays critical logging from the errorlog. To enable other the levels and tracing: double click kernel/wdk/dxd_log.reg https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/reading-and-filtering-debugging-messages
unsigned int dxd::os_version | ( | ) |
WDK: timestamp to Windows time converter.
void dxd::warnlog | ( | const char * | fmt... | ) |
extern::DRIVER_OBJECT * dxd::wdm_driver = nullptr |
Main driver entry.
DriverEntry is the first driver-supplied routine that is called after a driver is loaded. It is responsible for initializing the driver.
This is the main WDF managed driver entry; the first call to the driver will end up here. from here it is the responisibilty of the driver to register at least a callback for the case the I/O manager matches a device to this driver and adds the FDO to the driver stack.
The WDF framework is called with an initialized WDF_DRIVER_CONFIG containing the EvtDeviceAdd callback.
for further reference see: http://msdn.microsoft.com/en-us/library/aa491316.aspx
(c) copyright 2009 dynamic acoustics e.U. | generated on Fri Nov 15 2024 |