MFAllocateWorkQueueEx 函数 (mfapi.h)

创建新的工作队列。 此函数通过创建具有消息循环的工作队列,扩展了 MFAllocateWorkQueue 函数的功能。

语法

HRESULT MFAllocateWorkQueueEx(
  [in]  MFASYNC_WORKQUEUE_TYPE WorkQueueType,
  [out] DWORD                  *pdwWorkQueue
);

参数

[in] WorkQueueType

MFASYNC_WORKQUEUE_TYPE枚举的成员,指定要创建的工作队列的类型。

含义
MF_MULTITHREADED_WORKQUEUE
创建多线程工作队列。 通常,应用程序不应创建专用多线程队列。 请改用平台多线程队列。 有关详细信息,请参阅 工作队列和线程改进
MF_STANDARD_WORKQUEUE
创建不带消息循环的工作队列。 使用此标志等效于调用 MFAllocateWorkQueue
MF_WINDOW_WORKQUEUE
使用消息循环创建工作队列。 为此队列调度工作项的线程还将调用 PeekMessageDispatchMessage。 如果回调执行任何需要消息循环的操作,请使用此选项。

[out] pdwWorkQueue

接收已创建的工作队列的标识符。

返回值

函数返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
函数成功。
E_FAIL
应用程序超出了工作队列的最大数目。
E_INVALIDARG
无效的参数。
MF_E_SHUTDOWN
应用程序未调用 MFStartup,或者应用程序已调用 MFShutdown

注解

使用完工作队列后,请调用 MFUnlockWorkQueue

MFAllocateWorkQueue 函数等效于使用 WorkQueueType 参数的值MF_STANDARD_WORKQUEUE调用 MFAllocateWorkQueueEx

如果安装了适用于 Windows Vista 的平台更新补充,则此函数在 Windows Vista 上可用。

要求

要求
最低受支持的客户端 适用于 Windows Vista 的 Windows 7、Windows Vista 和平台更新补充 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 mfapi.h
Library Mfplat.lib
DLL Mfplat.dll

另请参阅

MFPutWorkItem

MFPutWorkItemEx

媒体基础函数

工作队列