共用方式為


在 WDDM 1.2 和更新版本中提供順暢的狀態轉換

從 Windows 8 開始,數個功能有助於將開機程式期間、從較低電源狀態轉換期間,以及轉換回驅動程序升級或系統錯誤檢查中的操作系統控制期間,將螢幕閃爍和閃爍降至最低或消除。 此外,Windows 8 和更新計算機上的系統韌體必須在電源啟動時偵測整合式顯示面板的原生解析度和計時,並將此資訊交給操作系統。 Windows 顯示驅動程式模型 (WDDM) 1.2 和更新版本顯示迷你埠驅動程式必須支援此行為。

最低 WDDM 版本 1.2
最低 Windows 版本 8
驅動程序實作 - 僅限完整圖形和顯示 強制性
WHCK 需求和測試

System.Client.Firmware.UEFI.GOP.Display

Device.Graphics...PnpStopStartSupport

Device.Graphics...DisplayOutputControl

從韌體轉換至操作系統

所有以用戶端 SKU 為目標的 Windows 8 系統都必須支援統一可擴展韌體介面 (UEFI) 圖形輸出通訊協定 (GOP) 。 在開機階段,GOP 會在系統的整合式顯示面板上設定原生計時和原生解析度。 當操作系統準備好接管顯示器的擁有權時,GOP 會關閉可用來掃描顯示器的畫面緩衝區。 此時,操作系統不會嘗試重設顯示時間或解析度,但只是使用提供的畫面緩衝區,藉此消除一個螢幕快閃。

硬體認證需求

如需硬體裝置在實作此功能時必須符合的需求資訊,請參閱 System.Client.Firmware.UEFI.GOP.Display 的相關 WHCK 檔

從作業系統轉換至驅動程式

當操作系統在開機之後將顯示器的擁有權交給 WDDM 驅動程式時,它會藉由呼叫 DxgkDdiStartDevice 函式來起始裝置的 隨插即用 (PnP) 啟動。 或者,從休眠中繼續之後,操作系統會呼叫 DxgkDdiSetPowerState 函式,並將 DeviceUid 參數設定為 DISPLAY_ADAPTER_HW_ID (在 Video.h) 中定義。 此時,螢幕通常會以空白方式呈現, (轉譯為黑色) ,而 WDDM 圖形驅動程式則採用控制權。

驅動程式可以呼叫 DxgkCbAcquirePostDisplayOwnership 函式, (從 Windows 8) 開始查詢操作系統,以查詢目前畫面緩衝區的確切狀態,以及韌體和開機載入器所設定的顯示模式。 使用此函式所擷取 之DXGK_DISPLAY_INFORMATION 結構中的資訊,驅動程式可以讓顯示器控制器保持作用中,而不會造成監視器的重新同步處理。 因為驅動程式也有框架緩衝區的詳細資訊,所以可以執行更順暢的轉換。

WDDM 1.2 和更新版本中 隨插即用 (PnP) 提供 PnP 開始的詳細數據。

從驅動程序轉換至作業系統

操作系統可以藉由呼叫 DxgkDdiStopDevice 函式來要求顯示裝置的 PnP 停止。 此時,畫面通常會空白, (在操作系統接管顯示控件時呈現為黑色) 。 操作系統可以呼叫 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式, (從 Windows 8) 需要 WDDM 驅動程式設定要掃描的畫面緩衝區開始提供。當操作系統控制顯示器時,操作系統可以轉譯成此畫面緩衝區,以便執行順暢的轉換。

WDDM 1.2 和更新版本中的 隨插即用 (PnP) 會提供更多有關 PnP 停止的詳細數據,包括其他案例。

硬體認證需求

如需此遞交的詳細資訊,請參閱 Device.Graphics 上的相關 WHCK 檔...PnpStopStartSupport

轉換至作業系統而不停用驅動程式

有時候作業系統遇到無法復原的錯誤,而且必須發出系統錯誤檢查。 發生這種情況時,在某些情況下,操作系統必須控制顯示器,但無法停止WDDM驅動程式。 需要 WDDM 1.2 和更新版本的驅動程式,才能實作 DxgkDdiSystemDisplayEnableDxgkDdiSystemDisplayWrite 函式,讓操作系統順暢地轉換為可顯示錯誤畫面的狀態,同時以高解析度和色彩深度維護圖形化介面。 此轉換可消除不雅的用戶體驗。

硬體認證需求

如需硬體裝置在實作此功能時必須符合的需求資訊,請參閱 Device.Graphics 的相關 WHCK 檔...DisplayOutputControl

Windows 8 韌體模式變更

這些是韌體在將控制權交給操作系統之前,韌體顯示模式的變更:

WDDM 1.2 和更新版本的驅動程式 (DXGKDDI_INTERFACE_VERSION>= DXGKDDI_INTERFACE_VERSION_WIN8)
為了進一步消除顯示閃爍,從 Windows 8 開始,WDDM 1.2 和更新版本的驅動程式韌體上不會呼叫 Int10 模式變更要求。

此外,如果關閉監視器時發生模式變更,操作系統只會呼叫 DxgkDdiCommitVidPn 函式一次,並將 pCommitVidPnArg 參數設定為當監視器開啟時所設定的值,而 pCommitVidPnArg-Flags> 的 PathPoweredOff 成員設定為 TRUE

WDDM 1.0 和 1.1 驅動程式 (DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN8<)
對於在 Windows 8 上執行的 WDDM 1.0 和 1.1 版驅動程式,在開機過程中或從休眠繼續時,會呼叫 Int10 VGA 模式0x12,將顯示器解析度設定為監視器的原生高解析度。 在 Windows 8 之前,Int10 VGA 模式0x12呼叫會將顯示器解析度設定為 640 x 480 像素,每個圖元 16 位,沒有閃爍游標,以顯示操作系統啟動顯示畫面影像。

不過,針對WDDM 1.0和 1.1 版驅動程式,指出它們不支援高解析度模式,從 Windows 8 開機開始進入 VGA 模式0x12將顯示器解析度設定為 640 x 480 像素,且每個圖元 16 位,沒有閃爍游標。 當系統從休眠繼續時,顯示解析度仍會設定為監視器的原生高解析度。

此外,如果在關閉監視器時發生模式變更,則為 操作系統會呼叫 DxgkDdiCommitVidPn 函式,如上述 WDDM 1.2 驅動程式所述,再加上其第二次呼叫 DxgkDdiCommitVidPn,並第次呼叫具有空白視訊呈現網路 (VidPN) pCommitVidPnArg-hFunctionalVidPn>,且pCommitVidPnArg-Flags> 中未設定任何旗標值。

當系統在休眠後繼續,並監視同步產生保持啟用時,也會發生這個兩部分呼叫順序。 在此情況下,當驅動程式收到 對 DxgkDdiCommitVidPn 的第二次呼叫時,應該不會採取任何動作。