Eugene,
Jeff Pages Innes Corporation Pty Ltd
Hello!
I have written a WavePci miniport driver that creates several
subdevice pairs of the same type (Wave/Topology) using a standard method
(PcNewPort/PcRegisterSubdevice). I noticed that a system load
after driver startup/shutdown grows
very fast if I increase number of subdevices. If there are 1..4
subdevice pairs, the driver starts quickly and the system becomes idle
immediately. With 8 pairs, the system consumes almost 100% CPU (the "system"
process) about one minute after the driver is loaded or unloaded. With
16 pairs, it continues up to 5 minutes.
Debugging output in my driver shows that several threads from the "system" process (I think they are SysAudio threads) continuously perform many open/close operations for each Topology subdevice, querying them for volume/mute parameters and modify these parameters. Each subdevice is processed many times. But Wave subdevices are almost never touched.
My driver accepts a registry parameter specifying how many subdevice pairs to create. If I lower this amount and restart the driver, system threads try to open non-existent subdevices. For example, if the amount was 10 and I lowered it to 5, system threads try to open subdevices 5..10, in spite of they were not created in current session. Seems like SysAudio remembers how many subdevices were created earlier.
I tested the driver under w2k SP4 and XP SP2, there was no difference.
It is normal or maybe I'm doing something wrong? Each Topology subdevice is responsible for a corresponding Wave subdevice; if I will create a single Topology subdevice responsible for all Wave subdevices, will it be more correct and fast?
Regards, Eugene
******************
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/