共用方式為


DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP回呼函式 (dispmprt.h)

由操作系統呼叫,以要求顯示迷你埠驅動程式重設顯示裝置,並釋放目前電源上自我測試 (POST) 裝置的擁有權。

從 Windows 8 開始,操作系統會在 隨插即用 (PnP) 停止作業期間呼叫此函式。

若要向操作系統指出此函式受到支援,當呼叫 DxgkDdiQueryAdapterInfo 函式時,驅動程式必須設定 DXGK_DRIVERCAPS 結構的 NonVGASupport 成員。

語法

DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP DxgkddiStopDeviceAndReleasePostDisplayOwnership;

NTSTATUS DxgkddiStopDeviceAndReleasePostDisplayOwnership(
  [in]  PVOID MiniportDeviceContext,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId,
  [out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}

參數

[in] MiniportDeviceContext

與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式先前已將此句柄提供給 Microsoft DirectX 圖形核心子系統。

[in] TargetId

D3DDDI_VIDEO_PRESENT_TARGET_ID值,指定顯示裝置所連接的顯示器適配卡上視訊呈現目標的標識碼。 此標識碼可能是目前影片中留下的目標, (VidPN) 在先前呼叫 DxgkDdiCommitVidPn 期間的狀態。

如需使用 TargetId 參數的詳細資訊,請參閱下列一節。

[out] DisplayInfo

操作系統所配置 之DXGK_DISPLAY_INFORMATION 結構的指標。

傳回值

如果成功 則傳回STATUS_SUCCESS。 否則,它會傳回 Ntstatus.h 中定義的其中一個錯誤碼。 如需詳細資訊,請參閱接下來的<備註>一節。

備註

允許的色彩格式

顯示迷你埠驅動程序應該只報告 32 位色彩格式。 因此 ,DisplayInfo->ColorFormat 成員必須只包含下列兩種格式之一:
  • D3DDDIFMT_X8R8G8B8
  • D3DDDIFMT_A8R8G8B8

影片呈現目標初始化

顯示迷你埠驅動程序必須將 DisplayInfo->TargetId 成員設定為保持使用中之顯示器的目標標識碼。 一般而言,此標識符會是操作系統傳遞至驅動程式的 TargetId 參數值。

同樣地,顯示器迷你埠驅動程序必須將 DisplayInfo-AcpiId> 成員設定為保持使用中之顯示器的 ACPI 識別符。

顯示迷你埠驅動程式所需的步驟

呼叫 其 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式時,顯示迷你埠驅動程式必須遵循下列步驟:
  1. 驅動程式必須停止與 TargetId 參數所指示之視訊簡訊相關聯的顯示裝置,但必須保留與此目標相關聯的顯示器,並顯示。
  2. 驅動程式必須檢查與此目標相關聯的顯示器連線能力。 如果目標沒有連線的顯示器,驅動程式必須完成此函式的呼叫,並傳回 STATUS_NOT_SUPPORTED 錯誤碼。
  3. 驅動程式必須停用連接到顯示適配卡之所有其他顯示器的訊號。 如果無法這樣做,驅動程式應該嘗試將空白影像放在所有其他顯示器上。 如果無法這樣做,驅動程式必須讓畫面上的最後一個影像保持不變。
  4. 驅動程式必須在指定的目標上保留目前的顯示模式,並將此模式提供給操作系統作為此函式呼叫的一部分。
  5. 如果驅動程式無法維護目前的顯示模式,或目標不是作用中拓撲的一部分,則驅動程式應該選取替代的作用中目標,並嘗試維護該目標的目前解析度。 如果不可能,驅動程式應該嘗試將顯示器設定為其原生解析度或高解析度模式。 在此情況下,顯示器解析度必須設定為至少 800 x 600 像素,每個圖元D3DDDIFMT_R8G8B8 (每圖元 24 位 ) ,或D3DDDIFMT_X8R8G8B8 (32 bpp) D3DDDIFORMAT列舉的色彩格式。
  6. 如果沒有作用中的目標,驅動程式應該嘗試啟用目標,最好是內部面板。如果有的話。
  7. 可能的話,驅動程式必須清除目前的框架緩衝區,並停用硬體游標和所有顯示重疊。
  8. 可能的話,驅動程式必須將裝置的 gamma 坡形設定為其預設值。
  9. 驅動程式必須將目前的框架緩衝區設定為處於線性模式。 驅動程式會使用預設的 swizzle 範圍或停用 swizzle 模式來執行此動作。
  10. 驅動程式必須將目前的框架緩衝區以線性方式對應到 CPU 位址空間,讓 CPU 能夠存取目前的框架緩衝區。
  11. 驅動程式必須確保所指示目標的可見度設定為 「已啟用」。
在顯示迷你埠驅動程序執行這些步驟之後,它必須傳回裝置目前的顯示設定。 驅動程式會藉由設定 DisplayInfo 參數所參考之DXGK_DISPLAY_INFORMATION結構的成員,傳回這項資訊。
注意 裝置停止之後,Windows 一般顯示驅動程式可能會使用此顯示資訊來管理顯示裝置。
 

其他需求

在支援統一可擴展韌體介面 (UEFI) 的系統上,VGA 基本輸入/輸出系統 (BIOS) 不存在。 為了支援這些系統上的 PnP 停止作業,Windows Display Driver Model (WDDM) 1.2 和更新版本提供操作系統重設 POST 裝置的支援,以及在 PnP 停止作業期間取得其顯示資訊。 操作系統會藉由呼叫顯示迷你埠驅動程式的 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式來執行此動作。

PnP 停止作業可能會因應 裝置管理員 等進程或驅動程序升級程序期間的要求而發生。

從 Windows 8 開始,操作系統只會在 PnP 停止作業期間呼叫驅動程式的 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式。

注意 顯示迷你埠驅動程式是選擇性的,可以呼叫 DxgkCbAcquirePostDisplayOwnership。 不過,如果驅動程式先前未呼叫 DxgkCbAcquirePostDisplayOwnership,操作系統仍可能會呼叫裝置驅動程式的 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式。
 
如果驅動程式成功完成此函式的呼叫,操作系統將不會呼叫 DxgkDdiStopDevice 函式。 如果驅動程式無法完成此函式的呼叫,操作系統會呼叫 DxgkDdiStopDevice 函式,而裝置行為會與 Windows 7 中的相同。

在僅限 UEFI 的系統上,如果顯示迷你埠驅動程式無法呼叫此函式,則會顯示黑色螢幕,且未安裝 IHV 驅動程式。 此案例的因應措施是讓使用者重新啟動電腦。

如需如何在 PnP 案例中使用此函式的詳細資訊,請參閱 WDDM 1.2 和更新版本中的 隨插即用 (PnP)

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
目標平台 桌面
標頭 dispmprt.h
IRQL PASSIVE_LEVEL

另請參閱

DXGKRNL_INTERFACE

DXGK_DISPLAY_INFORMATION

DXGK_DRIVERCAPS

DxgkCbAcquirePostDisplayOwnership

DxgkDdiAddDevice

DxgkDdiQueryAdapterInfo

DxgkDdiStartDevice

DxgkDdiStopDevice