Q: I'd like to adjust the audio settings for my device at run time. I've found that the control panel adjusts some registry keys when changes are made, but when I alter them manually or through code it doesn't take effect until I restart the device. How can I get my changes to take effect without a restart?
The following registry keys are used for system volume:
Since the keys don't change frequently, the audio driver only reads the registry keys when it boots, or is explicitly told to do so (which is what the Control Panel does). Your application can tell the driver to reload the setting by calling the AudioUpdateFromRegistry API. Here's the declaration, depending on your language preference:
I can change the volume (via the key you mentioned) in software and I can see it change in the Registry. However, calling AudioUpdateFromRegistry() seems to make no difference in volume. I'm changing the value in this order (same as doing so from Control Panel).