Skip to main content
MFBeginRegisterWorkQueueWithMMCSSEx function

Associates a work queue with a Multimedia Class Scheduler Service (MMCSS) task.


HRESULT MFBeginRegisterWorkQueueWithMMCSSEx(
  _In_ DWORD            dwWorkQueueId,
  _In_ LPCWSTR          wszClass,
  _In_ DWORD            dwTaskId,
  _In_ LONG             lPriority,
  _In_ IMFAsyncCallback *pDoneCallback,
  _In_ IUnknown         *pDoneState


dwWorkQueueId [in]

The identifier of the work queue. For private work queues, the identifier is returned by the MFAllocateWorkQueue function. For platform work queues, see Work Queue Identifiers.

wszClass [in]

The name of the MMCSS task. For more information, see Multimedia Class Scheduler Service.

dwTaskId [in]

The unique task identifier. To obtain a new task identifier, set this value to zero.

lPriority [in]

The base relative priority for the work-queue threads. For more information, see AvSetMmThreadPriority.

pDoneCallback [in]

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

pDoneState [in]

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 function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.


This function extends the MFBeginRegisterWorkQueueWithMMCSS function by adding the lPriority parameter.

This function is asynchronous. When the operation completes, the callback object's IMFAsyncCallback::Invoke method is called. At that point, call MFEndRegisterWorkQueueWithMMCSS to complete the asynchronous request.

To unregister the work queue from the MMCSS task, call MFBeginUnregisterWorkQueueWithMMCSS.


Minimum supported client

Windows 8 [desktop apps only]

Minimum supported server

Windows Server 2012 [desktop apps only]





See also

Media Foundation Functions
Work Queues
Work Queue and Threading Improvements