IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 IOCTL (sidebandaudio.h)

音频驱动程序发出 IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 控制代码,以获取有关通过旁带音频设备接口公开的音频终结点的信息。 此 IOCTL 的版本 2 允许控制器驱动程序提供自定义设备属性,以添加到音频设备的接口。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

基于 IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR报告的音频终结点数的从 0 开始的终结点索引值。

这是从 0 到 (N-1) 的 ULONG 值,其中 N 是设备的终结点数。

输入缓冲区长度

ULONG 的大小。

输出缓冲区

包含 SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 结构的缓冲区,后跟结构引用的任何其他数据。 如果输出缓冲区大小足够且请求成功,则返回此值。 具体而言,缓冲区包括SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2结构的 FriendlyName 字段引用的字符串的存储。

输出缓冲区长度

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2结构和引用的数据的大小。

状态块

如果例程成功,则 Status 设置为 STATUS_SUCCESS 并且 Information 成员是例程写入输出缓冲区的字节数。

注意 这可能大于 SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 结构的大小,因为输出缓冲区可能包含 结构引用的其他数据

如果 Status 设置为 STATUS_BUFFER_TOO_SMALL,则音频驱动程序应读取 Information 成员,以获取调用方应为此请求分配的缓冲区大小。

注解

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

音频驱动程序发送此请求以获取有关已启用的音频旁带终结点的信息。 启用接口时,信息不会更改,但可以在禁用接口时更改。 因此,音频驱动程序会在发现已启用的设备接口后不久发送此请求,并使用这些信息构建适当的KSFILTER_DESCRIPTOR结构。

音频驱动程序在输出缓冲区大小为 0 (0) 的情况下发送一次此请求,以确定所需的输出缓冲区大小。 在这种情况下,请求将以 Status STATUS_BUFFER_TOO_SMALL 完成,并将 Information 成员设置为所需的缓冲区大小。 然后,音频驱动程序分配必要的存储空间,并再次发送请求。

要求

要求
Header sidebandaudio.h

另请参阅

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2

I/O 控制代码简介

sidebandaudio.h