获取 HDAUDIO_BUS_INTERFACE_V2 DDI 对象
下表显示了函数驱动程序写入 IRP_MN_QUERY_INTERFACE IOCTL 以获取此结构定义的高清音频 DDI 版本的 HDAUDIO_BUS_INTERFACE_V2 结构和上下文对象的输入参数值。
参数 | 值 |
---|---|
CONST GUID *InterfaceType |
GUID_HDAUDIO_BUS_INTERFACE_V2 |
USHORT 大小 |
sizeof (HDAUDIO_BUS_INTERFACE_V2) |
USHORT 版本 |
0x0100 |
PINTERFACE 接口 |
指向 HDAUDIO_BUS_INTERFACE_V2 结构的指针 |
PVOID InterfaceSpecificData |
NULL |
函数驱动程序为 HDAUDIO_BUS_INTERFACE_V2 结构分配存储,并在 IOCTL 中包含指向此结构的指针。 在上一个表中,指向 HDAUDIO_BUS_INTERFACE_V2 结构的指针被强制转换为类型 PINTERFACE,它是指向类型 接口的结构的指针。 HDAUDIO_BUS_INTERFACE_V2的前五个成员的名称和类型与接口的五个成员的名称和类型相匹配。 HDAUDIO_BUS_INTERFACE_V2 包含属于 DDI 例程的函数指针的其他成员。 为了响应从函数驱动程序接收 IOCTL,HD audio bus 驱动程序将填充 HDAUDIO_BUS_INTERFACE_V2 结构。
下表显示了高清音频总线驱动程序写入 HDAUDIO_BUS_INTERFACE_V2 结构的前五个成员的值。
成员 | “值” |
---|---|
USHORT 大小 |
sizeof (HDAUDIO_BUS_INTERFACE_V2) |
USHORT 版本 |
0x0100 |
PVOID 上下文 |
必须作为第一个调用参数传递给每个 DDI 例程的上下文信息。 |
PINTERFACE_REFERENCE InterfaceReference |
指向用于递增上下文对象的引用计数的例程的指针。 |
PINTERFACE_DEREFERENCE InterfaceDereference |
指向一个例程的指针,该例程将减小上下文对象的引用计数。 |
在上表中, 上下文 成员指向上下文对象,该对象包含特定于基线 HD 音频 DDI 的特定实例的信息。 客户端从 IOCTL 获取此基线 HD 音频 DDI。 当客户端函数驱动程序调用 DDI 中的任何例程时,它必须始终将 上下文 成员值指定为第一个调用参数。 上下文信息对客户端是不透明的。 HD 音频总线驱动程序为每个客户端创建一个不同的上下文对象。 当不再需要上下文对象时,客户端将通过调用上表中显示的 InterfaceDereference 例程来释放上下文对象。 如果需要,客户端可以通过调用 InterfaceDereference 例程来创建对对象的其他引用,但当客户端不再需要这些引用时,该客户端负责将其释放。