Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft EdgeMore info about Internet Explorer and Microsoft Edge
Table of contentsExit focus mode

Multimedia Class Scheduler Service

  • 2025-07-14
Feedback

In this article

The Multimedia Class Scheduler service (MMCSS) enables multimedia applications to ensure that their time-sensitive processing receives prioritized access to CPU resources. This service enables multimedia applications to utilize as much of the CPU as possible without denying CPU resources to lower-priority applications.

MMCSS uses information stored in the registry to identify supported tasks and determine the relative priority of threads performing these tasks. Each thread that is performing work related to a particular task calls theAvSetMmMaxThreadCharacteristics orAvSetMmThreadCharacteristics function to inform MMCSS that it is working on that task.

For an example of a program that uses MMCSS, seeExclusive-Mode Streams.

Windows Server 2003 and Windows XP: MMCSS is not available.

Registry Settings

The MMCSS settings are stored in the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile

This key contains aREG_DWORD value namedSystemResponsiveness that determines the percentage of CPU resources that should be guaranteed to low-priority tasks. For example, if this value is 20, then 20% of CPU resources are reserved for low-priority tasks. Note that values that are not evenly divisible by 10 are rounded down to the nearest multiple of 10. Values below 10 and above 100 are clamped to 20. A value of 100 disables MMCSS (driver returnsSTATUS_SERVER_DISABLED).

The key also contains a subkey namedTasks that contains the list of tasks. By default, Windows supports the following tasks:

  • Audio
  • Capture
  • Distribution
  • Games
  • Playback
  • Pro Audio
  • Window Manager

OEMs can add additional tasks as required.

Each task key contains the following set of values that represent characteristics to be applied to threads that are associated with the task.

ValueFormatPossible values
AffinityREG_DWORDA bitmask that indicates the processor affinity. Both 0x00 and 0xFFFFFFFF indicate that processor affinity is not used.
Background OnlyREG_SZIndicates whether this is a background task (no user interface). The threads of a background task do not change because of a change in window focus. This value can be set to True or False.
BackgroundPriorityREG_DWORDThe background priority. The range of values is 1-8.
Clock RateREG_DWORDA hint used by MMCSS to determine the granularity of processor resource scheduling.Windows Server 2008 and Windows Vista: The maximum guaranteed clock rate the system uses if a thread joins this task, in 100-nanosecond intervals. Starting with Windows 7 and Windows Server 2008 R2, this guarantee was removed to reduce system power consumption.
GPU PriorityREG_DWORDThe GPU priority. The range of values is 0-31. This priority is not yet used.
PriorityREG_DWORDThe task priority. The range of values is 1 (low) to 8 (high).For tasks with aScheduling Category of High, this value is always treated as 2.
Scheduling CategoryREG_SZThe scheduling category. This value can be set to High, Medium, or Low.
SFIO PriorityREG_SZThe scheduled I/O priority. This value can be set to Idle, Low, Normal, or High. This value is not used.

 

Note

To conserve power, applications should not set the resolution of the system-wide timer to a small value unless absolutely necessary. For more information, seePerformance in theWindows 7 Developers Guide.

 

Thread Priorities

The MMCSS boosts the priority of threads that are working on high-priority multimedia tasks.

MMCSS determines the priority of a thread using the following factors:

  • The base priority of the task.
  • ThePriority parameter of theAvSetMmThreadPriority function.
  • Whether the application is in the foreground.
  • How much CPU time is being consumed by the threads in each category.

MMCSS sets the priority of client threads depending on their scheduling category.

CategoryPriorityDescription
High23-26These threads run at a thread priority that is lower than only certain system-level tasks. This category is designed for Pro Audio tasks.
Medium16-22These threads are part of the application that is in the foreground.
Low8-15This category contains the remainder of the threads. They are guaranteed a minimum percentage of the CPU resources if required.
1-7These threads have used their quota of CPU resource. They can continue to run if no low-priority threads are ready to run.

 

 

 


Feedback

Was this page helpful?

YesNo

In this article

Was this page helpful?

YesNo