The other day, I wrote about beep.sys.
It turns out that Windows will still generate calls to beep.sys under certain circumstances.
The most common place you’re likely to hear beep.sys is if there’s a problem with your machines audio solution (either it’s malfunctioning, the drivers aren’t working, or its been disabled or removed). In that case, then all calls to PlaySound will result in calls to Beep() (assuming that the system is configured to beep on playsound).
There’s one other circumstance in which the system will play beeps, and that’s for accessibility sounds. Accessibility events are typically associated with audio events – these allow a visually impaired user to recognize that an event of significance has occurred.
The PlaySound beep behavior is actually gated on a system parameter – you can call the SystemParametersInfo API to retrieve SPI_GETBEEP to retrieve whether the “warning beeper” is on. You can also disable the “warning beeper” by calling SystemParametersInfo with the SPI_SETBEEP flag.
Note that disabling the “warning beeper” has no affect on the accessibility sounds. those are generated regardless of the warning beep setting.