输出缓冲区大小

微型端口驱动程序的 IMiniport::DataRangeIntersection 方法将指定协商的数据格式的结构复制到调用方分配的缓冲区中。 方法的 OutputBufferLength 参数指定缓冲区的大小(以字节为单位)。 请注意,格式结构的大小会因所选格式而异。 为了避免在缓冲区末尾之后写入,DataRangeIntersection 方法应首先验证分配的缓冲区是否足够大,足以包含格式。

对于单声道或立体声格式,输出缓冲区的最小大小为 sizeof(KSDATAFORMAT_WAVEFORMATEX) 或 sizeof(KSDATAFORMAT_DSOUND),具体取决于是选择了 WAVEFORMATEX 还是 DirectSound 格式。

如果波次格式支持两个以上的声道,则嵌入到 KSDATAFORMAT_WAVEFORMATEX 结构末尾的 WAVEFORMATEX 结构将扩展,以占用等于差异的额外字节数

sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)