Huw Davies (@huw) commented about dlls/dsound/buffer.c:
if (!audiobytes1) return DSERR_INVALIDPARAM;
if (lplpaudioptr1)
*(LPBYTE*)lplpaudioptr1 = NULL;
if (audiobytes1)
*audiobytes1 = 0;
At this point `audiobytes1` is guaranteed to be non-zero, so we don't need the test.
Also, since we already have that earlier check on `audiobytes1`, I wonder if it's worth testing if `lplpaudioptr1` behaves in the same way (i.e. returns `DSERR_INVALIDPARAM`), if so that would mean the handling of the `*1` params could the same.