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 函式時,顯示迷你埠驅動程式必須遵循下列步驟:- 驅動程式必須停止與 TargetId 參數所指示之視訊簡訊相關聯的顯示裝置,但必須保留與此目標相關聯的顯示器,並顯示。
- 驅動程式必須檢查與此目標相關聯的顯示器連線能力。 如果目標沒有連線的顯示器,驅動程式必須完成此函式的呼叫,並傳回 STATUS_NOT_SUPPORTED 錯誤碼。
- 驅動程式必須停用連接到顯示適配卡之所有其他顯示器的訊號。 如果無法這樣做,驅動程式應該嘗試將空白影像放在所有其他顯示器上。 如果無法這樣做,驅動程式必須讓畫面上的最後一個影像保持不變。
- 驅動程式必須在指定的目標上保留目前的顯示模式,並將此模式提供給操作系統作為此函式呼叫的一部分。
- 如果驅動程式無法維護目前的顯示模式,或目標不是作用中拓撲的一部分,則驅動程式應該選取替代的作用中目標,並嘗試維護該目標的目前解析度。 如果不可能,驅動程式應該嘗試將顯示器設定為其原生解析度或高解析度模式。 在此情況下,顯示器解析度必須設定為至少 800 x 600 像素,每個圖元D3DDDIFMT_R8G8B8 (每圖元 24 位 ) ,或D3DDDIFMT_X8R8G8B8 (32 bpp) D3DDDIFORMAT列舉的色彩格式。
- 如果沒有作用中的目標,驅動程式應該嘗試啟用目標,最好是內部面板。如果有的話。
- 可能的話,驅動程式必須清除目前的框架緩衝區,並停用硬體游標和所有顯示重疊。
- 可能的話,驅動程式必須將裝置的 gamma 坡形設定為其預設值。
- 驅動程式必須將目前的框架緩衝區設定為處於線性模式。 驅動程式會使用預設的 swizzle 範圍或停用 swizzle 模式來執行此動作。
- 驅動程式必須將目前的框架緩衝區以線性方式對應到 CPU 位址空間,讓 CPU 能夠存取目前的框架緩衝區。
- 驅動程式必須確保所指示目標的可見度設定為 「已啟用」。
其他需求
在支援統一可擴展韌體介面 (UEFI) 的系統上,VGA 基本輸入/輸出系統 (BIOS) 不存在。 為了支援這些系統上的 PnP 停止作業,Windows Display Driver Model (WDDM) 1.2 和更新版本提供操作系統重設 POST 裝置的支援,以及在 PnP 停止作業期間取得其顯示資訊。 操作系統會藉由呼叫顯示迷你埠驅動程式的 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式來執行此動作。PnP 停止作業可能會因應 裝置管理員 等進程或驅動程序升級程序期間的要求而發生。
從 Windows 8 開始,操作系統只會在 PnP 停止作業期間呼叫驅動程式的 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式。
在僅限 UEFI 的系統上,如果顯示迷你埠驅動程式無法呼叫此函式,則會顯示黑色螢幕,且未安裝 IHV 驅動程式。 此案例的因應措施是讓使用者重新啟動電腦。
如需如何在 PnP 案例中使用此函式的詳細資訊,請參閱 WDDM 1.2 和更新版本中的 隨插即用 (PnP) 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
最低支援的伺服器 | Windows Server 2012 |
目標平台 | 桌面 |
標頭 | dispmprt.h |
IRQL | PASSIVE_LEVEL |