Every change to a 3D listener parameter requires a recalculation of the 3D positional filter parameters. Therefore, to get maximum efficiency, your application can make parameter changes while using the DS3D_DEFERRED flag in the dwApply parameter of the applicable method. It can then call IDirectSound3DListener::CommitDeferredSettings when all settings are complete.
Note Any deferred settings are overwritten if your application calls the same setting with the DS3D_IMMEDIATE flag before it calls IDirectSound3DListener::CommitDeferredSettings. That is, if you set the listener velocity to (1,2,3) by using the deferred flag and then set the listener velocity to (4,5,6) with the immediate flag, the velocity will be (4,5,6). Then, if your application calls the IDirectSound3DListener::CommitDeferredSettings method, the velocity will still be (4,5,6).