Sets or clears the Direct3D Device Manager for DirectX Video Accereration (DXVA).

Message Parameter

When streaming begins, the ulParam parameter contains an IUnknown pointer. The MFT will query this pointer for the IDirect3DDeviceManager9 interface for Direct3D 9 and the IMFDXGIDeviceManager interface for Direct3D 11. When streaming stops, the ulParameter contains the value NULL.


To send this message, call IMFTransform::ProcessMessage.

This message applies only to video transforms. The client should not send this message unless the MFT returns TRUE for the MF_SA_D3D_AWARE attribute (MF_SA_D3D11_AWARE for Direct3D 11).

Do not send this message to an MFT with multiple ouputs.


An MFT should support this message only if the MFT uses DirectX Video Acceleration for video processing or decoding.

If an MFT supports this message, it should also implement the IMFTransform::GetAttributes method and return the value TRUE for the MF_SA_D3D_AWARE attribute ((MF_SA_D3D11_AWARE for Direct3D 11). This attribute informs the client that the client should send the MFT_MESSAGE_SET_D3D_MANAGER message to the MFT before streaming begins.

If an MFT does not support this message, it should return E_NOTIMPL from ProcessMessage. This is an exception to the general rule that an MFT can return S_OK from any message it ignores.

For more information, see Direct3D-Aware MFTs.


Minimum supported client
Windows Vista [desktop apps only]
Minimum supported server
Windows Server 2008 [desktop apps only]

See also

Direct3D-Aware MFTs

Supporting DXVA 2.0 in Media Foundation

Supporting Direct3D 11 Video Decoding in Media Foundation