typedef struct _DSCAPS {
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;
Specifies the capabilities of a DirectSound device for use by the IDirectSound::GetCaps method.
Size of this structure, in bytes.
Specifies device capabilities. Can be one or more of the following:
This driver has been tested and certified by Microsoft.
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 Hz of the requested frequency.
The device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected.
The device supports primary buffers with 16-bit samples.
The device supports primary buffers with 8-bit samples.
The device supports monophonic primary buffers.
The device supports stereo primary buffers.
The device supports hardware-mixed secondary buffers with 16-bit samples.
The device supports hardware-mixed secondary buffers with 8-bit samples.
The device supports hardware-mixed monophonic secondary buffers.
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.
Number of primary buffers supported. This value will always be 1 for this release.
Specifies the total number of buffers that can be mixed in hardware.
Specifies the maximum number of static buffers.
Specifies the maximum number of streaming buffers.
The value for MaxHwMixingAllBuffers may be less than the sum of dwMaxHwMixingStaticBuffers and dwMaxHwMixingStreamingBuffers. Resource trade-offs frequently occur.
dwFreeHwMixingAllBuffers, dwFreeHwMixingStaticBuffers, and dwFreeHwMixingStreamingBuffers
Description of the free, or unallocated, hardware mixing capabilities of the device. These values can be used by an application 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.
dwMaxHw3DAllBuffers, dwMaxHw3DStaticBuffers, and dwMaxHw3DStreamingBuffers
Description of the hardware 3D positional capabilities of the device. These will all be 0 for the first release.
dwFreeHw3DAllBuffers, dwFreeHw3DStaticBuffers, and dwFreeHw3DStreamingBuffers
Description of the free, or unallocated, hardware 3D positional capabilities of the device. These will all be 0 for the first release.
Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.
Size, in bytes, of the free memory on the sound card.
Size, in bytes, of the largest contiguous block of free memory on the sound card.
Description of the rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers (those located in onboard sound memory). This and the number of bytes transferred determines the duration of a call to the IDirectSoundBuffer::Unlock method.
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 does not need to be transferred anywhere. Similarly, the play processing overhead for hardware buffers is 0 because the mixing is done by the sound device.
These values are reserved. Do not use.