多媒體類別排程器服務
多媒體類別排程器服務 (MMCSS) 可讓多媒體應用程式確保其時間敏感處理會收到優先存取 CPU 資源的優先順序。 此服務可讓多媒體應用程式盡可能利用 CPU,而不拒絕 CPU 資源到較低優先順序的應用程式。
MMCSS 會使用儲存在登錄中的資訊來識別支援的工作,並判斷執行這些工作的線程相對優先順序。 執行與特定工作相關的工作的每個線程都會呼叫 AvSetMmMaxThreadCharacteristics 或 AvSetMmThreadCharacteristics 函式,以通知 MMCSS 正在處理該工作。
如需使用 MMCSS 的程式範例,請參閱 Exclusive-Mode Streams。
Windows Server 2003 和 Windows XP: MMCSS 無法使用。
登錄設定
MMCSS 設定會儲存在下列登錄機碼中:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
此索引鍵包含名為 SystemResponsivenessREG_DWORD 值,可決定應保證為低優先順序工作的 CPU 資源百分比。 例如,如果此值為 20,則 CPU 資源的 20% 會保留給低優先順序的工作。 請注意,10 不平均除的值會四捨五入到最接近的 10 倍數。 值 0 也會被視為 10。
索引鍵也包含名為 Tasks 的子機碼, 包含工作清單。 根據預設,Windows 支援下列工作:
- 音訊
- 擷取
- 散發
- 遊戲
- 播放
- Pro 音訊
- 視窗管理員
OEM 可以視需要新增其他工作。
每個工作索引鍵都包含下列一組值,這些值代表要套用至與工作相關聯之線程的特性。
價值 | 格式 | 可能的值 |
---|---|---|
Affinity | 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 (高)。對於具有 排程類別 為 High 的工作,此值一律會被視為 2。 |
排程類別目錄 | REG_SZ | 排程類別。 此值可以設定為 [高]、[中] 或 [低]。 |
SFIO 優先順序 | REG_SZ | 排程的 I/O 優先順序。 此值可以設定為 [閑置]、[低]、[標準] 或 [高]。 未使用此值。 |
注意
為了節省電源,除非絕對必要,否則應用程式不應將全系統定時器的解析度設定為小型值。 如需詳細資訊,請參閱 Windows 7 開發人員指南中的 效能。
線程優先順序
MMCSS 可提升處理高優先順序多媒體工作的線程優先順序。
MMCSS 會使用下列因素來判斷線程的優先順序:
- 工作的基底優先順序。
- AvSetMmThreadPriority 函式的 Priority 參數。
- 應用程式是否在前景。
- 每個類別中的線程會耗用多少CPU時間。
MMCSS 會根據其排程類別來設定用戶端線程的優先順序。
類別 | 優先權 | 描述 |
---|---|---|
高 | 23-26 | 這些線程會以低於特定系統層級工作的線程優先順序執行。 此類別是專為 Pro Audio 工作所設計。 |
中等 | 16-22 | 這些線程是前景中應用程式的一部分。 |
低 | 8-15 | 此類別包含線程的其餘部分。 如有需要,保證 CPU 資源的最小百分比。 |
1-7 | 這些線程已使用其 CPU 資源的配額。 如果沒有低優先順序線程準備好執行,他們可以繼續執行。 |