音频驱动程序可以调用 IOCTL_SBAUD_GET_MUTEPROPERTYVALUES IOCTL 来查询所有通道的静音阶梯数据范围和最小/最大值。 然后,应为 KSPROPERTY_AUDIO_MUTE 基本支持返回这些值。
主要代码
输入缓冲区
一个基于 0 的终结点索引值,该值基于 IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR报告的音频终结点数。 这是从 0 到 (N-1) 的 ULONG 值,其中 N 是设备的终结点数。
输入缓冲区长度
ULONG 的大小。
输出缓冲区
KSPROPERTY_DESCRIPTION后跟KSPROPERTY_MEMBERSHEADER和静音阶梯数据范围,如 KSPROPERTY_DESCRIPTION 和 KSPROPERTY_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 |