MFPKEY_PMP_Creation_Callback property

Sets a callback that creates the PMP Media Session during source resolution.

Data typePROPVARIANT type (vt)PROPVARIANT member


Some protected content might require the use of this property. If so, the source resolution process fails with the error code MF_E_RESOLUTION_REQUIRES_PMP_CREATION_CALLBACK.

To use this property, do the following.

  1. Call PSCreateMemoryPropertyStore to create a property store.
  2. Implement the IMFAsyncCallback callback interface.
  3. Set the MFPKEY_PMP_Creation_Callback property on the property store. The value is a pointer to the IMFAsyncCallback implementation.
  4. Call IMFSourceResolver::BeginCreateObjectFromURL. Pass in a pointer to the property store in the pProps parameter.

In the IMFAsyncCallback::Invoke method of your callback interface, do the following.

  1. Call MFCreatePMPMediaSession to create the PMP Media Session.
  2. Call IMFGetService::GetService on the PMP Media Session to a pointer to the IMFPMPHost interface.
  3. Call IMFAsyncResult::GetState on the result object that is passed in the pAsyncResult parameter of IMFAsyncCallback::Invoke. Query the returned IUnknown pointer for the IMFAsyncCallback interface.
  4. Call MFPutWorkItem with the following parameters:
    • pCallback: The IMFAsyncCallback pointer obtained in step 3.
    • pState: The IMFPMPHost pointer obtained in step 2.


Minimum supported client

Windows 8 [desktop apps | Windows Store apps]

Minimum supported server

Windows Server 2012 [desktop apps | Windows Store apps]



See also

Media Foundation Properties
PMP Media Session
Protected Media Path
Source Resolver