次の方法で共有


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 タスク グループ ID を指定するか、値 0 を使用して新しいタスク グループを作成します。 通常の優先度キューが使用されている場合 (wszClass="")、 NULL を 渡す必要があります。 出力時に、 は実際のタスク グループ ID を受け取ります。

[out] pID

新しい作業キューの識別子を受け取ります。 この識別子は、作業項目をキューに入れたときに使用します。

戻り値

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

解説

マルチスレッド作業キューは、スレッド プールを使用して作業項目をディスパッチします。 スレッドが使用可能になると、キューから次の作業項目がデキューされます。 作業項目は先入れ先出し順でデキューされますが、作業項目はシリアル化されません。 つまり、作業キューは、次の作業項目を開始する前に、作業項目が完了するまで待機しません。

1 つのプロセス内で、Microsoft Media Foundation プラットフォームは、マルチメディア クラス スケジューラ サービス (MMCSS) タスクごとに最大 1 つのマルチスレッド キューを作成します。 MFLockSharedWorkQueue 関数は、一致する作業キューが既に存在するかどうかを確認します。 そうでない場合、関数は新しい作業キューを作成し、作業キューを MMCSS に登録します。 関数は、MMCSS タスク識別子 (pdwTaskId) と作業キュー識別子 (pID) を返します。 作業項目をキューに入てるには、作業キュー ID を次のいずれかの関数に渡します。

MFLockSharedWorkQueue 関数もキューをロックします。 プロセスが終了する前に、 MFUnlockWorkQueue を呼び出して作業キューのロックを解除します。

通常の優先度キュー (wszClass="") が使用されている場合は、NULL を pdwTaskId に渡し、値 0 を BasePriority に渡す必要があります。

要件

   
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー mfapi.h
Library Mfplat.lib
[DLL] Mfplat.dll

関連項目

メディア ファンデーション機能

作業キューとスレッド処理の機能強化

作業キュー