Microsoft KB Archive/316638

= Not Enough Buffer Allocation with DirectSound =

Article ID: 316638

Article Last Modified on 10/18/2005

-

APPLIES TO


 * Microsoft Windows Millennium Edition

-



This article was previously published under Q316638



SYMPTOMS
When you run a DirectSound sample program that allocates hardware buffers, you may not be able to allocate all of the buffers that the hardware supports. When you are using a driver that supports the IPinCount interface, the hardware buffer count should be updated, and this update is based on the type of buffer that is being allocated.



CAUSE
A device cannot properly express the number of buffers that can be created for buffers with different attributes. For example, a driver might be able to allocate 64 mono buffers, but only 32 stereo buffers. On the VXD model, the driver would appropriately decrement the buffer count by 2 if it was being requested to allocate a stereo buffer. In the Windows Driver Model (WDM) architecture, the component that maintains the buffer counts is the Portcls.sys file. The assumption was made in Portcls.sys that each buffer that was opened would account for one fewer available buffers. Because of this, it was not always possible to express the proper number of buffers that a device can open.



RESOLUTION
A supported hotfix is now available from Microsoft, but it is only intended to correct the problem that this article describes. Apply it only to systems that are experiencing this specific problem.

To resolve this problem, contact Microsoft Product Support Services to obtain the hotfix. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of this fix should have the following file attributes or later:

  Date            Time        Version         Size         File name ---  15-Feb-2002     2:09        4.90.0.3002     147,744      Kmixer.sys 24-Jan-2003    1:27        4.90.3002.0     147,280      Portcls.sys 12-Aug-2002    6:16        4.90.3001.0      49,296      Sysaudio.sys



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.



MORE INFORMATION
DirectSound implements hardware buffers to offload the audio mixing task from the host. Each of these buffers contain certain attributes such as sample rate, bit depth and number of channels. Each driver must maintain a count of the number of hardware buffers that are available. This hotfix also includes a change to Kmixer.sys to properly handle 24-bit audio data. The version of Kmixer.sys that is included with Windows Millennium Edition (Me) truncates all 24-bit audio data down to 16 bits. For additional information about a related topic, click the article number below to view the article in the Microsoft Knowledge Base:

308883 Kmixer Plays Only the Top 16 Bits of 24-Bit or 32-Bit Audio

For additional information about Windows Me hotfixes, click the article number below to view the article in the Microsoft Knowledge Base:

295413 General Information About Windows Millennium Edition Hotfixes

Keywords: kbhotfixserver kbqfe kbenv kbfix kbprb kbqfe kbsound KB316638

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.