DSCAPS
The DSCAPS structure specifies the capabilities of a DirectSound device for use by the IDirectSound::GetCaps method.
typedef { 
    DWORD  dwSize; 
    DWORD  dwFlags;  
    DWORD  dwMinSecondarySampleRate; 
    DWORD  dwMaxSecondarySampleRate; 
    DWORD  dwPrimaryBuffers; 
    DWORD  dwMaxHwMixingAllBuffers; 
    DWORD  dwMaxHwMixingStaticBuffers; 
    DWORD  dwMaxHwMixingStreamingBuffers; 
    DWORD  dwFreeHwMixingAllBuffers; 
    DWORD  dwFreeHwMixingStaticBuffers; 
    DWORD  dwFreeHwMixingStreamingBuffers; 
    DWORD  dwMaxHw3DAllBuffers; 
    DWORD  dwMaxHw3DStaticBuffers; 
    DWORD  dwMaxHw3DStreamingBuffers; 
    DWORD  dwFreeHw3DAllBuffers; 
    DWORD  dwFreeHw3DStaticBuffers; 
    DWORD  dwFreeHw3DStreamingBuffers; 
    DWORD  dwTotalHwMemBytes; 
    DWORD  dwFreeHwMemBytes; 
    DWORD  dwMaxContigFreeHwMemBytes; 
    DWORD  dwUnlockTransferRateHwBuffers; 
    DWORD  dwPlayCpuOverheadSwBuffers; 
    DWORD  dwReserved1; 
    DWORD  dwReserved2; 
} DSCAPS, *LPDSCAPS; 
 
typedef const DSCAPS *LPCDSCAPS;
Members
- dwSize
- Size of the structure, in bytes. This member must be initialized before the structure is used.
- dwFlags
- Specifies device capabilities. Can be one or more of the following: 
- DSCAPS_CERTIFIED 
- This driver has been tested and certified by Microsoft. 
- DSCAPS_CONTINUOUSRATE 
- The device supports all sample rates between the dwMinSecondarySampleRate and dwMaxSecondarySampleRate member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency. 
- DSCAPS_EMULDRIVER 
- The device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected. 
- DSCAPS_PRIMARY16BIT 
- The device supports primary sound buffers with 16-bit samples. 
- DSCAPS_PRIMARY8BIT 
- The device supports primary buffers with 8-bit samples. 
- DSCAPS_PRIMARYMONO 
- The device supports monophonic primary buffers. 
- DSCAPS_PRIMARYSTEREO 
- The device supports stereo primary buffers. 
- DSCAPS_SECONDARY16BIT 
- The device supports hardware-mixed secondary sound buffers with 16-bit samples. 
- DSCAPS_SECONDARY8BIT 
- The device supports hardware-mixed secondary buffers with 8-bit samples. 
- DSCAPS_SECONDARYMONO 
- The device supports hardware-mixed monophonic secondary buffers. 
- DSCAPS_SECONDARYSTEREO 
- The device supports hardware-mixed stereo secondary buffers. 
 
- dwMinSecondarySampleRate and dwMaxSecondarySampleRate
- Minimum and maximum sample rate specifications that are supported by this device's hardware secondary sound buffers.
- dwPrimaryBuffers
- Number of primary buffers supported. This value will always be 1.
- dwMaxHwMixingAllBuffers
- Specifies the total number of buffers that can be mixed in hardware. This member can be less than the sum of dwMaxHwMixingStaticBuffers and dwMaxHwMixingStreamingBuffers. Resource tradeoffs frequently occur. 
- dwMaxHwMixingStaticBuffers
- Specifies the maximum number of static sound buffers. See 
- dwMaxHwMixingStreamingBuffers
- Specifies the maximum number of streaming sound buffers. 
- dwFreeHwMixingAllBuffers, dwFreeHwMixingStaticBuffers, and dwFreeHwMixingStreamingBuffers
- Description of the free, or unallocated, hardware mixing capabilities of the device. An application can use these values to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined. See Remarks.
- dwMaxHw3DAllBuffers, dwMaxHw3DStaticBuffers, and dwMaxHw3DStreamingBuffers
- Description of the hardware 3-D positional capabilities of the device. 
- dwFreeHw3DAllBuffers, dwFreeHw3DStaticBuffers, and dwFreeHw3DStreamingBuffers
- Description of the free, or unallocated, hardware 3-D positional capabilities of the device. See Remarks.
- dwTotalHwMemBytes
- Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.
- dwFreeHwMemBytes
- Size, in bytes, of the free memory on the sound card.
- dwMaxContigFreeHwMemBytes
- Size, in bytes, of the largest contiguous block of free memory on the sound card.
- dwUnlockTransferRateHwBuffers
- Description of the rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the IDirectSoundBuffer::Unlock method.
- dwPlayCpuOverheadSwBuffers
- Description of the processing overhead, as a percentage of the central processing unit, needed to mix software buffers (those located in main system memory). This varies according to the bus type, the processor type, and the clock speed.
The unlock transfer rate for software buffers is 0 because the data need not be transferred anywhere. Similarly, the play processing overhead for hardware buffers is 0 because the mixing is done by the sound device.
 
- dwReserved1 and dwReserved2
- Reserved for future use.
Remarks
Some audio cards may be unable to report accurately the number of available or free hardware buffers. This can happen, for example, when the card can play more sounds at lower sampling rates than at higher rates. In general, a nonzero value in any of the members relating to number of free hardware buffers signifies that at least one hardware resource of the appropriate type is available. 
  Windows NT/2000: Requires Windows NT 4.0 SP3 or later.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in dsound.h.
See Also
IDirectSound::GetCaps