WDDM 1.2 和更新版本中的 隨插即用 (PnP)
所有 Windows 顯示驅動程式模型 (WDDM) 1.2 和更新版本顯示迷你埠驅動程式都必須支援下列行為,以回應 隨插即用 (PnP) 基礎結構的啟動和停止要求。 根據驅動程式傳回成功或失敗碼,或系統硬體是以基本輸入/輸出系統為基礎, (BIOS) 或整合可擴展韌體介面 (UEFI) ,行為可能會有所不同。
最低 WDDM 版本 | 1.2 |
最低 Windows 版本 | 8 |
驅動程序實作-完整圖形和僅顯示 | 強制性 |
WHCK 需求和測試 | Device.Graphics.WDDM12.Display.PnpStopStartSupport |
顯示迷你埠驅動程式 PnP DDI
從 Windows 8 開始,Microsoft DirectX 圖形核心子系統會提供此函式,如果顯示裝置已啟動或繼續休眠,驅動程式可以呼叫此函式:
這些函式和結構適用於顯示迷你埠驅動程式,以實作 WDDM 1.2 和更新版本的 PnP 需求:
- DxgkDdiStopDeviceAndReleasePostDisplayOwnership
- DxgkDdiSystemDisplayEnable
- DxgkDdiSystemDisplayWrite
- DXGK_DISPLAY_INFORMATION
PnP 啟動作業
隨插即用 (PnP) 啟動程式會在開機期間發生,或在從一個顯示器驅動程序升級至另一個顯示器驅動程式期間發生。 在此情況下,驅動程式必須呼叫 DxgkCbAcquirePostDisplayOwnership 函式,以取得畫面緩衝區的相關信息,並維護顯示同步處理。 框架緩衝區資訊會從韌體或先前載入系統上的 WDDM 1.2 和更新版本驅動程式提供。
在呼叫操作系統時,對 DxgkDdiSetPowerState 函式傳回 D0 電源狀態,以及傳回 DxgkDdiStartDevice 函式時,WDDM 1.2 和更新版本的驅動程式必須將來源可見性設定為 false (DXGKARG_SETVIDPNSOURCEVISIBILITY。可見 = 所有 作用中視訊呈現網路 (VidPN) 目標的 FALSE) 。 在此情況下,顯示管線硬體必須維持與監視器的同步訊號,但管線必須繼續將黑色圖元數據傳送至監視器,無論目前掃描到的介面中存在哪些像素數據。這表示圖元管線保證會將所有黑色圖元的監視器空白。 稍後,當第一個畫面呈現到畫面緩衝區時,操作系統會將來源可見性設定為 true。
所有這些程式都會讓監視器保持同步,並確保使用者不會在螢幕上看到閃爍或閃爍。
這些是驅動程式在 PnP 啟動程式之後應該傳回的傳回碼。
驅動程式傳回碼 | Description |
---|---|
成功 |
行為與 Windows 7 中的行為相同。 如果是 BIOS 型系統,如果驅動程式成功啟動,畫面緩衝區仍為使用中,而且驅動程式必須準備好設定為有效的模式。 |
失敗 |
如果是 BIOS 型系統,驅動程式必須讓系統保持 BIOS 相容狀態。 針對以 UEFI 為基礎的系統,驅動程式必須讓顯示器保持與 UEFI 圖形輸出通訊協定設定的相同模式, (GOP) ,讓基本顯示驅動程式可以使用顯示器。 驅動程式必須傳回有效的錯誤碼。 如果驅動程式無法讓 GOP 處於基本顯示驅動程式可以使用的狀態,驅動程式必須從 Ntstatus.h 傳回 STATUS_GRAPHICS_STALE_MODESET 錯誤碼,而且操作系統會導致系統錯誤檢查發生。 |
PnP 停止作業
隨插即用 (PnP) 停止顯示裝置上的程式通常會在驅動程序升級至新版本時發生。 在此情況下,操作系統會呼叫驅動程式的 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式,這需要驅動程式提供精確的畫面緩衝區資訊。
在 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 呼叫驅動程式時,必須確定作用中 VidPn 目標的來源可見性為 true (DXGKARG_SETVIDPNSOURCEVISIBILITY。可見 = TRUE) 。 此外,從WDDM 1.2 開始,驅動程式必須確定要從 中掃描的圖元管線所撰寫的介面會填滿黑色圖元。 驅動程序應該會在來源可見性設定為 true 之前,先以黑色圖元填滿表面。
請務必在驅動程序中實作 DxgkDdiStopDevice 。 在某些情況下,操作系統可能會呼叫 DxgkDdiStopDevice 而不是 DxgkDdiStopDeviceAndReleasePostDisplayOwnership,或在呼叫 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 失敗之後。
這些是驅動程式在 PnP 停止程式之後應該傳回的傳回碼。
驅動程式傳回碼 | Description |
---|---|
成功,且驅動程式會傳回模式資訊 |
在驅動程式停止之前,必須先使用目前解析度來設定畫面緩衝區,基本顯示驅動程式可以使用,而且當操作系統呼叫 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式時,驅動程式必須傳回這項資訊。 儲存的模式資訊不需要與 BIOS 相容,而且在系統重新啟動之前,基本顯示驅動程式將不會提供 BIOS 模式。 如果 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 傳回STATUS_SUCCESS,操作系統就會保證不會呼叫 DxgkDdiStopDevice。 |
成功,而驅動程式會將DXGK_DISPLAY_INFORMATION結構的 Width 和 Height 成員設定為零 |
只有當系統有兩張圖形卡時,系統才會有兩張圖形卡,沒有任何監視器連線到目前的電源開啟自我測試 (POST) 裝置,而操作系統會呼叫 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式來停止 POST 裝置。 在此情況下,目前的顯示器會繼續在第二張圖形適配卡上執行,而基本顯示驅動程式會在支援 POST 裝置的適配卡上以無外設模式執行。 |
失敗 |
操作系統會透過 DxgkDdiStopDevice 函式呼叫 Windows 7 樣式的 PnP 停止驅動程式介面。 如果是 BIOS 型系統,驅動程式必須將顯示器設定為 BIOS 相容模式。 如果是以 UEFI 為基礎的系統,基本顯示驅動程式會在圖形適配卡上以無外設模式執行。 |
如需 PnP 和其他狀態轉換的進一步需求,請參閱 在 WDDM 1.2 和更新版本中提供順暢的狀態轉換。
硬體認證需求
如需硬體裝置在實作此功能時必須符合的需求資訊,請參閱 Device.Graphics.WDDM12.Display.PnpStopStartSupport 的相關 WHCK 檔。
如需使用 Windows 8 新增的功能,請參閱 WDDM 1.2 功能。