Hi Eugene, Back in June 2007 I wrote:
I've noticed that occasionally IMiniportWavePciStream::MappingAvailable is called at dispatch level, even though the documentation says it's supposed to be only called at passive level. Also, on a multi-processor system, I'm occasionally seeing two more or less simultaneous calls to MappingAvailable without an intervening failing call to GetMapping - again, according to the documentation and Ken's explanation a couple of months ago on how MappingAvailable is supposed to work, this shouldn't happen.
Okay, this isn't the same problem, but it suggests there might be something suspicious going on in the MappingAvailable - GetMapping logic. I've only ever observed my problem on Vista - all my WavePCI drivers on XP have been quite well behaved as far as I'm aware.
Jeff----- Original Message ----- From: "Eugene Muzychenko" <emuzychenko@xxxxxxxxx>
To: <wdmaudiodev@xxxxxxxxxxxxx> Sent: Sunday, October 26, 2008 4:05 AM Subject: [wdmaudiodev] GetMapping fails immediately in MappingAvailable
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? 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/