IOCTL_SBAUD_GET_MUTEPROPERTYVALUES IOCTL (sidebandaudio.h)

音频驱动程序可以调用 IOCTL_SBAUD_GET_MUTEPROPERTYVALUES IOCTL 来查询所有通道的静音阶梯数据范围和最小/最大值。 然后,应为 KSPROPERTY_AUDIO_MUTE 基本支持返回这些值。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

一个基于 0 的终结点索引值,该值基于 IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR报告的音频终结点数。 这是从 0 到 (N-1) 的 ULONG 值,其中 N 是设备的终结点数。

输入缓冲区长度

ULONG 的大小。

输出缓冲区

KSPROPERTY_DESCRIPTION后跟KSPROPERTY_MEMBERSHEADER和静音阶梯数据范围,如 KSPROPERTY_DESCRIPTIONKSPROPERTY_MEMBERSHEADER所述。

如果为 NULL,则 Irp->IoStatus.Information 将设置为输出缓冲区所需的字节数。

输出缓冲区长度

除所有KSPROPERTY_MEMBERSHEADER和步骤范围之外,KSPROPERTY_DESCRIPTION的大小。 此大小在SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR中返回。MutePropertyValuesSize。

状态块

Irp->IoStatus.Status 设置为STATUS_SUCCESS如果请求成功,否则,状态为相应的错误条件作为 NTSTATUS 代码。

如果输出缓冲区为 NULL,则 Irp->IoStatus.Status 设置为 STATUS_BUFFER_TOO_SMALL,Irp->IoStatus.Information 设置为输出缓冲区所需的字节数。

如果提供了适当大小的输出缓冲区,则 Irp->IoStatus.Information 设置为写入输出缓冲区的字节数。

有关详细信息,请参阅 NTSTATUS 值

言论

此 IOCTL 只能从内核模式调用。

实现侧带音频的音频驱动程序应通过 KS 筛选器中的静音节点或通过音频引擎节点播发终结点静音。 这两种方法都可以利用此 IOCTL 提供的基本支持信息。

要求

要求 价值
标头 sidebandaudio.h

另请参阅

KSPROPERTY_AUDIO_MUTE

KSNODEPROPERTY_AUDIO_CHANNEL

IMiniportAudioEngineNode::GetDeviceChannelCount

I/O 控制代码简介

sidebandaudio.h