[wdmaudiodev] Proper implementation of a virtual driver

  • From: Max K <xaseriii@xxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 6 Nov 2013 18:27:41 +0100

Hi guys,

over the past weeks I finally had some time again to work on my virtual Midi 
driver, and I now came to a point at which the driver is working and I'm now 
thinking about a proper implementation.

As a virtual driver has no associated piece of hardware, it can't make use of 
interrupts to send / receive or process data. That's why I currently have 
implemented this way:

1. normal midi data coming in through the ports are handled by the according 
routines
2. communication to user-mode software is done using device property requests, 
as I found no other way to open up a "stream" or equivalent to a user-mode 
application
3. the data processing routines are called via a DPC Callback Timer and at the 
end of the processing function, the wakeup request is again set to a x ms time.

I wonder if this is the proper way to handle this situation of virtual drivers, 
or if this might have a big negative impact on the system performance.

Regards,

                                          

Other related posts:

  • » [wdmaudiodev] Proper implementation of a virtual driver - Max K