dxd - dynax driver framework 2.1.0d71
cross platform open source driver development framework
No Matches
dxd::dmus::miniport< stream_t > Class Template Reference

dmus::miniport More...

#include <dxd_portcls_audio.h>

+ Inheritance diagram for dxd::dmus::miniport< stream_t >:
+ Collaboration diagram for dxd::dmus::miniport< stream_t >:

Public Member Functions

 miniport (const wchar_t *portname, const::DEVICE_OBJECT *wdm_bus, const::DEVICE_OBJECT *wdm_pdo, const typename stream_t::stream_desc &stream_desc, unsigned int idx)

Public Attributes

os_result status = not_initialized

Protected Member Functions

::IMXF * create_stream (::IUnknown *unknown, ::IAllocatorMXF *allocator, ::IMasterClock *master_clock)
::NTSTATUS __stdcall DataRangeIntersection (unsigned long,::KSDATARANGE *,::KSDATARANGE *, unsigned long, void *, unsigned long *)
::NTSTATUS __stdcall GetDescription (::PCFILTER_DESCRIPTOR **out_filter) override
::NTSTATUS __stdcall Init (::IUnknown *adapter, ::IResourceList *, ::IPortDMus *port, ::IServiceGroup **service_group) override final
::NTSTATUS __stdcall NewStream (::IMXF **stream, ::IUnknown *unknown, ::POOL_TYPE, unsigned long, ::DMUS_STREAM_TYPE stream_type, ::KSDATAFORMAT *format, ::IServiceGroup **service_group, ::IAllocatorMXF *allocator, ::IMasterClock *master_clock, unsigned long long *schedule_prefetch) override final
void __stdcall Service () override final

Detailed Description

template<typename stream_t>
class dxd::dmus::miniport< stream_t >


Constructor & Destructor Documentation

◆ miniport()

template<typename stream_t >
dxd::dmus::miniport< stream_t >::miniport ( const wchar_t * portname,
const::DEVICE_OBJECT * wdm_bus,
const::DEVICE_OBJECT * wdm_pdo,
const typename stream_t::stream_desc & stream_desc,
unsigned int idx )

Member Function Documentation

◆ create_stream()

template<typename stream_t >
::IMXF * dxd::dmus::miniport< stream_t >::create_stream ( ::IUnknown * unknown,
::IAllocatorMXF * allocator,
::IMasterClock * master_clock )
+ Here is the caller graph for this function:

◆ DataRangeIntersection()

template<typename stream_t >
::NTSTATUS __stdcall dxd::dmus::miniport< stream_t >::DataRangeIntersection ( unsigned long ,
unsigned long ,
void * ,
unsigned long *  )

◆ GetDescription()

template<typename stream_t >
::NTSTATUS __stdcall dxd::dmus::miniport< stream_t >::GetDescription ( ::PCFILTER_DESCRIPTOR ** out_filter)


in(): compile only: statics can't be conditionally initialized. move to be a member!

◆ Init()

template<typename stream_t >
::NTSTATUS __stdcall dxd::dmus::miniport< stream_t >::Init ( ::IUnknown * adapter,
::IResourceList * ,
::IPortDMus * port,
::IServiceGroup ** service_group )


reference IPortDMus,

create obligatory IServiceGroup and reference it


◆ NewStream()

template<typename stream_t >
::NTSTATUS __stdcall dxd::dmus::miniport< stream_t >::NewStream ( ::IMXF ** stream,
::IUnknown * unknown,
unsigned long ,
::DMUS_STREAM_TYPE stream_type,
::KSDATAFORMAT * format,
::IServiceGroup ** service_group,
::IAllocatorMXF * allocator,
::IMasterClock * master_clock,
unsigned long long * schedule_prefetch )

Thats the only place the midiport needs the dummy IServiceGroup member for. The DMUS_STREAM_MIDI_CAPTURE stream will removed again when not providing an IServiceGroup.

+ Here is the call graph for this function:

◆ Service()

template<typename stream_t >
void __stdcall dxd::dmus::miniport< stream_t >::Service ( )

Member Data Documentation

◆ status

template<typename stream_t >
os_result dxd::dmus::miniport< stream_t >::status = not_initialized

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

(c) copyright 2009 dynamic acoustics e.U. generated on Thu Jun 6 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.