[wdmaudiodev] GetMapping fails immediately in MappingAvailable

  • From: Eugene Muzychenko <emuzychenko@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Sun, 26 Oct 2008 00:05:22 +0700

I found definitely strange PortCls behavior. On high audio system load
(multiple devices, multiple steams, dozens of small (5-10 ms)
buffers), PortCls calls MappingAvailable but returns STATUS_NOT_FOUND
from GetMapping called *immediately* from MappingAvailable.

MappingAvailable is called by PortCls in response to
IOCTL_KS_READ/IOCTL_KS_WRITE IRPs (I monitor IRPs dispatched by
driver), then I call GetMapping from MappingAvailable and get
STATUS_NOT_FOUND from *first* call.

On later calls to GetMapping, PortCls returns a mapping (or several
mappings), but it may occur when the driver already starts to starve
and produce gaps.

High audio load does not mean high CPU load. CPU is not loaded
significantly (max 20-50%).

This effect is reliably reproducible under XP SP3, 2003 SP1 and 2003
SP2 (all are 32-bit), in both single and dual core configurations.

Is there any reasonable explanation for such PortCls behavior?



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


Other related posts: