IMFWorkQueueServices::BeginRegisterTopologyWorkQueuesWithMMCSS method (mfidl.h)

Registers the topology work queues with the Multimedia Class Scheduler Service (MMCSS).


HRESULT BeginRegisterTopologyWorkQueuesWithMMCSS(
  [in] IMFAsyncCallback *pCallback,
  [in] IUnknown         *pState


[in] pCallback

A pointer to the IMFAsyncCallback interface of a callback object. The caller must implement this interface.

[in] pState

A pointer to the IUnknown interface of a state object defined by the caller. This parameter can be NULL. You can use this object to hold state information. The object is returned to the caller when the callback is invoked.

Return value

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


Each source node in the topology defines one branch of the topology. The branch includes every topology node that receives data from that node. An application can assign each branch of a topology its own work queue and then associate those work queues with MMCSS tasks.

To use this method, perform the following steps.

  1. Create the topology.
  2. Set the following attributes on the source nodes in the topology.
  3. Queue the topology by calling IMFMediaSession::SetTopology.
  4. Wait for the MESessionTopologyStatus event with the MF_TOPOSTATUS_READY status.
  5. Call BeginRegisterTopologyWorkQueuesWithMMCSS. This method registers all of the topology work queues with MMCSS.
The BeginRegisterTopologyWorkQueuesWithMMCSS method is asynchronous. When the operation completes, the callback object's IMFAsyncCallback::Invoke method is called. Within the callback method, call IMFWorkQueueServices::EndRegisterTopologyWorkQueuesWithMMCSS to complete the asynchronous request. After this operation completes, the Media Session automatically registers the work queues for every new topology that is queued on the Media Session. The application does not need to call the method again for new topologies.

To unregister the topology work queues from MMCSS, call IMFWorkQueueServices::BeginUnregisterTopologyWorkQueuesWithMMCSS.


Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header mfidl.h
Library Mfuuid.lib

See also