多媒體類別排程器服務
多媒體類別排程器服務 (MMCSS) 可讓多媒體應用程式確保其時間敏感處理會收到優先存取 CPU 資源的優先順序。 此服務可讓多媒體應用程式盡可能利用 CPU,而不會拒絕 CPU 資源至優先順序較低的應用程式。
MMCSS 會使用儲存在登錄中的資訊來識別支援的工作,並判斷執行這些工作的執行緒相對優先順序。 每個執行與特定工作相關的工作執行緒都會呼叫 AvSetMmMaxThreadCharacteristics 或 AvSetMmThreadCharacteristics 函式,以通知 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 資源的配額。 如果沒有低優先順序的執行緒準備好執行,他們可以繼續執行。 |