マルチメディア クラス スケジューラ サービス

マルチメディア クラス スケジューラ サービス (MMCSS) を使用すると、マルチメディア アプリケーションは、時間の影響を受ける処理で CPU リソースへの優先順位付きアクセスを確実に受け取ります。 このサービスにより、マルチメディア アプリケーションは、優先順位の低いアプリケーションに対して CPU リソースを拒否することなく、可能な限り多くの CPU を利用できます。

MMCSS は、レジストリに格納されている情報を使用して、サポートされているタスクを識別し、これらのタスクを実行するスレッドの相対的な優先順位を決定します。 特定のタスクに関連する作業を実行している各スレッドは 、AvSetMmMaxThreadCharacteristics または AvSetMmThreadCharacteristics 関数を呼び出して、そのタスクで作業している MMCSS に通知します。

MMCSS を使用するプログラムの例については、「排他モード の使用」をストリーム。

Windows Server 2003 および Windows XP: MMCSS は使用できません。

レジストリの設定

MMCSS 設定は、次のレジストリ キーに格納されます。

HKEY _ LOCAL MACHINE SOFTWARE Microsoft Windows NT _ \ \ \ \ CurrentVersion マルチメディア \ \ システムプロファイル

このキーには、低優先度のタスクに保証する必要がある CPU リソースの割合を決定する SystemResponsiveness という名前の REG _ DWORD 値が含まれています。 たとえば、この値が 20 の場合、優先度の低いタスク用に CPU リソースの 20% が予約されます。 10 で割り切り可能ではない値は、10 の最も近い倍数に切り上げされます。 値 0 も 10 として扱います。

キーには、タスクの一覧を含む Tasks という名前のサブキーも含まれています。 既定では、Windowsタスクがサポートされます。

  • オーディオ
  • キャプチャ
  • Distribution
  • ゲーム
  • 再生
  • Proオーディオ
  • ウィンドウ マネージャー

OEM は、必要に応じて追加のタスクを追加できます。

各タスク キーには、タスクに関連付けられているスレッドに適用される特性を表す次の値のセットが含まれます。

形式 設定可能な値
アフィニティ REG _ DWORD プロセッサアフィニティを示すビットマスク。 プロセッサ0x00と0xFFFFFFFF、プロセッサ アフィニティが使用されていないかどうかを示します。
背景のみ REG _ SZ これがバックグラウンド タスク (ユーザー インターフェイスなし) かどうかを示します。 ウィンドウ フォーカスが変更されたため、バックグラウンド タスクのスレッドは変更されません。 この値は True または False に設定できます。
BackgroundPriority REG _ DWORD 背景の優先順位。 値の範囲は 1 ~ 8 です。
クロック レート REG _ DWORD プロセッサ リソース スケジューリングの粒度を決定するために MMCSS によって使用されるヒント。Windows Server 2008 および Windows Vista: スレッドが 100 ナノ秒間隔でこのタスクに参加する場合にシステムが使用する最大保証クロック レート。 Windows Server 2008 R2 Windows 7 および Windows Server 2008 R2 では、この保証が削除され、システムの電力消費量が削減されました。
GPU の優先度 REG _ DWORD GPU の優先順位。 値の範囲は 0 ~ 31 です。 この優先順位はまだ使用されていません。
優先順位 REG _ DWORD タスクの優先度。 値の範囲は 1 (低) から 8 (高) です。スケジュール カテゴリが High の タスク の場合、この値は常に 2 として扱います。
スケジュール カテゴリ REG _ SZ スケジュール カテゴリ。 この値は、High、Medium、または Low に設定できます。
SFIO 優先度 REG _ SZ スケジュールされた I/O 優先度。 この値は、Idle、Low、Normal、または High に設定できます。 この値は使用されません。

注意

電力を節約するために、アプリケーションでは、絶対に必要な場合を限り、システム全体のタイマーの解像度を小さな値に設定する必要はありません。 詳細については、Windows 7 開発者ガイドの「パフォーマンス」を参照してください

スレッドの優先度

MMCSS は、優先度の高いマルチメディア タスクに取り組むスレッドの優先度を高める機能です。

MMCSS は、次の要因を使用してスレッドの優先順位を決定します。

  • タスクの基本優先度。
  • AvSetMmThreadPriority関数の Priority パラメーター。
  • アプリケーションがフォアグラウンドにあるかどうか。
  • 各カテゴリのスレッドによって消費されている CPU 時間。

MMCSS は、スケジュール カテゴリに応じてクライアント スレッドの優先順位を設定します。

カテゴリ 優先度 説明
23-26 これらのスレッドは、特定のシステム レベルのタスクよりも低いスレッド優先度で実行されます。 このカテゴリは、オーディオ タスクPro設計されています。
Medium 16-22 これらのスレッドは、フォアグラウンドにあるアプリケーションの一部です。
8-15 このカテゴリには、残りのスレッドが含まれる。 必要に応じて、CPU リソースの最小割合が保証されます。
1-7 これらのスレッドでは、CPU リソースのクォータが使用されています。 低優先度のスレッドを実行する準備ができていない場合は、引き続き実行できます。