MFCreateDXGISurfaceBuffer function

Creates a media buffer to manage a Microsoft DirectX Graphics Infrastructure (DXGI) surface.


HRESULT MFCreateDXGISurfaceBuffer(
  REFIID         riid,
  IUnknown       *punkSurface,
  UINT           uSubresourceIndex,
  BOOL           fBottomUpWhenLinear,
  IMFMediaBuffer **ppBuffer



Identifies the type of DXGI surface. This value must be IID_ID3D11Texture2D.


A pointer to the IUnknown interface of the DXGI surface.


The zero-based index of a subresource of the surface. The media buffer object is associated with this subresource.


If TRUE, the buffer's IMF2DBuffer::ContiguousCopyTo method copies the buffer into a bottom-up format. The bottom-up format is compatible with GDI for uncompressed RGB images. If this parameter is FALSE, the ContiguousCopyTo method copies the buffer into a top-down format, which is compatible with Direct3D.

For more information about top-down versus bottom-up images, see Image Stride.


Receives a pointer to the IMFMediaBuffer interface. The caller must release the buffer.

Return Value

If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.


The returned buffer object supports the following interfaces:


Minimum supported client Windows 8 [desktop apps | UWP apps]
Minimum supported server Windows Server 2012 [desktop apps | UWP apps]
Target Platform Windows
Header mfapi.h
Library Mfplat.lib
DLL Mfplat.dll

See Also

Media Foundation Functions