Thanks very much for your help. Jeff----- Original Message ----- From: "Cheng-mean Liu (SOCCER)" <soccerl@xxxxxxxxxxxxx>
To: <wdmaudiodev@xxxxxxxxxxxxx> Sent: Saturday, March 21, 2009 12:41 PMSubject: [wdmaudiodev] Re: IPortWaveRTStream::AllocateContiguousPagesForMdl problem in Windows 7
Thanks for information, Jeff.I am able to reproduce this issue with exactly same parameter on my Win7 test box.We are investigating the root cause of it. Stay tuned... Thanks Cheng-mean Liu Microsoft This posting is provided "AS IS" with no warranties, and confers no rights. -----Original Message-----From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Jeff PagesSent: Tuesday, March 17, 2009 1:49 AM To: wdmaudiodev@xxxxxxxxxxxxxSubject: [wdmaudiodev] Re: IPortWaveRTStream::AllocateContiguousPagesForMdl problem in Windows 7Thanks. Typically it would be: LowerBound = 0; UpperBound = 0xffffffffffffffffI64; TotalBytes = 80; Jeff----- Original Message ----- From: "Cheng-mean Liu (SOCCER)" <soccerl@xxxxxxxxxxxxx>To: <wdmaudiodev@xxxxxxxxxxxxx> Sent: Tuesday, March 17, 2009 7:36 PMSubject: [wdmaudiodev] Re: IPortWaveRTStream::AllocateContiguousPagesForMdlproblem in Windows 7Hi Jeff: Could you tell me the complete parameters that you pass in when calling this function? Thanks Cheng-mean Liu Microsoft This posting is provided "AS IS" with no warranties, and confers no rights. -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Jeff Pages Sent: Tuesday, March 17, 2009 1:30 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: IPortWaveRTStream::AllocateContiguousPagesForMdl problem in Windows 7 Yes, but it is repeatedly failing calls requesting less than one page of memory. How can fragmentation cause that? This problem does not occur on Vista or Server 2008, just on Windows 7. Jeff----- Original Message ----- From: "Cheng-mean Liu (SOCCER)" <soccerl@xxxxxxxxxxxxx>To: <wdmaudiodev@xxxxxxxxxxxxx> Sent: Tuesday, March 17, 2009 5:18 PM Subject: [wdmaudiodev] Re: IPortWaveRTStream::AllocateContiguousPagesForMdl problem in Windows 7Hi: On a successful call, IPortWaveRTStream::AllocateContiguousPagesForMdl allocates a list of contiguous, nonpaged, physical memory pages and returns a pointer to a memory descriptor list (MDL) that describes them. However, depending on the system state when this is made, the system's pool of nonpaged memory might be fragmented, which could increase the chances for this call to fail because a large block of contiguous physical memory will become less likely to be available. So, it's not unusual to see failure from this call. By the way, there is hard limit in the portcls that it would return NULL if TotalBytes parameter is greater than 90112 Hope this helps. Thanks Cheng-mean Liu Microsoft This posting is provided "AS IS" with no warranties, and confers no rights. -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Jeff Pages Sent: Monday, March 16, 2009 6:46 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: IPortWaveRTStream::AllocateContiguousPagesForMdl problem in Windows 7 Thanks Dogbert. It's good to know it wasn't a case of me doing somethingfundamentally stupid. I've checked AllocateContiguousPagesForMdl() on theRC version of Vista SP2 and it works fine in that, so hopefully it's just a glitch in the Windows 7 beta that will be corrected in the next update. Jeff----- Original Message ----- From: "Dogbert" <dogber1@xxxxxxxxx>To: <wdmaudiodev@xxxxxxxxxxxxx> Sent: Monday, March 16, 2009 4:09 AM Subject: [wdmaudiodev] Re: IPortWaveRTStream::AllocateContiguousPagesForMdl problem in Windows 7Hi, I'm having similar issues on Windows 7 (build 7048, x86):AllocateContiguousPagesForMdl() returns NULL for most of the time to theeffect that STATUS_INSUFFICIENT_RESOURCES has to be returned for IMiniportWaveRTStream::AllocateAudioBuffer(). This renders my audio driver unusable in Windows 7. The peculiar thing is that AllocateContiguousPagesForMdl() fails no matter if the size parameter passed to the function is larger or lower than the page size. As a workaround, I tried to fiddle around with AllocatePagesForMdl()which works fine for every size. Since my hardware is from the stone ageand doesn't support scatter-gather tables, I lowered the size parameter to the size of a single page so as to avoid fragmentation. This value seems to be rejected by the audio engine becauseIMiniportWaveRTStream::FreeAudioBuffer() is called almost directly afterthis size is returned by IMiniportWaveRTStream::AllocateAudioBuffer(). Is there something that I am missing here or is this indeed a bug which I happened to stumble upon? dogbert ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxxSubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribeUnsubscribe: 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/ ****************** 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=subscribeUnsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribeModerator: 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=subscribeUnsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribeModerator: 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/ ****************** 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/