The current implementation includes a check on param->bytes >= bytes

specifically:

if (data && param->bytes >= bytes)
{

...

}

So if bytes<param->bytes returns D3DERR_INVALIDCALL.

However, the MS version does not act that way: If the parameter is shorter than the length of the data, then the data that fits in the parameter is put and returns D3D_OK

Therefore, the check of the size should be eliminated and in memcpy instead of referring to bytes, it should refer to min(bytes, param->bytes)

Luis


Reply via email to