MFLockSharedWorkQueue 函式 (mfapi.h)
取得和鎖定共用工作佇列。
語法
HRESULT MFLockSharedWorkQueue(
[in] PCWSTR wszClass,
[in] LONG BasePriority,
[in, out] DWORD *pdwTaskId,
[out] DWORD *pID
);
參數
[in] wszClass
MMCSS 工作的名稱。
[in] BasePriority
工作佇列執行緒的基底優先順序。
如果使用一般優先順序佇列 (wszClass=「」) ,則必須傳入值 0。
[in, out] pdwTaskId
MMCSS 工作識別碼。 在輸入時,指定現有的 MCCSS 工作組識別碼,或使用零值來建立新的工作組。 如果使用一般優先順序佇列 (wszClass=「」) ,則必須傳入 Null 。 在輸出中,接收實際的工作組識別碼。
[out] pID
接收新工作佇列的識別碼。 在佇列工作專案時使用此識別碼。
傳回值
如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
多執行緒工作佇列會使用執行緒集區來分派工作專案。 每當執行緒變成可用時,就會從佇列取消佇列中的下一個工作專案。 工作專案會以優先先出的順序取消佇列,但工作專案不會序列化。 換句話說,工作佇列不會等待工作專案在開始下一個工作專案之前完成。
在單一程式中,Microsoft Media Foundation 平臺會為每個多媒體類別排程器服務建立最多一個多執行緒佇列 (MMCSS) 工作。 MFLockSharedWorkQueue函式會檢查相符的工作佇列是否已存在。 如果沒有,函式會建立新的工作佇列,並使用 MMCSS 註冊工作佇列。 函式會傳回 mmCSS 工作識別碼 (pdwTaskId) ,而工作佇列識別碼 (pID) 。 若要將工作專案排入佇列,請將工作佇列識別碼傳遞至下列任何函式:
MFLockSharedWorkQueue函式也會鎖定佇列。 在進程結束之前,請呼叫 MFUnlockWorkQueue 以解除鎖定工作佇列。如果使用一般優先順序佇列 (wszClass=「」) ,則必須將 Null 傳入 pdwTaskId ,且值 0 必須傳入 BasePriority。
需求
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfapi.h |
程式庫 | Mfplat.lib |
Dll | Mfplat.dll |