IAMDevMemoryAllocator::GetDevMemoryObject 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

注意IAMDevMemoryAllocator 接口已弃用。
 
检索一个 IUnknown 接口指针,该指针指向可以使用自定义分配器聚合的设备内存控件对象。

语法

HRESULT GetDevMemoryObject(
  [out] IUnknown **ppUnkInnner,
  [in]  IUnknown *pUnkOuter
);

参数

[out] ppUnkInnner

指向新创建的控件对象自己的 IUnknown 的指针的地址。 销毁外部对象时,应释放此内部 IUnknown 接口。 自定义分配器应在此指针上调用 QueryInterface 方法以获取 IAMDevMemoryControl 接口。

[in] pUnkOuter

指向自定义分配器自己的 IUnknown 接口的指针。 此接口聚合自定义分配器中的设备内存控制对象。

返回值

返回 HRESULT 值。

备注

设备内存控制对象是使用自定义分配器进行聚合所必需的,因为需要使用板载内存的呈现器在收到新的分配器时将查询 IAMDevMemoryControl ,以验证内存是否来自同一设备。 发生这种情况的原因是硬件筛选器将收到 IMemAllocator 对象,该对象可能使用板载内存,也可能不使用板载内存。 若要确定它是否是兼容的分配器,对象将查询 IAMDevMemoryControl 接口以访问特定方法。 IAMDevMemoryControl 创建实现 IAMDevMemoryControl 方法的聚合对象, (这些方法通常是特定于硬件的) 。

有关外部对象如何实现聚合的规则,请参阅 COM 文档。

要求

   
目标平台 Windows
标头 strmif.h (包括 Dshow.h)

另请参阅

错误和成功代码

IAMDevMemoryAllocator 接口