多媒體類別排程器服務

多媒體類別排程器服務 (MMCSS) 可讓多媒體應用程式確保其時間敏感處理會收到優先存取 CPU 資源的優先順序。 此服務可讓多媒體應用程式盡可能利用 CPU,而不會拒絕 CPU 資源至優先順序較低的應用程式。

MMCSS 會使用儲存在登錄中的資訊來識別支援的工作,並判斷執行這些工作的執行緒相對優先順序。 每個執行與特定工作相關的工作執行緒都會呼叫 AvSetMmMaxThreadCharacteristicsAvSetMmThreadCharacteristics 函式,以通知 MMCSS 處理該工作。

如需使用 MMCSS 的程式範例,請參閱 獨佔模式資料流程

Windows Server 2003 和 Windows XP: MMCSS 無法使用。

登錄設定

MMCSS 設定會儲存在下列登錄機碼中:

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

此機碼包含名為SystemResponsiveness的REG_DWORD值,決定應保證為低優先順序工作的 CPU 資源百分比。 例如,如果此值為 20,則 20% 的 CPU 資源會保留給低優先順序的工作。 請注意,10 不平均除的值會四捨五入到最接近的 10 倍數。 值 0 也會被視為 10。

索引鍵也包含名為 Tasks 的子機碼,其中包含工作清單。 根據預設,Windows 支援下列工作:

  • 音訊
  • 擷取
  • Distribution
  • 遊戲
  • 播放
  • 專業音訊
  • 視窗管理員

OEM 可以視需要新增其他工作。

每個工作索引鍵都包含下列一組值,這些值代表要套用至與工作相關聯的執行緒特性。

格式 可能值
親和力 REG_DWORD 表示處理器親和性的位元遮罩。 0x00和0xFFFFFFFF都表示未使用處理器親和性。
僅限背景 REG_SZ 指出這是否為背景工作, (沒有使用者介面) 。 背景工作的執行緒不會因為視窗焦點變更而變更。 此值可以設定為 True 或 False。
BackgroundPriority REG_DWORD 背景優先順序。 值的範圍是 1-8。
時脈速率 REG_DWORD MMCSS 用來判斷處理器資源排程的資料細微性的提示。Windows Server 2008 和 Windows Vista: 如果執行緒聯結此工作,則系統會使用的最大保證時脈速率,以 100 奈秒的間隔為單位。 從 Windows 7 和 Windows Server 2008 R2 開始,已移除此保證以減少系統耗電量。
GPU 優先順序 REG_DWORD GPU 優先順序。 值的範圍是 0-31。 尚未使用此優先順序。
優先順序 REG_DWORD 工作優先順序。 值的範圍是 1 (低) 到 8 (高) 。對於排 程類別 為 [高] 的工作,此值一律視為 2。
排程類別 REG_SZ 排程類別。 此值可以設定為 [高]、[中] 或 [低]。
SFIO 優先順序 REG_SZ 排程的 I/O 優先順序。 此值可以設定為 [閒置]、[低]、[正常] 或 [高]。 不使用這個值。

 

注意

為了節省電源,除非絕對必要,否則應用程式不應該將全系統計時器的解析度設定為較小的值。 如需詳細資訊,請參閱Windows 7 開發人員指南中的效能

 

執行緒優先順序

MMCSS 可提升處理高優先順序多媒體工作的執行緒優先順序。

MMCSS 會使用下列因素決定執行緒的優先順序:

  • 工作的基底優先順序。
  • AvSetMmThreadPriority式的 Priority參數。
  • 應用程式是否在前景。
  • 每個類別中的執行緒耗用多少 CPU 時間。

MMCSS 會根據其排程類別來設定用戶端執行緒的優先順序。

類別 優先順序 Description
23-26 這些執行緒會以低於特定系統層級工作的執行緒優先順序執行。 此類別是針對 Pro 音訊工作所設計。
16-22 這些執行緒屬於前景的應用程式。
8-15 此類別包含執行緒的其餘部分。 如有需要,它們保證 CPU 資源的最小百分比。
1-7 這些執行緒已使用 CPU 資源的配額。 如果沒有低優先順序的執行緒準備好執行,他們可以繼續執行。