// sidebandaudio.h
// CTL_CODE(0x0022, 0x007, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_SBAUD_GET_VOLUME_STATUS_UPDATE 0x0022001F
View the official Windows Driver Kit DDI referenceNo description available.
The IOCTL_SBAUD_GET_VOLUME_STATUS_UPDATE IOCTL gets the volume level setting of the sideband audio endpoint.
SIDEBANDAUDIO_VOLUME_PARAMS structure with the 0 based endpoint index and channel number along with 'immediate' parameter indicating whether to process this IOCTL immediately or pend it for future updates.
Size of SIDEBANDAUDIO_VOLUME_PARAMS.
Size of SIDEBANDAUDIO_VOLUME_PARAMS.
Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful. Otherwise, Status to the appropriate error condition as a NTSTATUS code. For more information, see NTSTATUS Values.
This IOCTL can only be called from kernel mode.
The volume update IOCTL can be used in two modes - update and immediate. If SIDEBANDAUDIO_VOLUME_PARAMS::Immediate parameter is set to TRUE, the IOCTL returns immediately with the current volume value for the requested channel. If the Immediate parameter is set to FALSE, the IRP is pended by the sideband audio Driver (like USB Audio) until there is a change in the device volume. Audio driver should setup a pending volume IOCTL to get notified of any changes in hardware volume.
Introduction to I/O Control Codes