Work Queue Identifiers

The following constants identify the standard Media Foundation work queues.

Applications should use MFASYNC_CALLBACK_QUEUE_MULTITHREADED or use a work queue obtained from MFLockSharedWorkQueue if they want to control the execution priority. Note that the default platform work queue priorities can dynamically change when an application calls MFRegisterPlatformWithMMCSS. For more information about work queues, see Work Queues.

Constant/value Description
MFASYNC_CALLBACK_QUEUE_STANDARD In most cases, applications should use MFASYNC_CALLBACK_QUEUE_MULTITHREADED. This work queue is used for synchronous operations. Using the standard work queue may run the risk of deadlocking. Applications can create a private synchronous queue on top of the multithreaded queue by using MFAllocateSerialWorkQueue.
MFASYNC_CALLBACK_QUEUE_RT Not for general application use.
MFASYNC_CALLBACK_QUEUE_IO Not for general application use. This work queue is used internally for I/O operations such as reading files and reading from the network.
MFASYNC_CALLBACK_QUEUE_TIMER Not for general application use. This work queue is used for periodic callbacks and scheduled work items. The following functions put work items in this queue:
MFASYNC_CALLBACK_QUEUE_MULTITHREADEDThis multithreaded work queue should be used in most cases. This work queue is used for asynchronous operations throughout Media Foundation.
MFASYNC_CALLBACK_QUEUE_LONG_FUNCTIONNot for general application use. Applications should instead use MFASYNC_CALLBACK_QUEUE_MULTITHREADED.

In addition, the following constants are used in connection with work queues.

Constant/value Description
MFASYNC_CALLBACK_QUEUE_UNDEFINEDUndefined work queue.
MFASYNC_CALLBACK_QUEUE_PRIVATE_MASKBit mask to distinguish platform work queues from those created by calling MFAllocateWorkQueue (Desktop only). For a work queue created by MFAllocateWorkQueue (Desktop only), the following value is nonzero: (identifier & MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK)
MFASYNC_CALLBACK_QUEUE_ALLAll platform work queues.

Requirements

Header: Declared in mfobjects.h (include mfidl.h).