[wdmaudiodev] PortCls does not revoke mappings before hibernation

  • From: Eugene Muzychenko <emuzychenko@xxxxxxxxx>
  • To: 'wdmaudiodev@xxxxxxxxxxxxx' <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 20 Oct 2010 16:58:50 +0700


MSDN documentation
(http://msdn.microsoft.com/en-us/library/ff536730(VS.85).aspx) states
that PortCls should revoke mappings at KSSTATE_STOP. But for my
WavePci miniports, neither in XP SP3, Vista SP2 nor Win7, PortCls does
not revoke mappings when stream state is changed to KSSTATE_STOP
(RevokeMappings is not called at all when the system is being prepared
to hibernation). Thus, a stream is placed to the STOP state but still
has mappings acquired.

AC'97 example (up to Win7 WDK) contains the following comment in
KSSTATE_STOP processing:

// Just pause DMA. If we have mappings left in our queue,
// portcls will call RevokeMappings to destroy them.

Is such behavior a bug of PortCls or is it another "hint" that MS have
not mentioned in their documentation? Should a miniport driver release
all acquired mappings itself on a transition to KSSTATE_STOP? I think
a stream should keep no mappings in the stopped state.



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: