[wdmaudiodev] Re: Audio Miniport Driver Design Question

  • From: Tom Eckert <teckert@xxxxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 31 Jul 2007 13:30:41 -0400

Chinmay,
If you want your ports to be reported as separate devices by the legacy APIs you need separate subdevices, i.e.:

 InstallSubdevice(..., "WaveA",...);
 InstallSubdevice(..., "WaveB",...);
 InstallSubdevice(..., "WaveC",...);
 InstallSubdevice(..., "WaveD",...);

And you will need AddInterface entries for each in the INF.

Depending on the HW you should be able to use the same miniport code for all 
but you will need to be able to tell each instance which one it's supposed to 
be and give it any device specific info it needs.  To do this I'd suggest 
adding and interface to the wave miniport and call it from StartDevice() within 
or after InstallSubdevice().

- Tom


Chinmay Mahata wrote:
Dear All,
    I have to develop an WDM Audio Miniport driver for a PCI device
which has 4 physical ports (A, B, C, D), all 4 ports can work as an
input device/channel as well as an output device/channel. The platform
is WinXP SP2. I've already implemented the driver based on DDK sb16
and AC97 sample for only one pair of channels (1 input, 1 output). I
seems it is working fine.

Now I should implement support for the rest of the channels, but I
don't have any idea how.

   Here I am giving some details of my device:

Form the PCI bus controller I got the ResourceList with MemoryCount =
1, IRQCount=1 and the DevPrivCount=1. Since the memoryCount is one, in
my driver code (adapter.cpp) I installed two subdevices.

  InstallSubdevice(..., "Wave",...);
  InstallSubdevice(..., "Topology",...);

To implement the 4 input and 4 output devices/channels, I created
Filter factories for 4 input   devices/channels (for waveIn streams)
and 4 output devices/channels (for waveOut streams). Each
devices/channels have their own set of pins and nodes. I do not know
how to reflect these filters in the INF file under RENDER or CAPTURE
classes.

   Now even if, the driver (sys) is installed without any error, we
can not see all the devices/channels from the user application.

Here my queries are:
1. How to reflect all the render and capture channels/devices in the
INF file ( I have only one installed subdevice named "Wave")?
2. How to make my channels/devices to be visible to mmsdk APIs?

Please let me know if you need any more details.

  I will appreciate for any suggestions and helps.


Best regards,
--Chinmay
******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/


******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: