(strmif.h) IMemAllocator 接口

接口 IMemAllocator 分配媒体示例,用于在引脚之间移动数据。

当输入引脚公开 IMemInputPin 接口时,此接口由共享分配器的引脚使用。 引脚协商哪个引脚将提供分配器。 分配器用于分配内存缓冲区、检索空缓冲区和释放缓冲区。 并非每个筛选器都创建自己的分配器,因此多个筛选器可能使用一个分配器。 有关详细信息,请参阅 筛选器连接方式

应用程序通常不使用此接口。

若要使用分配器,请执行以下步骤:

  1. 调用 IMemAllocator::SetProperties 方法以指定缓冲区要求,包括缓冲区数和每个缓冲区的大小。
  2. 调用 IMemAllocator::Commit 方法来分配缓冲区。
  3. 调用 IMemAllocator::GetBuffer 方法以检索媒体示例。 此方法会阻止直到下一个示例可用。
  4. 完成每个示例后,请对示例调用 IUnknown::Release 方法。 当样本的引用计数达到零时,不会删除该示例。 相反,该示例将返回到分配器的可用列表。
  5. 使用分配器完成后,调用 IMemAllocator::D ecommit 方法释放缓冲区的内存。

继承

IMemAllocator 接口继承自 IUnknown 接口。 IMemAllocator 还具有以下类型的成员:

方法

IMemAllocator 接口具有这些方法。

 
IMemAllocator::Commit

Commit 方法分配缓冲区内存。
IMemAllocator::D ecommit

Decommit 方法释放缓冲区内存。
IMemAllocator::GetBuffer

GetBuffer 方法检索包含空缓冲区的媒体示例。
IMemAllocator::GetProperties

GetProperties 方法检索分配器将创建的缓冲区数以及缓冲区属性。
IMemAllocator::ReleaseBuffer

ReleaseBuffer 方法发布媒体示例。
IMemAllocator::SetProperties

SetProperties 方法指定要分配的缓冲区数以及每个缓冲区的大小。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)