SoundAuxDispatch

NTSTATUS
   SoundAuxDispatch(
       IN OUT PLOCAL_DEVICE_INFO
pLDI,
       IN PIRP
pIrp,
       IN PIO_STACK_LOCATION
IrpStack
       );

The SoundAuxDispatch function is the IRP control code dispatcher for auxiliary audio devices.

Parameters

pLDI

Pointer to a LOCAL_DEVICE_INFO structure.

pIrp

Pointer to an IRP.

IrpStack

Pointer to an I/O stack location.

Return Value

Returns STATUS_SUCCESS if the operation succeeds. Otherwise returns an NTSTATUS error code.

Comments

Kernel-mode auxiliary audio device drivers using soundlib.lib place the address of the SoundAuxDispatch function in the DispatchRoutine member of a SOUND_DEVICE_INIT structure. The function is called by soundlib.lib’s main dispatcher, SoundDispatch.

The function processes the following IRP control codes:

IRP_MJ_CLEANUP
IRP_MJ_CLOSE
IRP_MJ_CREATE
IRP_MJ_DEVICE_CONTROL

For IRP_MJ_DEVICE_CONTROL, the SoundAuxDispatch function processes the following I/O control codes:

IOCTL_AUX_GET_CAPABILITIES
IOCTL_AUX_GET_VOLUME
IOCTL_AUX_SET_VOLUME
IOCTL_SOUND_GET_CHANGED_VOLUME

Refer to the Kernel-Mode Drivers Reference for descriptions of PIRP and PIO_STACK_LOCATION types, along with IRP control codes and I/O control codes.