I know and agree with you. My point was that you should not make any assumptions when making API calls. If you see a parameter value that is not documented or its description is too vague, you should take the necessary precautions or better yet, try not to rely on it.

The behavior you described is not an exception, there will be many more cases where you should not rely on API to be "intelligent". So this is as an extension of your warning to the entire API in general, be it DirectSound, Win32 API, DirectX and so on.

This was not always the case, you know. For instance, back in DirectDraw days you could pass the entire structure half empty and DirectDraw will fill in all the remaining values. Now if you try this with Direct3D 11, in the best case you'll get an error code and in the worst case you'll mess up the video driver, even causing BSOD under certain circumstances.