Share via


IVMRSurfaceAllocator9::InitializeDevice method (vmr9.h)

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

The InitializeDevice method is called by the Video Mixing Renderer 9 (VMR-9) when it needs the allocator-presenter to allocate surfaces.

Syntax

HRESULT InitializeDevice(
  [in]      DWORD_PTR          dwUserID,
  [in]      VMR9AllocationInfo *lpAllocInfo,
  [in, out] DWORD              *lpNumBuffers
);

Parameters

[in] dwUserID

Application-defined identifier. This value is the same value that the application passed to the IVMRSurfaceAllocatorNotify9::AdviseSurfaceAllocator method in the dwUserID parameter.

[in] lpAllocInfo

Pointer to a VMR9AllocationInfo structure that contains a description of the surfaces to create.

[in, out] lpNumBuffers

On input, specifies the number of surfaces to create. When the method returns, this parameter contains the number of buffers that were actually allocated.

Return value

The method returns an HRESULT. Possible values include those in the following table.

Return code Description
S_OK
The method succeeded.

Remarks

Implement this method if you are providing a custom allocator-presenter for the VMR-9. You can use the IVMRSurfaceAllocatorNotify9::AllocateSurfaceHelper method on the VMR-9 to allocate the surfaces.

Include DShow.h and D3d9.h before Vmr9.h.

Requirements

Requirement Value
Minimum supported client Windows XP with SP2 [desktop apps only]
Minimum supported server Windows Server 2003 R2 [desktop apps only]
Target Platform Windows
Header vmr9.h
Library Strmiids.lib

See also

Error and Success Codes

IVMRSurfaceAllocator9 Interface

Supplying a Custom Allocator-Presenter for VMR-7

Using the Video Mixing Renderer

VMR Renderless Playback Mode (Custom Allocator-Presenters)